This is a full rebuild of the Framework site's application to bring it in line with our more current application structures (i.e. full dependency injection versus service location in the controllers). Some of the general architectural changes include:
No more separation of the command line and web application code; all of it is in one spot
It is no longer required to have all of the Framework packages installed to make the data listing work correctly, the app's Composer manifest now only includes the real dependencies
Follows best practices
Only the command console, routers, web application, and Twig runtime loader have service locator behaviors
Uses the prepared statement support added to the database package
Improved data modeling; actually there is now only one model for all package related operations
Proper API integration; instead of using the CMS' format=json query convention to access an API, there is now a proper API (documented at /api once deployed)
Improved command line console; takes the Stats\Console class from the stats server and improves it to lazy load command objects
New chained router; the "normal" web router is used for HTML requests and the REST web router serves our API
Server requirements:
PHP 7 with PDO support for MySQL
What's missing?
Tests
Injection for release data; I purposefully left this command out of the new build because it is very tightly coupled to running everything on my local system. I can still run it to inject data as needed, but this process should be revised (since Jenkins runs the release tags for each package maybe we can use it to build the coverage reports and inject that through the API).
This is a full rebuild of the Framework site's application to bring it in line with our more current application structures (i.e. full dependency injection versus service location in the controllers). Some of the general architectural changes include:
format=json
query convention to access an API, there is now a proper API (documented at/api
once deployed)Stats\Console
class from the stats server and improves it to lazy load command objectsServer requirements:
What's missing?