The full change list for this release by running the php artisan changes
command from a 4.1 installation, or by viewing the change file on Github. These notes only cover the major enhancements and changes for the release.
An entirely new SSH
component has been introduced with this release. This feature allows you to easily SSH into remote servers and run commands. To learn more, consult the SSH component documentation.
The new php artisan tail
command utilizes the new SSH component. For more information, consult the tail
command documentation.
The php artisan tinker
command now utilizes the Boris REPL if your system supports it. The readline
and pcntl
PHP extensions must be installed to use this feature. If you do not have these extensions, the shell from 4.0 will be used.
A new hasManyThrough
relationship has been added to Eloquent. To learn how to use it, consult the Eloquent documentation.
A new whereHas
method has also been introduced to allow retrieving models based on relationship constraints.
Automatic handling of separate read / write connections is now available throughout the database layer, including the query builder and Eloquent. For more information, consult the documentation.
Queue priorities are now supported by passing a comma-delimited list to the queue:listen
command.
The queue facilities now include automatic handling of failed jobs when using the new --tries
switch on queue:listen
. More information on handling failed jobs can be found in the queue documentation.
Cache "sections" have been superseded by "tags". Cache tags allow you to assign multiple "tags" to a cache item, and flush all items assigned to a single tag. More information on using cache tags may be found in the cache documentation.
The password reminder engine has been changed to provide greater developer flexibility when validating passwords, flashing status messages to the session, etc. For more information on using the enhanced password reminder engine, consult the documentation.
Laravel 4.1 features a totally re-written routing layer. The API is the same; however, registering routes is a full 100% faster compared to 4.0. The entire engine has been greatly simplified, and the dependency on Symfony Routing has been minimized to the compiling of route expressions.
With this release, we're also introducing an entirely new session engine. Similar to the routing improvements, the new session layer is leaner and faster. We are no longer using Symfony's (and therefore PHP's) session handling facilities, and are using a custom solution that is simpler and easier to maintain.
If you are using the renameColumn
function in your migrations, you will need to add the doctrine/dbal
dependency to your composer.json
file. This package is no longer included in Laravel by default.