Zend_Loader_Autoloader_Resource umożliwia  łatwą ingerencję w domyślną strukturę plików i katalogów ZF, a co za tym stoi –  manipulowanie ich nazwami.

Przykładowo w Twoim projekcie przewidziałeś dwa (lub więcej) modułów, np. /application/modules/default/ oraz /application/modules/panel. Chciałbyś teraz uporządkować w ich ramach np. modele, viewhelper’y, formularze, aby zachować porządek nazewnictwa tych klas i logikę ich wywołania.  Wygłądałoby to tak:

/application/modules/default/models
 
/application/modules/default/forms
 
/application/modules/default/views/helpers

oraz

/application/modules/panel/models
 
/application/modules/panel/forms
 
/application/modules/panel/views/helpers

Kolejne nazwy klas, w takim układzie  nazywałyby się np.:  Default_Model_Foo, Default_Form_Foo, Default_View_Helper_Foo,  Panel_Model_Foo,  Panel_Form_Foo, itd …

Oczywiście, przed każdą inicjalizacją obiektu, którejś z tych  klas NIE postępujemy w ten sposób:

require_once '/application/modules/panel/forms/Foo.php';
$form = new Panel_Form_Foo();

ponieważ PHP5 (jak już kiedyś wspominałem) w wielu przypadkach sprawniej radzi sobie z
załadowaniem pliku przez __autoload niż używajać funkcji require_once.
Zatem dążymy do stworzenia instancji nowego obiektu, a jego załadowaniem niech zajmie się Zend Framework.

Możemy to zrobić na przykład dodając nowy zasób, który wskazywał by frameworkowi przestrzeń nazw, oraz lokalizację, w których te klasy się znajdują. Takie rozwiązanie, po pierwsze pozwoli nam wykorzystać świetny mechanizm Application Resource, a także zachować porządek w naszej aplikacji. Przykładowa klasa wyglądała by tak:

class Zextend_Application_Resource_Types extends Zend_Application_Resource_ResourceAbstract
{
 
    public function init()
    {
        $resourceAutoloader = new Zend_Loader_Autoloader_Resource( array(
                        'basePath'      => APPLICATION_PATH,
                        'namespace'     => 'Default',
                        'resourceTypes' => array(
                                            'form' => array(
                                                            'path'       => 'modules/default/forms',
                                                            'namespace'  => 'Form'),
                                            'viewhelper' =>  array(
                                                             'path'       => 'modules/default/views/helpers',
                                                             'namespace' =>  'View_Helper')
                            )
                        ));
        $resourceAutoloader = new Zend_Loader_Autoloader_Resource( array(
                        'basePath'      => APPLICATION_PATH,
                        'namespace'     => 'Panel',
                        'resourceTypes' => array(
                                            'form'       =>  array(
                                                                   'path'       => 'modules/panel/forms',
                                                                   'namespace'  => 'Form'),
                                            'model' =>  array(
                                                             'path'      =>  'modules/panel/models',
                                                             'namespace' =>  'Model',
 
                                            ),
                                            'viewhelper' =>  array(
                                                                   'path'       => 'modules/panel/views/helpers',
                                                                   'namespace' =>  'View_Helper')
                                                    )
        ));
    }
 
}

Pamiętajmy o  odpowiednim wpisie do applikcation.ini:

resources.types      = „array()”

Dzięki takiemu rozwiązaniu wprowadziliśmy do struktury aplikacji naszą logikę, którą bardzo łatwo możemy uruchomić lub przestać z niej korzystać.