class Files

Classe Pubblica senza dipendenze.

I Metodi:

  1. createFile()
  2. writeNewFile()
  3. addStartTextFile()
  4. addEndTextFile()
  5. readFile()
  6. extensionFile()
  7. getDir()

Questo blocco permette di creare e gestire file di tipo testuale ad esempio per "immagazzinare" dati o utilizzati come log... ma anche per farci altro :-).

Per poter lavorare con questa classe dobbiamo ricordarci che in produzione, la directory ed i file generati dovranno possedere permessi: drwxrwxrwx;

Creiamo una directory files/ nella root del progetto (se utilizziamo linux altrimenti lo creeremo nel modo che ci sembra più opportuno)

~ $ mkdir files
~ $ chmod -R 777 files/

e iniziamo subito a vedere all'opera i metodi della classe:


createFile():

Questo metodo ha bisogno di un valore (nome del file) e viene utilizzato per generare un file.

Apriamo il nostro file view testView.php e scriviamo questo codice:

 

<?php
// Codifica caratteri
header("Content-Type: text/html; charset=utf-8");
#header("Content-type: application/json");
$GLOBALS["Rgl"] = new $nameClass(
    array(
        #"Crypto", // gestione Criptazione
        #"Session", // gestione delle sessioni
        #"Language", // gestione delle lingue
        #"Avvisi", // gestore avvisi e alert
        #"Str", // trattamento delle stringhe
        #"DTime", // trattamento delle date
        #"VerifySend", // verifica i dati in invio
        ##"SendMail", // invia email in vari formati
        #"DB", // gestione del DB in PDO comprende (MySql, SqLite, PostgreSql)
        #"MySql", // gestione del DB Mysql
        #"SqLite", // gestione del DB SqLite
        #"PgSql", // gestione del DB PstgreSql
        #"BreadC", // gestione briciole di pane
        #"UploadFile", // Upload File & image
        #"LogIn", // gestione Login
        "Files", // gestione dei file fisici
        #"Restful" // request and response restful,
    )
);

class TestView extends TestModel {

    function view_page(){
            // creiamo un nuovo file di Log
            Files::createFile(_CONFIG_['_ROOT_'].'files/test.log');
            
            ### stampo la pagina dei contenuti
            KuiperBelt::get_template(
                'test.php',
                $GLOBALS["Rgl"],
                array(
                    'utente'=>$utente,
                )
            );
        }
}
TestView::view_page();
?>

Se tutto è andato per il verso giusto all'interno della directory files dovremmo trovare il file: test.log; in caso contrario verificare attentamente i permessi in scrittura della directory. 


writeNewFile():

Questo metodo ha bisogno di due valori (nome del file e contenuto) per poter funzionare correttamente..

Apriamo il nostro file view testView.php e scriviamo questo codice:

 

function view_page(){
            // creiamo un nuovo file di Log
            Files::writeNewFile(_CONFIG_['_ROOT_'].'files/test2.log', 'Questo è un file di log!');
            ### stampo la pagina dei contenuti
            KuiperBelt::get_template(
                'test.php',
                $GLOBALS["Rgl"],
                array(
                    'utente'=>$utente,
                )
            );
        }

Se tutto è andato per il verso giusto all'interno della directory files dovremmo trovare il file: test2.log con del testo presente all'interno.


addStartTextFile():

Questo metodo ha bisogno di due valori (nome del file e contenuto) per poter funzionare correttamente e serve ad aggiungere una riga di testo ad inizio file.

Apriamo il nostro file view testView.php e scriviamo questo codice:

 

function view_page(){
            // creiamo un nuovo file di Log
            Files::addStartTextFile(_CONFIG_['_ROOT_'].'files/test2.log', 'Ciao!');
            ### stampo la pagina dei contenuti
            KuiperBelt::get_template(
                'test.php',
                $GLOBALS["Rgl"],
                array(
                    'utente'=>$utente,
                )
            );
        }

Permette di aggiungere del testo all'inizio del file, "spostando" il contenuto verso il basso. Eseguendo lo script dovremmo ritrovare all'interno del file due righe.

Hello World!
Questo è un file di log!


addEndTextFile():

Questo metodo ha bisogno di due valori (nome del file e contenuto) per poter funzionare correttamente e serve ad aggiungere una riga di testo alla file del file.

Apriamo il nostro file view testView.php e scriviamo questo codice:

 

function view_page(){
            // creiamo un nuovo file di Log
            Files::addEndtTextFile(_CONFIG_['_ROOT_'].'files/test2.log', 'Fine File!');
            ### stampo la pagina dei contenuti
            KuiperBelt::get_template(
                'test.php',
                $GLOBALS["Rgl"],
                array(
                    'utente'=>$utente,
                )
            );
        }

Permette di aggiungere del testo alla fine del file. Eseguendo lo script dovremmo ritrovare all'interno del file due righe.

Hello World!
Questo è un file di log!
Fine File!

readFile():

Questo metodo ha bisogno di due valori per poter essere eseguito (il primo sarà il nome del file, il secondo di tipo boolean) e viene utilizzato per leggere un file.

Il secondo valore di tipo boolean o intero 1 - 0 serve per restituire il testo:

  • Il primo (true): tipo testo come unica entità.
  • Il secondo (false): Tipo array() ed estrae le singole righe.

Vediamolo all'opera:

function view_page(){
         // creiamo un nuovo file di Log
         $read = Files::readFile(_CONFIG_['_ROOT_'].'files/test2.log', 1);
         ### stampo la pagina dei contenuti
         KuiperBelt::get_template(
               'test.php',
               $GLOBALS["Rgl"],
               array(
                     'read'=>$read,
               )
         );
 }

Ed otterremo un risultato simile al seguente:

Hello World!
Questo è un file di log!
Fine file!

 Mentre utilizzando il metodo con valore false o 0, otterremo un risultato simile al seguente:

Array(
    [0] => Hello World!
    [1] => Questo è un file di log!
    [2] => Fine file!
)

 


extensionFile():

Se invece volessimo conoscere l'esensione di un file utilizzeremo queto metodo, inserendo il nome del file come parametro obbligatorio:

function view_page(){
                // creiamo un nuovo file di Log
                echo Files::extensionFile(_CONFIG_['_ROOT_'].'files/test2.log');
                ### stampo la pagina dei contenuti
                KuiperBelt::get_template(
                    'test.php',
                    $GLOBALS["Rgl"],
                    array(
                        'read'=>$read,
                    )
                );
            }

 


Se invece abbiamo necessità di conoscere il contenuto di una determinata directory utilizzeremo:

getDir():

function view_page(){
                // creiamo un nuovo file di Log
                $dir = Files::getDir(_CONFIG_['_ROOT_'].'files/');
                print_r($dir);
                ### stampo la pagina dei contenuti
                KuiperBelt::get_template(
                    'test.php',
                    $GLOBALS["Rgl"],
                    array(
                        'read'=>$read,
                    )
                );
            }

 


Lista dei Blocchi