This is an installment in an ongoing series of posts on ZF3 development status. In the last three weeks, we've done a lot:
As of last week, however, we have completed all tasks related to the refactor! These include:
This latter required that we move the various factories, service integrations, and event listener wiring code into the components themselves. This affected eight components, though we ended up addressing another five components that were already defining factories for zend-servicemanager as well:
For each of these, we created two new classes in their defined namespaces,
Module. The first is an invokable class returning configuration, which might include service configuration, plugin configuration, etc.
Module is a class specific to the Zend Framework ecosystem, and returns configuration, but, in several cases, also wired other code into the zend-mvc workflow. All of the above components received new minor releases once these were in place, and zend-mvc was updated to remove dependencies on them.
The core dependencies in zend-mvc are now:
Once we were done, the lines of code had dropped to approximately 25% of the size in the version 2 releases!
With the zend-mvc refactor complete, we decided to work on the skeleton application.
Feedback we've had includes:
To get the ball rolling, I created a pull request proposing a streamlined skeleton. This has already generated a fair bit of discussion, and we have a number of new ideas we're going to investigate, including setting up Expressive-like installation questions to allow bringing in common features during the first install.
We also did some refactoring of the zend-json component. Several users have complained that it includes too much: the JSON-RPC functionality is not generally useful for those who only want JSON de/serialization, and the XML2JSON implementation is only needed by a subset of users.
As such, we split it into three:
We'd like to thank Ali Bahman for his assistance with these changes!
This week, we discovered half-a-dozen components that declare a dependency on zend-stdlib, but which had not been updated to allow usage with zend-stdlib's v3 releases. As such, we quickly updated each to do so, releasing new maintenance releases when ready. These include:
With the MVC initiatives complete, we have begun working on the documentation in earnest again.
The first thing we did was recognize that while it's nice to be publishing the documentation, we really need mechanisms for navigating to other components. As such, we created a topnav button that, when clicked, fetches a list of components with documentation, and slides the list in from the top of the page.
We've also been either documenting components as we create them (see the MVC plugins and JSON changes, above), or publishing documentation as we create new releases on components we update. Since the last update, we've published documentation for the following components:
Many thanks to Frank Brückner for the copious documentation updates he's provided!
There's plenty left to do, however (32 components left at the time of writing). We've created a list of components and tasks to perform if you are interested in helping!
Last week, Gary Hockin posted to the ZF blog about a plan to perform housekeeping of issues posted against the main zendframework repository. The basic summary is: issues against the main ZF repository have been tagged as "To Be Closed", and will be closed in early May unless you comment on an issue and tag user @GeeH before 3rd May 2016.
As noted at the beginning of this post, we've done over 60 component releases since the last update (approximately four weeks ago). Notable amongst them:
NotEmptyvalidation messages generated for required inputs.
Zend\Math\Rand, forcing usage of PHP 7's
random_int()when available, and requiring ircmaxell/RandomLib for earlier PHP versions.
Pgsqladapter to accept the
Zend\Db\Sql\Insertto properly manage arrays of column names when generating SQL INSERT statements; fixes an issue with how row counts were reported in
Oci8result sets; and updates the
IbmDb2adapter to allow
#characters in identifiers.
Zend\Json\Json::GLOB_BRACEwhen on systems based on non-gcc versions of glob.
If you want to help:
Many thanks to all the contributors who have provided feedback, patches, reviews, or releases since the last update!
Subscribe to this blog via RSS.