Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #5
    Dopo aver scritto una serie di classi inutili vediamo come ci possiamo semplificare la vita

    Ma prima un paio di considerazioni sulla classe di autoloading
    Codice PHP:
    $loader = new SplClassLoader( [namespace], [root/directory] );
    $loader->register(); 
    il costruttore della classe necessità di due parametri per funzionare
    - il namespace di riferimento
    - la directory di base per la ricerca dei files e il successivo autoload

    esistono altri metodi per impostare alcuni parametri opzionali ma vi invito a leggere la definizione della classe per saperne di più.

    Passiamo all'esempio

    [root]/index.php
    Codice PHP:
    namespace MyProject;

    use 
    PDO;
    use 
    test\loader\SplClassLoader;
    require_once( 
    'test/loader/SplClassLoader.php' );

    // 'test' è il namespace che vogliamo utilizzare sarà poi la classe a ricercare nei vari sub-namespace le classi
    // __DIR__ in questo caso ci dà la directory [root] 
    $loader = new SplClassLoader'test'__DIR__ );
    $loader->register();

    use 
    test\commmon\a;
    use 
    test\widget\html\p;

    define"DB_DNS"'mysql:host=you.host.net;dbname=dbname' );
    define"DB_USER"'dbuser' );
    define"DB_PASS"'dbpass' );

    try {
        
    $pdo = new PDODB_DNSDB_USERDB_PASS );

        
    $a = new a$pdo );

        
    $p = new p$a->dump() );
        echo 
    $p->render();

    } catch ( 
    Exception $e ) {
        echo 
    '<p>' $e->getMessage() . '</p>';
        echo 
    '<p>File: ' $e->getFile() . ' - line: ' $e->getLine() . '</p>';
        exit;

    Al di là di eventuali errori che possono uscire, il codice non l'ho ancora testato, è importante notare come non ci sia più il bisogno di scrivere una fila di include per caricare le classi necessarie alla nostra applicazione.

    Questa classe standard supporta sia i sistemi normali che i sistemi con namespace, è universale e standard. Esistono anche il PSR-1 e PSR-2 ma non sono ancora ufficiali, devo indagare
    Ultima modifica di Al_katraz984; 18-04-2014 a 17:49
    Questa volta, più che un voto.. è favoreggiamento.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.