-
Notifications
You must be signed in to change notification settings - Fork 346
Changelog v1.6
Harro Verton edited this page May 3, 2013
·
19 revisions
This keeps track of important changes to the 1.x branch. Important changes that need extra attention when releasing v1.6. 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.
- This release officially introduces Composer to FuelPHP. You will have to install it, and run a 'php composer.phar update' to pull in any required packages. Without this step, 1.6 WILL NOT WORK!!!
- Class names in the Auth package have been modified to match FuelPHP coding standards. Check your configuration ('SimpleAuth' is now 'Simpleauth'!) and any class extensions you have made.
- The Log functionality has been moved back in the core. If you are upgrading from 1.5, please remove the old 'Log' package from the
always_load
section in yourconfig.php
, and remove the package from the packages folder. - The environment 'stage' has been renamed to 'staging', the corresponding constant to Fuel::STAGING.
- You now get a proper error message if your PHP timezone settings are not correctly configured.
- You now get a proper error message if there is an issue with rights to the log file.
- All code that creates files or directories has been rewritten to properly set the configured permission mask without using
umask()
, which is not thread-safe.
- The names of the Auth classes have been changed to comply with FuelPHP coding standards (
Auth_Login_Simpleauth
instead ofAuth_Login_SimpleAuth
), this can cause a class-not-found error if you have extended an Auth class in your application. - The ORM
validation_observer
now has multiple events. Do not define it without specifying which events to call, as it would cause validation to be called twice! - The Orm behaviour with regards to relation assignments has been changed. Now, when you do an unset(), a set to NULL or array(), or you assign a new value, the previous relation will be unset. Regardless of whether you had fetched that relation or not. This might impact your application if you have used this 'bug' as a shortcut to adding additional objects to an existing relation!
-
Orm:
find()
andfind(null)
functionality is now removed. Usequery()
instead.
- ViewModel: when determining the name of the ViewModel class to load, it will search for classes with and without the 'View_' prefix. This behaviour is deprecated, as of the next release ViewModel classes MUST be in classes/view, and MUST be prefixed with 'View_'.
- The default security filters have been removed from the core configuration, to allow you to define your own security filters. Note: if you're migration from previous versions and relied on this default config, make sure your app config file has the default security filters defined!
- The Markdown library has been upgraded to 1.2.6.
- The cache option in the global configuration now correctly caches finder paths to speedup file lookups.
- Controller methods can now return 'false' or 'array()' as valid values, for use in HMVC requests.
- Exceptions in shutdown event are now properly caught and handled.
- Agent: will now re-use an expired download if a new browscap file could not be downloaded.
-
Arr: New
search
method allows you to search for values in array structures, and get the (dot-notated) key returned. -
Arr: New
unique
method allows you to de-dup an array. Like array_unique(), but this one supports objects and closures, and doesn't sort the source array first. -
Arr: New
sum
method allows you to sum up specific values in a multi-dimensional array structure. - Asset: now generates the correct Asset URL when using a CDN.
-
Controller_Rest: now allows auth checks using a controller method (avoids
before()
orrouter()
hacks). -
DB: new
identifier
method allows you to properly quote an identifier for use in custom queries. -
DB: the
Database_Transaction
class that was already deprecated in v1.2 has been removed. All drivers support transactions natively. - DButil: now supports the keyword "PRIMARY KEY" on field updates.
- Cache: index mechanism has been refactored. Dependency checking now works properly when using APC, Memcached or Redis backends.
- Error: a new configuration option allows you to render already generated output to be shown in error messages via the 'prior output' link, instead of the HTML.
-
File:
create_dir
method now works properly on Windows. -
Form:
select
now doesn't use inline css to generate optgroups unless needed. - Fieldset: fixed generation of invalid labels.
-
Html:
anchor
method now generates URL's without a trailing slash. -
Input:
uri
method now works properly on Windows. -
Lang:
delete
method now works properly when passing a $group value. - Pagination: now generates the last link correctly.
- Profiler: DB query profiling now includes a stack trace for every query to make it easier to find it in your code.
- Router: now supports protocol specific routes (http/https) in verb based route notation.
- Upload: has been rewritten to use the FuelPHP v2 composer library.
-
Viewmodel: now calls
before
before rendering the view, instead of when constructing the object. - Viewmodel: ViewModel class name is now correctly determined from the passed view name.
- Viewmodel: Will now look in the global namespace for the ViewModel class if called from a module and not found in the module namespace.
- Auth: Class names have been modified to match FuelPHP coding standards.
-
Auth:
update_user
now verifies if the new email address is unique before updating it. - Auth: Number of PBKDF2 iterations can now be configured in the auth config file.
- Auth: Multiple concurrent user logins can now be configured through the driver configuration file.
- Auth: Auth login drivers now set 'updated_at' correctly.
-
Auth: new
get
method allows unified access to all user properties. -
Auth: new
groups
method which returns the list of all defined groups. -
Auth: new
roles
method which returns the list of all defined roles. - Auth: new 'Ormauth' driver set that uses the database through ORM as datastore.
- Auth: Package now contains migrations for both Simpleauth and Ormauth.
- Auth: New 'Simple2Orm' task can migrate your existing Simpleauth config to Ormauth.
- Email: Attachments can now be named.
- Log: The Log package, introduced in 1.5 as a temporary solution, has been removed again.
- Oil: Fixed redirect loop in the generated admin backend code.
- Oil: Improved exception handling and reporting.
- Oil: Added support for ORM soft-delete models.
- Oil: Modified the scaffolding templates to work better with bootstrap.
- Oil: New commandline options for PHPunit allow for more granular testing and logging.
- Orm: Validation observer now supports 'before_insert' and 'before_update'.
- Orm: Now correctly resets foreign keys if cascade_delete is false.
- Orm: Added view support to count(), min() and max() queries.
- Orm: min() and max() now return integers instead of strings.
- Orm: Added temporal support (data versioning).
- Orm: You can now test for existence of EAV attributes using isset().
- Orm: Validation observer can now validate on insert and update too.
- Orm: It is now allowed for models to have a FK as part of the PK.
- Orm: You can now order a many_many result on an attribute in the through table.
- Orm: You can now pass custom (non-column) data when forging a new model object.
- Orm: Current relations are now properly unset when using unset() or a new assignment.
-
Orm:
from_array
now returns $this so you can chain on it. -
Orm:
from_array
now allows you to load custom data. -
Orm:
from_array
now allows you to load related objects from a multidimensional array. - Orm: Several speed improvements in Observer_Typing.
- Orm: Observer_Typing float conversions are now locale aware.
- Orm: Observer_Typing now uses property defaults on null values if defined.
- Orm: Observer_Typing can now handle MySQL '0000-00-00 00:00:00' datetime values.
-
Orm: new
from_cache
method allows you to enable/disable object caching on a query. - Orm: 'join on' now works correctly as documented.
- Orm: 'order_by' now works correctly when a subquery is generated.
-
Orm:
is_changed
now does loose-typing, so 1 => '1' doesn't trigger an update query anymore. - Parser: Added support for mthaml (HamlTwig)
- Parser: Switched to using Composer for smarty, mustache, mthaml and twig template engines.
- Parser: Markdown has been upgraded to 1.2.6.