Very interesting point. I see how the way its done now can be a problem in regard keeping things organized in terms of per feature (book management, user management) rather than per task (edit, delete, view). Personally, I believe both should be considered. I agree that searching for classes is a pain if, for example as you said, i want to extract my book module alone so others can include it in their application. But while i do that, I also do not want all classes to be all disorganized and not categorized by their tasks. If the module is big then dealing with separate tasks could become a management issue. Furthermore, an admin module is a rather common aspect of web applications (or so i've noticed). I am sure they would welcome a "plugin" that would fit into their existing scheme more naturally. I am not 100% sure if i am making any sense here, but to give a practical idea, look at home joomla extensions have regular files and admin files separated, so that administration backend and user front end of joomla gets the apropriate files without any conflicts.
I agree this is difficult to do in ZF at the moment. There is no true sense of a module the way there is, say, in Java. I think what ZF needs to come up with is a concept of "packaging" the way its done in Java. You package the relevant files to books from library and admin in there so it can be extract the same way elsewhere. To keep track of relevant files need one or both of two things:
1. have an IDE that keeps track of the files as i work by packages. So when i create a package "books" it keeps track of relevant files automatically from library and admin modules. I can then have the IDE put them all in an archive file while preserving directory structure which I can take anywhere and perhaps even use it as an extension or a plugin like in joomla.
2. extend Zend Tool to support concept of a package. Right now we can assign controller to a module. We should be able to asign it to both module and a package for the same purpose: let zend tool isolate the files relevant to a package.
Thats my view on things. I want to continue separating using modules based on tasks (list add edit delete) for organization while using some sort of package management to keep track of related classes. May be someone from Zend will eventually do this (i saw traces of this in their discussions) or may be one day i'll have enough resources and energy to play with this myself
