Skip to content


Subversion checkout URL

You can clone with
Download ZIP
PHP Other

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

Laravel 4 Beta Change Log

Beta 4

  • Added Model::creating(Closure) and Model::updating(Closure) methods for hooking into Eloquent save events.
  • Added Model::saving(Closure) and Model::saved(Closure) methods for hooking into Eloquent save events.
  • Added Event::queue and Event::flush.
  • Added a Str class in support component. Adopted Patchwork UTF-8 to provide solid UTF-8 handling for the framework.
  • Allow Eloquent attributes to be accessed by camelCase in addition to snake_case.
  • Added App::environment method.
  • Added resolving method to IoC container for catching resolutions.
  • Added shouldReceive and swap methods to facade.
  • Added bound method to the IoC container.
  • Utilize checkdate in the date validation rule to make sure the date is actually valid.
  • Allow controller actions in base classes to be routed via Route::controller.
  • Encode queue payloads as JSON instead of serializing, to make the Queue place nicely with other languages.
  • Added Model::created(Closure) and Model::updated(Closure) methods for hooking into Eloquent post-save events.
  • Added Model::boot static method for a one time "booting" method for models.
  • Passing null into a where call will now short-cut into whereNull.
  • Changed Blade {{ }} to not escape. Made the triple braces escape.
  • Added DB::getName to get the configured name of the connection.
  • Made Eloquent casing agnostic. Will use whatever casing the properties use. Added snakeAttributes property to model (default true) to control casing on relationships when using toArray.
  • Added restart identity to Postgres truncate SQL.
  • Added Log::listen callback and illuminate.log event which can be hooked into for custom logging handling.
  • Allow blade templates to be configurable (advanced usage). Can swap out {{ }} for [[ ]] as an example, to avoid conflicts with other engines (such as handlebars).
  • camel_case function now returns strings with lower-case leading letters. Previous behavior of this function can be found in new studly_case helper.
  • Added find method to Eloquent Collection.
  • When using MySQL, new after method may be used when building Schema columns to specify column order. ($t->string('name')->after('foo'))
  • Added new --timeout option to queue:listen command.
  • Fixed bug that sometimes caused custom view engines to not be properly utilized.
  • Added URL::previous method for getting previous URL from referer $_SERVER variable.
  • Renamed path helper to url for consistency.
  • Added App::shutdown method for registering callbacks to be fired at very end of both web and Artisan life-cycle.
  • Added saveMany and createMany to 1:1, 1:, and *: relations.
  • Support for IronMQ message queue added. Driver is iron.
  • Added domain and path options to session configuration. Named prior path option to files.
  • Add collation and character set to create table statements in MySQL schema builder.
  • Allow session payload cookie name to be configurable.
  • shouldReceive may now be called on a Facade multiple times without using getMock.
  • Allow default value to be passed to Eloquent collection find method.
  • Intelligently parse resource routes containing slashes.
  • Route::options is now available for routing HTTP OPTIONS verb.
  • New secret method may be called from Artisan commands for password style input.
  • Added Cache::add method to store a value in the cache if the key does not exist in the cache already.
  • Added Cache::increment and Cache::decrement methods to all but file and database cache drivers.
  • Updated asset:publish command to automatically find packages with asset directories.
  • Implement Eloquent scopes.
  • Added assertResponseOk, assertViewHas, assertSessionHas, assertRedirectedTo, assertRedirectedToRoute, assertRedirectedToAction test assertions.
  • Added new setAttributeNames to Validator to allow dynamically passing custom attribute names per instance.
  • Properties passed to Eloquent fill or __construct beginning with an underscore will be ignored.
  • Changed cache stores to be implementors of a StoreInterface rather than extenders of a Store abstract class. Injected implementations into a Cache\Repository class.
  • Added array_fetch and array_flatten. Added fetch and flatten to Collection class.
  • Added merge method to the Collection class.
  • Added an addSelect method to the query builder.
  • Added Route::currentRouteName and Route::currentRouteAction.
  • Protect against mass assignment by default.
  • Make add and merge methods on the MessageBag chainable.
  • Added deleting and deleted methods to Eloquent models. Both new events.
  • Added pop and shift methods to Eloquent collection.
  • Allow Input::get to be used on JSON requests to give unified API across request types.
  • Allow sync to also update the other pivot table attributes.
  • Pass console Command instance to database seeders.
  • Made storage path configurable.
  • Added @lang and @choice Blade directives.
  • Do not run route level after filters if response is returned from before filter.
  • Added support for "mail" in addition to "smtp" in Mail.
  • Added link_to, link_to_asset, link_to_route, link_to_action helpers.
  • Routes with too many leading or trailing slashes will now 404.
  • Added callSecure test helper.
  • Added values method to the Collection class.
  • Fix transaction handling for Microsoft SQL Server.
  • Added new dump-autoload Artisan command that runs optimized for app and all workbenches.
  • Refactored post migrate:make hooks to dump autoloads for workbenches.
  • Added DB::listen(Closure) method which may be used to listen for database queries.
  • Added Model::findOrFail(id) and firstOrFail methods to Eloquent. Throws ModelNotFoundException. Can listen in your apps and return 404 repsonses if you want.
  • Added support for touches on Eloquent models. For example, adding protected $touches = ['post'] to a Comment model will update the owning post's updated_at column when the Comment is updated.
  • Session driver now automatically set to array when running Artisan tasks.
  • Added static unguard method to Eloquent to disable all mass assignment protection.
  • Added --seed option to migrate command.

