Skip to content

Parable PHP Framework 0.9.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@devvoh devvoh released this 20 Feb 15:14
· 258 commits to master since this release

0.9.0

Note: This version might be incompatible with previous versions. If you've ever set specific ->select() values on a \ORM\Query object, you'll have to rewrite those calls to pass an array of items rather than a comma-separated string.

It is the intention for the 0.9.x branch to be the last pre-release branch before a 1.0.0 release. For this, the focus is on bug fixes and some refactors that will solve long-standing issues or shortcomings in Parable subsystems. 1.0.0 should be backwards-compatible with 0.9.0, unless bugs pop up which require backwards-compatibility-breaking changes.

The focus for a 1.0.0 release will be documentation and testing.

Changes

  • \ORM\Query has been upgraded significantly:
    • It now requires an array with values for select, so they can all be prefixed with the table name and quoted appropriately.
    • It no longer requires a database connection to build a query, but when no database is present, it does basic quoting instead of real quoting. Only for testing and dev purposes, not for production!
    • All queries now have their table names added to the field names, to prevent ambiguity in joins. In join-less queries, it can't hurt.
  • \Cli has been replaced by \Console and everybody rejoiced. See parable.php for a simple implementation. It still needs work, but it's a start.
  • \DI\Container::store now allows passing a custom name if you want to. This makes it possible to store a specific instance under a specific name (say, an interface name).
  • Config files no longer implement \Parable\Framework\Interfaces\Config but extend \Parable\Framework\Config\Base. This serves the same purpose but takes away the need to redeclare getSortOrder every time.
  • Routes.php has been moved to \Routes\App.php and is now in the namespace \Routes. This satisfies PSR-2 requirements and looks nice. Also makes it possible to set up your routes in separate files and order them that way.
  • Package-specific Exception classes have been added to DI, Framework, ORM and Routing.
  • array type hints in method parameters have been consistently added where applicable.
  • Docblock type hints have been improved and, where needed, fixed.

Bugfixes

  • Due to the changes in \ORM\Query, joins should now work properly. join() has been replaced with innerJoin(), and leftJoin(), rightJoin() and fullJoin() have been added.
  • parable.php was not copying the Init/Example.php file, which isn't helpful. Fixed now.
  • There was one reference to Query::select() which was still passing a string. This has been altered to pass an array instead.