I figured out how to solve the problem of the library, just insert these
lines into application.ini file:

includePaths.library = APPLICATION_PATH "/var/lib"
autoloadernamespaces.zenit = "Company_"

and then putting all common code under a directory called Company in the
include path, in my case APPLICATION_PATH . '/var/lib'

I still have the problem for resource autoloading into modules, but also in
that I made some progress, I remain only with a little problem regarding
default module. Since this problem is related to a different question I
opened a new thread for that at:

http://www.nabble.com/Zend_Application_Module_Bootstrap-doesn%27t-work-with-default-module-td24062377.html

Bye.


fab2008 wrote:
> 
> I just started to migrate my main application to ZF 1.8.x, I love
> Zend_Application since it promotes reuse and configuration made all using
> config.ini. (A note about this, IMHO you should standardize also the name
> and the location of the configuration file).
> 
> I rewrote all my previous bootstrap code using only the configuration
> file, so my bootstrap class now it's almost empty. The only thing I cannot
> make work is the autoloader since the documentation about that is pretty
> undetailed.
> 
> What I want to do is to standardize my classes using a consistent
> namespace convention, since i have to refactor most of the classes of my
> app, I want to ask which is the better way to do it before starting.
> 
> Which I am trying to do is to have modules resources (such as forms,
> models and so on) inside respective module directory and call a class
> something like Admin_Model_User or Admin_Form_Login in a structure like
> this one:
> 
> application
>   + modules
>        + admin
>            +  controllers
>            +  forms
>                + Login.php
>            +  modules
>                + User.php
>            +  views
> 
> and a library direcotory with common code shared and used across
> applications with classes named something like
> Company_Exception_Permission, Company_Plugin_Foo,
> Company_View_Helper_Date, Company_Form_Validator_Bar or
> Company_Action_Helper_Log in a structure like this one:
> 
> application
>   + library
>      + Company
>         + Action
>            + Helper
>               + Log.php
>         + Exception
>            + Permission.php
>         + Form
>            + Validator
>               + Bar.php
>         + Plugin
>            + Foo.php
>         + View
>            + Helper
>               + Date.php
> 
> How to achieve this using Zend_Loader_Autoloader?? I'm pretty confused
> about its usage.
> 
> And one more question, in the configuration file I loaded my plugins and
> action helpers in this way:
> 
> ;resources.frontController.plugins.10 = "Company_Plugin_Translator"
> ;resources.frontController.plugins.20 = "Company_Plugin_DbProfiler"
> ;resources.frontController.actionhelperpaths.Zenit_Action_Helper_ =
> APPLICATION_PATH "/var/lib/helpers/action"
> 
> and in the Bootstrap file I've only this:
> 
> class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
>       
>       
>       public function _initAutoloader() {
>               $moduleLoader = new Zend_Application_Module_Autoloader(
>                               array ('namespace' => 'Company_', 'basePath' => 
> APPLICATION_PATH .
> '/var/lib'));
>               return $moduleLoader;
>       }
> }
> 
> So it found Company_Plugin_Translator under var/lib/plugins path, but I
> think this is wrong, because in this way I cannot put resources into
> modules directory under application.
> 
> And the last thing: in the index.php file I have this
> 
> // Ensure library/ is on include_path
> set_include_path(
>               implode(PATH_SEPARATOR, 
>                               array (
>                                               realpath(APPLICATION_PATH . 
> '/var/lib'), 
>                                               get_include_path())));
> /** Zend_Application */
> require_once 'Zend/Application.php';
> 
> // Create application, bootstrap, and run
> $application = new Zend_Application(APPLICATION_ENV, 
>               array (
>                               'config' => APPLICATION_PATH . 
> '/configs/application.ini', 
>                               'pluginPaths' => array 
> ('Company_Application_Resources' =>
> 'resources')));
> // run the application
> $application->bootstrap()->run();
> 
> Since I wrote a couple of resource classes, for example to configure
> logfiles properties via application.ini and I want to reuse them as well,
> in a new application, I'd like to keep them under the Company directory of
> the lib folder instead of the resources folder
> 
> So instead of
> 
> application
>   + var
>      + lib
>         + resources
>            + Log.php
> 
> I'd like:
> 
> application
>   + var
>      + lib
>         + Company
>            + Application
>               + Resources
>                  + Log.php
> 
> I know these are a lot of questions, but please help me, because I'm
> completly stucked with this thing, and I cannot proceed with development
> before I solve it.
> 
> Thanks for any help.
> 
> 
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Autoloader-best-practices-tp24045941p24062765.html
Sent from the Zend Framework mailing list archive at Nabble.com.

Reply via email to