Skip to content

Changelog v1.7.3

Harro Verton edited this page May 20, 2015 · 4 revisions

This keeps track of important changes to the 1.x branch.

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.

This release is mainly a bugfix release, although some minor functionality was added as well. The main goal of this release is increased stability of the version 1 code, now that it is approaching the end of it's life-cycle.

The final version will be v1.8, which will be released at the same time the first version of Fuel v2 will be released. It will be an LTS version, no new functionality will be accepted on the codebase anymore, but will will keep releasing bugfixes and security fixes.

Backward compatibility notes

  • The FuelPHP framework is now entirely loaded using composer. A check has been added to the frontloader to make sure composer has run and all components are installed, and die with a proper error message if that is not the case. The default minimum-stability is set to stable, so you might want to have a look at that if needed.
  • Activating the framework autoloader has been moved from the App bootstrap to the frontloader (oil for cli, public/index.php for web requests). When you upgrade, make sure to update both the frontloaders, otherwise you will get exceptions when the autoloader is loaded twice.
  • When loading multiple modules or packages through the load() method, the result will now only be true if all could be succesfully loaded.
  • When Fuel is run is CLI mode, output buffering is now disabled. Note that it might still buffer, for example because you have enabled buffering globally in your php.ini.
  • The match_collection validation rule now always returns true if no collection was passed to match against.

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

t.b.d.

Security related

  • PHPSecLib has been updated to a more recent version.
  • Htmlawed has been updated to version 1.1.19.

System changes

  • The dependency with FuelPHP\Upload is now with version 2.0.2.
  • The frontloader now has a generic Exception catching mechanism. For every Exception caught you can have the frontloader route to a route entry of your choice. By default, these are defined: HttpNotFoundException (_404_ route), HttpNoAccessException (_403_ route) and the HttpServerErrorException (_500_ route).
  • The finder caching system has been updated to avoid incorrect cache hits when loading files from modules or packages.
  • Module and package paths are now forced to be lowercase to comply with the standards.
  • You can now configure additional paths to be cleaned, to avoid giving away FQFN in error messages.
  • When running migrations, your up() or down() method can return false to signal it can't execute the method at that point in time. Migrations that use this method are now automatically re-tried in a second migration run. This helps with dependencies, to make sure migrations run in the correct sequence (for example if an app migration requires a package migration to run first because it needs access to its tables).

Specific classes

  • Controller_Hybrid: calling a REST method from a browser now returns the correct result.
  • Error: the log level used for errors is now configurable.
  • Input: new query_string() method to return the main requests query string.
  • Input: a header value lookup is now done in a case-insensitive manner.
  • Form: the label() method now has support for the "for" attribute.
  • Inflector: the inflector ruleset has been moved to a lang file, so it can easily be amended, and provide support for introducting non-english language rulesets.
  • Lang: now allows you to load the same lang filename for different languages concurrently.
  • Cache: The XCache delete_all() method now actually deletes it all.
  • Validation: the match_collection rule can now be run in strict mode, which meanly helps when validating booleans.
  • Validation: new rule specials allows matching against non-latin characters considered alphabetic in unicode.
  • Format: new parameter for to_xml() allows you to specify how booleans must be represented (0/1 vs false/true).
  • Config: when using a database as backend storage, you can now specify the name of the database config that needs to be used to access the "config" table.
  • Config: you can now store config information in a memcached backend (think about persistency!).
  • Module: when unloading a module, the routes defined by the module will be correctly removed.
  • Response: now has loop detection for redirect_back().
  • Log: Monolog initialisation has moved to a separate method, making it easier to overload it.
  • Session: driver garbage collection has moved to a separate method, making it easier to overload it.
  • Lang: load() now has support for dot-notation when loading into an existing group.
  • Migrate: will now autoload a module or a package before it executes its migrations.
  • Theme: you can now specify the other in which partials must be rendered for output. This allows you to render content before headers and footers, needed to dynamically add assets.
  • Theme: the presenter() method now allows you to pass a custom view name (like Presenter::forge() that is theme aware.
  • Crypt: can now be instantiated, if you need to use multiple crypt keysets in your application.
  • View: get() and set() now supports dot-notation for getting values from stored arrays.
  • DB: count_last_query() now correctly handles SQL containing sub-queries.
  • DB: database result objects can now be assigned a custom sanitation for specific encoding/decoding logic when results are send to a View. This also means you will no longer get a "database results are read-only" exception when you do.
  • Pagination: page and item calculations have been improved, to allow more flexibility in passing page data to the object.
  • Presenter: now supports the "::" notation to force loading a presenter from a module.
  • Session: the rotation_time configuration key can now be set to false to completely disable automatic session id rotation. Use with care!

Packages

  • Parser: In Twig templates you can now access the current Asset instance to load css, js or image files.
Clone this wiki locally