PHP Classes
elePHPant
Icontem

File: esempio.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Michele Brodoloni  >  Calcolo Codice Fiscale  >  esempio.php  >  Download  
File: esempio.php
Role: Example script
Content type: text/plain
Description: Script di esempio
Class: Calcolo Codice Fiscale
Generate the fiscal code for people in Italy
Author: By
Last change: nuovo file di esempio
Date: 3 months ago
Size: 3,158 bytes
 

Contents

Class file image Download
<?php

require_once 'codicefiscale.class.php';

/**
 * In questo esempio ho esteso la classe CodiceFiscale_Abstract ed ho
 * implementato il metodo astratto _calcolaCatastale() per andare a leggere
 * un file contenente un array nel formato [CODICE_PROVINCIA][NOME_COMUNE]
 * e caricarlo in una variabile..
 *
 * Ovviamente √® possibile implementare il metodo per recuperare il catastale
 * a piacimento (database, webservice, ecc...)
 */
class CodiceFiscale extends CodiceFiscale_Abstract {
   
    private
$_db;
   
    public function
leggiCatastali($filename) {
       
$this->_db = unserialize(file_get_contents($filename));
    }
   
    protected function
_calcolaCatastale() {
        if (!
$this->_db) {
            throw new
CodiceFiscale_Exception('impossibile caricare il file dei catastali');
        }
       
$comune = strtoupper($this->comune);
       
$provincia = strtoupper($this->provincia);
        if (!isset(
$this->_db[$provincia][$comune])) {
           
$message = sprintf("codice catastale non trovato (provincia: %s, comune: %s)", $provincia, $comune);
            throw new
CodiceFiscale_Exception($message);
        }
        return
$this->_db[$provincia][$comune];
    }
}

// funzione di comodità per generare un array da passare alla classe
function componi($nome, $cognome, $data, $comune, $provincia, $sesso) {
    return [
      
'nome' => $nome,
      
'cognome' => $cognome,
      
'data' => $data,
      
'comune' => $comune,
      
'provincia' => $provincia,
      
'sesso' => $sesso
   
];
}

// istanzio la classe e carico il db dei catastali
$cf = new CodiceFiscale();
$cf->leggiCatastali('catastali.txt');
$dati = array();

// Non validi
$dati[] = componi(null, 'cognome', '01-01-1970', 'milano', 'mi', 'm');
$dati[] = componi('nome', null, '01-01-1970', 'milano', 'mi', 'm');
$dati[] = componi('nome', 'cognome', null, 'milano', 'mi', 'm');
$dati[] = componi('nome', 'cognome', '01-01-1970', null, 'mi', 'm');
$dati[] = componi('nome', 'cognome', '01-01-1970', 'milano', null, 'm');
$dati[] = componi('nome', 'cognome', '01-01-1970', 'milano', 'mi', null);
$dati[] = componi('nome', 'cognome', '565-55-5555', 'milano', 'mi', 'm');

// Validi
$dati[] = componi('A', 'B', '01-05-1977', 'rho', 'mi', 'm');
$dati[] = componi('A', 'B', '01-05-1977', 'rho', 'mi', 'f');
$dati[] = componi('Matteo', 'De Gasperi', '15-09-2001', 'roma', 'rm', 'm');
$dati[] = componi('Ramona', 'Si', '21-12-1982', 'senago', 'mi', 'f');
$dati[] = componi('Babbo', 'Natale', '25-12-1938', 'Cinisello Balsamo', 'MI', 'm');

foreach(
$dati as $persona) {
    try {
       
$cf->importa($persona);
        print
"Codice Fiscale: ". $cf->calcola() . "\n";
    } catch (
CodiceFiscale_Exception $e) {
        print
"Errore: ". $e->getMessage() . "\n";
        continue;
    }
}

// Metodo alternativo
$cf->nome = 'Me';
$cf->cognome = 'Medesimo';
$cf->data = '09-09-1982';
$cf->comune = 'senago';
$cf->provincia = 'mi';
$cf->sesso = 'm';

print
"Codice Fiscale (alternativo): ". $cf->calcola() . "\n";

$cf->formatoData('d/m/Y');
$cf->data = '09/09/1982';

print
"Codice Fiscale (alternativo): ". $cf->calcola() . "\n";