2011-09-12 Dev status update
Zend Framework status update for the weeks of 30 August - 12 September 2011.
Much has happened since our last update.
2011-08-31 IRC Meeting
First, we held our second IRC meeting on Wednesday, 31 August 2011. The intended purpose of the meeting was to discuss and vote on two RFCs, Modules and Distribution. Discussion was heated for much of the meeting, but a number of ideas were clarified and ratified during the process. In particular, we gained consensus surrounding the difference between components and modules, and started a conversation surrounding what we may include in modules in the future. Visit the meeting log for more details.
Following the meeting, I created and published the first "official" MVC prototype in a branch of my repository. The prototype was created as a module (under "modules/Zf2Mvc") in order to also prototype one suggested format for developing modules under ZF2. We had two threads in the mailing list detailing and discussing the prototype. At the time of this writing, all major feedback has been incorporated.
In IRC, Rob Allen and Evan Coury took the prototype and quickstart as a starting point for a "Module Manager" component that could discover module configuration, autoloading, etc. Evan quickly developed a new module, "Zf2Module," for exactly this purpose (code is on GitHub. After a few revisions, he created a "sandbox" project that illustrates how one might start a project and gradually add modules to it in order to enable new features. Included in the project is a basic homepage and error page as a discrete module, based on the quickstart; a "user" module for simple user authentication and registration; and the guest book from the quickstart.
The tl;dr: Lots of momentum on the MVC front, with viable MVC and module system prototypes.
Options, configuration, and what? Oh, My!
Early last week, Ralph wrote up a proposal for configuration in ZF2, and opened a thread in the mailing list. The response was fairly heated, and resulted in a counter-proposal within an hour or two by Artur Bodera, followed by more discussion on the list, and then even more discussion.
After the dust settled, the basic consensus appears to be:
- Denote hard dependencies in the constructor (if no sane default is likely)
- Aggregate "soft" dependencies (i.e., optional configuration) as component-specific "configuration objects", which will allow:
- Moving option validation into configuration objects
- Resulting in fewer necessary internal variables (pull these options from the config object)
- Re-use of configuration objects with many instances
- Ability to create config object extensions with application-specific defaults
- Better hinting for IDEs
- Potentially easier to document options
However, we still need to vote on this topic. (Hint: I'll be proposing it for this week's IRC meeting.)
Pull Requests, Sweet Pull Requests
I managed to merge in something like 50 new pull requests in the past week. Keep 'em coming!
We've been reviewing options for distributing ZF and potentially modules. At this time, candidates include PEAR, Pyrus, Composer, or going home-grown. We've been reviewing our options, and doing some prototyping, and hope to have a recommendation this week.
I've been working on some proposals surrounding the View layer, and getting some initial feedback from interested parties before posting some RFCs; they should be posted early this week, however.
There are new RFCs and discussions erupting daily on the mailing list and in the #zftalk.2 IRC channel on Freenode; I encourage you to subscribe to the former and join in the latter so that you can participate.