I know this has been discussed before, but was is the best way to handle external modules? I not asking for a place to find modules or for ZF to have a site dedicated to modules, just want to know what the standard is for installing a module into your existing system.

To me the library directory in the project structure makes it very obvious that the classes inside are used as a base library of classes for your application.

By having external modules in your application directory, it makes it harder for someone who is less familiar with the history of the project to know that the code in the "acl" module is external when compared to the "user" module which was created inside the project.

I guess the issue comes to maintaining a system. As a developer working on a project you do not want to edit core / external code. For example if I need to alter the Zend_View, i just don't go into that class and alter it's behavior. I can use view helpers or extend the class. As a developer its clear that code in the library folder should not be touched. In the example above, the new developer would not want to touch the acl module as it is external to the system, whereas the user module is okay.

It comes down to what do we think a Zend Framework module is? A self contained group of code that can be dropped in to any ZF app? Or is it just a better way to organize and set the boundaries your applications domain? Should we have another folder under the root of the project .. maybe extensions ?

I know of ways to achieve this, but I feel, like many others, that the next big step for ZF (besides v2.0), are 3rd party modules/extensions/plugin (like joomla, wordpress, drupal, jquery, etc), and I don't want to break away to much from the standard project structure to make it as easy as possible to upgrade.

cheers,
pbo


Reply via email to