Beta 3

  • Fixed a few things in the ArrayStore session driver.
  • Improve reasons in Password Broker.

Beta 2

  • Migrated to ircmaxell's password-compat library for PHP 5.5 forward compatibility on hashes. No backward compatibility breaks.
  • Inflector migrated to L4. Eloquent models now assume their table names if one is not specified. New helpers str_plural and str_singular.
  • Improved Route::controller so that URL::action may be used with RESTful controllers.
  • Added model binding to routing engine via Route::model and Route::bind.
  • Added missingMethod to base Controller, can be used to handle catch-all routes into the controller.
  • Fixed bug with Redis data retrieval that caused server to hang.
  • Implemented ArrayableInterface and JsonableInterface on MessageBag.
  • Fixed bug where hasFile returned true when file returned null.
  • Changed default PDO case constant to CASE_NATURAL.
  • DB::table('foo')->truncate() now available on all supported databases.
  • Fixed Twitter Bootstrap compatibility in Paginator.
  • Allow multiple views to be passed to View::composer.
  • Added Request::segment method.
  • No need to prefix Translator methods with colons anymore.
  • Allow inline error messages for an entire rule on the Validator.
  • Can now automatically auto-load a relation for every query by setting the with attribute on models.
  • Fix fallback locale handling in Translator.
  • Added constructor arguments and merge method to MessageBag.
  • IoC container will now resolve default parameters if no binding is available.
  • Fix auto environment detection on Artisan.
  • Fix BrowserKit request processing.
  • Added Config::hasGroup method.
  • Added DB::unprepared method for running raw, unprepared queries against PDO.
  • Allow :key place-holder in MessageBag messages.
  • Added Auth::validate method for validating credentials without logging in.
  • Added Auth::stateless method for logging in for a single request without sessions or cookies.
  • Added DB::extend method for adding custom connection resolvers.
  • Added each and filter methods to Eloquent collections.
  • Swapped method order on Route::controller to make it more consistent with other similar methods.
  • Added route names to resource routes.
  • Added support for nested resources.
  • Changed resource route parameter names to match resource name, allowing for use with Route::model.
  • Added extendImplicit method to Validator.
  • Added Password::remind and Password::reset methods.
  • Implemented RemindableInterface on the default User model.
  • Added unified queue API component, with drivers for sync and beanstalkd (Amazon SQS to come).
  • Ported Model->touch method from L3 Eloquent.
  • Added isEmpty method to the Paginator.
  • Added ability to specify prefix on a route group.
  • Added setBaseUrl method to pagination environment.
  • Eloquent Model and Collections objects now include JSON_NUMERIC_CHECK by default on toJson method.
  • Eloquent mutators are now prefixed with getFooAttribute and setFooAttribute instead of getFoo and setFoo. This is to avoid conflicts with other get and set methods on the model, and in your own code.
  • Added auth:reminders Artisan command for generating a migration for the password reminders table.
  • Added App::fatal method for registering an error listener for PHP fatal errors.
  • Added session:table Artisan command for generating a migration for the session database table.
  • Fix bug when using first method on a belongsToMany relationship.
  • Added SQL and bindings array to database query exceptions.
  • Allow manipulation of session using "dot" notation.
  • Route regular expression constraints may now be defined globally via Route::pattern.
  • Auto-increment fields are now unsigned if the database system supports it.
  • Changed how database seeding works to give more freedom and allow use of Eloquent, etc.
  • Change event dispatcher to use more L3 style conventions instead of passing event objects. Added until method.
  • Fix bug with Eloquent eager loads with joins.
  • Allow method specification on class based View composers.
  • Allow method specification on class based Route filters.
  • Added new configuration option for specifying session cookie name.
  • Escape Blade echos by default. Made {{{ foo }}} echo for raw output with no escaping.
  • Allow the sending of e-mails with only plain text parts.
Something went wrong with that request. Please try again.