lut 07

Bardziej skomplikowane projekty w zrobione w Zend Framework często używają zewnętrznych klas lub modułów, jak zrobić automatyczne ładowanie dodatkowych klas do naszego projektu, omówię dwa przypadki, niemalże identyczne. Autoładowanie klas należy dodać do pliku Bootstrap.php stworzymy metodę _initAutoload(); i załadujemy zewnętrzne moduły z folderu application/module standardowo Zend nie tworzy tego folderu, przykładowy plik wygląda tak:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoload(){
    $autoloader = new Zend_Application_Module_Autoloader(array(
        'namespace' => '',
        'basePath'  => dirname(__FILE__),
    ));
    $autoloader->addResourceType('modules', 'modules', 'Module_');
        return $autoloader;
    }
}

Jak widać dodaliśmy do naszego autoloadera folder module i automatyczne ładowanie wszystkich klas z plików umieszczonych w tym folderze, pierwszy parametr to typ, drugi ścieżka relatywna a trzeci przestrzeń nazw. Nazwy plików są dowolne ale nazwy klas muszą zaczynać się od Module_ np. Module_test, klasy te mają dostęp do modelu. Gdybyśmy chcieli umieścić nasze moduły w folderze np. library/App z przestrzenią nazw App_ trzeba by wymienić w powyższym przykładzie jedną linie na:

$autoloader->addResourceType('app', '../library/app', 'App_');

Autor siema \\ tagi: , , , , , , ,



Komentarze wyłączone.