Skip to content

Changelog v1.5

WanWizard edited this page Jan 30, 2013 · 28 revisions

This keeps track of important changes to the 1.x branch. Important changes that need extra attention when releasing v1.5. Besides these changes there were lots of bug fixes and core and speed improvements.

When you decide to upgrade to a new version, pay attention to the changes documented in this changelog, and the upgrade procedures documented.

Important fixes, changes, notes. Read them carefully.

  • The "Undefined constant MYSQL_ATTR_COMPRESS" issue that pops up under certain conditions has been fixed.
  • It has been reported that under certain circumstances there might be issues with serialized data stored in the Auth user table, field "profile_fields", and the "payload" field in the sessions table. It is strongly advised to define those columns as "blob" to avoid these issues.
  • A new Log package has been introduced in preparation for the transition to 2.0, which replaces the Log class. As it is a required by the core, you MUST add the Log class to your always_load manually if you are upgrading from a previous version!

Backward compability notes

  • Uri::to_assoc() no longer throws an exception with uneven segments, but returns null as value of the last segment
  • ORM Model::find() no longer accepts null as only parameter. If you want to use that, you are now REQUIRED to also pass the options array (or an empty array).
  • Sessions have been refactored, all validation and validation data has been moved server side. Because of this, pre-1.5 sessions are not longer compatible.
  • The Log class has been removed and replaced by the log package. If you have extended the Log class in your application, you will have to extend \Log\Log instead, and check the compatibility of your changes. If they are about logging to other locations, you might want to look into the Monolog stream handlers instead.

Removed code (because it was deprecated in v1.4 or earlier)

  • ORM Model::find() can no longer be used to construct queries using method chaining. Use Model::query() instead.

Code deprecated in v1.5 (to be removed in the next release)

  • none

Security related

  • none

System changes

  • Controller_Hybrid: Now sets the correct content-type header on empty responses.
  • Controller_Rest: Now sets the correct content-type header on empty responses.

Specific classes

  • Agent: Will now honour 301/302 redirects when trying to fetch the browscap file.
  • Arr: New filter_recursive method, a recursive version of PHP's array_filter() function.
  • Debug: dump() method now html encodes string variables.
  • Debug: dump() and inspect() can now be styled using CSS (a classname has been added to the div).
  • Fieldset: New set_tabular_form() method allows creation of one-to-many forms.
  • Fieldset: New get_tabular_form() method to check if a fieldset defines a tabular form.
  • Image: New flip() method for vertical/horizontal image flipping.
  • Inflector: friendly_title() now has an option to deal with non-ascii characters.
  • Inflector: pluralize() now has an count parameter to return a singular value if the count is 1.
  • Migrate: Now allows you to define the DB connection to be used for migrations in the global migrations config file.
  • Model_Crud: Now has a $_write_connection property to support master/slave database setups.
  • Mongo_Db: Will now log it's queries to the profiler if enabled.
  • Mongo_Db: Now has a method get_cursor() to directly get a mongodb cursor.
  • Pagination: Now support pagination using a Query String variable.
  • Pagination: Now has support for first/last page links.
  • Response: Will now add a "Content-Length" header when generating the output.
  • Session: Now correctly erases the session cookie on a destroy.
  • Session: Now silently (re)creates the session if data is present by no session is created.
  • Session: Cookie encryption can now be disabled using a session configuration key.
  • Session: Session cookie now only contains the session id. Validation now happens with server-side data.
  • Session: New configuration key expire_flash_after_get controls get_flash() expiration.
  • Session: get_flash() now has to override the configured flash variable expiration rules.
  • Session: set_flash() now has to partial array dot-notation support.
  • Uri: to_assoc() now accepts a start parameter allowing you to skip leading segments.
  • Validation: Now has a new built-in rule 'numeric_between' allowing you to specify a range.
  • Database_Query_Builder_Join: Now supports both AND and ON chaining of join condition.

Packages

  • Orm: Supports the new tabular form fieldset in it's models.
  • Orm: find() options array now has support for 'group_by'.
  • Orm: New Model_Soft implements soft-delete functionality (thanks to Steve West).
  • Orm: from_array() can now also populate related objects.
  • Orm: Model now has a $_write_connection property to support master/slave database setups.
  • Oil: oil install now installs packages without 'fuel_' prefix too.
  • Oil: scaffolding now supports subdirectories.
  • Oil: Now has a config file that allows you to configure the location of phpunit.
  • Oil: Now has a task fromdb that can generate models, migrations, scaffolding or admin from an existing database.
  • Parser: Twig driver has been updated to work with Twig v1.12.0.