Modules need to stay (see below for my visualization of a package).
This should be in another thread, but some effort needs to be directed to Portlets both in the documentation, in the directory structure, and most likely in the framework code. Portlets are like the blocks used in Smarty or Postnuke (and the other Nukes) and should be treated as separate entities within the directory structure as are modules. It would be nice if Portlets could have their own conditional folder structure for storing related message files, views, and config information (definitions of portlet-related parameters used by the integrated widget) and more examples in the docs. Most of the users here do not know how extensive the advantages of using portlets can be as they work on more complicated applications. Any layout can include portlets. Portlets can be displayed in a layout conditionally when triggered by another portlet or widget, etc.
What would be nice is more of a formalized approach to issuing events and subscribing to events at the module level and application level (if modules are not used by an application). I prefer a Publish and Subscribe discussion in the docs versus an Observer and Observable discussion becuase it is more intuitive. There should be examples and discussions about using events for inter-module/inter-controller communication. It would be nice to demonstrate chaining events to perform a process encompassing the actions of several controllers.
What is really needed is a tutorial on how to transform and improve the Blog tutorial. For example, converting the blog into a single content module supporting several flavors of content (blog, articles, news, etc.). Refactoring the comment code as a standalone module or converting Contact into a module supporting multiple contacts, etc. Using portlets in the same tutorial to demonstrate their usefulness and advantages. Actually building a theme for an application to demonstrate the differences between a theme and layouts, etc. Their are holes in the sample application offering from a newbie point of view.
In my mind, a package could be:
- Installation package consisting of a single module, portlet, widget, component, message file, etc.
- A suite of related entities such a collection of modules, associated sub-modules, associated portlets, etc.
- An upgrade package for Yii, the application, a module or anything else
- A collection of images for application usage
- A single file, such as a component, single file extension, message file, etc.
- A package could include subpackages
In other words, any installable or upgradable item. For an example, see Joomla.
If this is where samdark in headed, I will climb in the same boat.
What is needed to make this work is an application level installer, most likely a module possibly with sub-modules or a good module configuration solution for tossing files where they belong (somewhat like an old USENET-like or Fidonet-like mail tosser; saying that makes me feel older). If samdark is also thinking about something similar, our minds must be on similar trajectories. For installer ideas, also look at Joomla.
@qiang... Joomla, Mambo, and a number of other open source projects get indirect help each summer from Google's summer code development program. Its Google's way of supporting computer science majors who need to earn tuition or extra money over the summer months. The Joomla team proposes several challenges based on code they may need in the future. Google exposes the ideas to computer science majors who make proposals about solving those problems or requirements. Joomla gets to select the students who will work on their summer coding projects by reviewing the proposals. In turn, Google provides a grant, funding the students summer coding project. Joomla is not obligated to use any of the ideas although they have many times in the past, usually after some refactoring. As I understand it, the act of participating in and meeting the challenge of the projects objectives and goals is sometimes a way of getting extra credits at some universities. You should investigate this program. Not sure if he is still in school, but a program like this might be interesting for someone like Jonah.