- Added real-time facades 😈 (feb52bf)
- Added support for PhpRedis (#15160, 01ed1c8, 1ef8b9c)
- Added support for multiple Redis clusters (#16696, 464075d)
- Added
retry()
helper (e3bd359, 52e9381) - Added default 503 error page into framework (855a8aa, #16848)
- Added
Encrypter::encryptString()
to bypass serialization (9725a8e) - Support wildcards in
MessageBag::first()
(#15217) - Support implicit keys in
MessageBag::first()
andMessageBag::first()
(#17001) - Removed compiled class file generation and deprecated
ServiceProvider::compiles()
(#17003, 733d829) - Renamed
DetectEnvironment
toLoadEnvironmentVariables
(c36874d)
- Secured password reset tokens against timing attacks and compromised databases (#16850, 9d674b0)
- Refactored authentication component (7b48bfc, 5c4541b)
- Switched to components for auth view subs (78891d5)
- Added names to password reset routes (#16988)
- Stopped touching the user timestamp when updating the
remember_token
(#17135)
- Consider interfaces and extended classes in
Gate::resolvePolicyCallback()
(#15757)
- Added Blade components and slots (e8d2a45, a00a201)
- Refactored Blade component (7cdb6a6, 5e394bb)
- Refactored View component (#17018, bb998dc)
- Refactored Blade
@parent
compilation (#16033, 16f72a5) - Added support for translation blocks in Blade templates (7179935)
- Don't reverse the order of
@push
ed data (#16325)
- Added
RedisStore::add()
to store an item in the cache if the key doesn't exist (#15877) - Added
cache:forget
command (#16201, 7644977) - Refactored cache events (b7454f0, #17120)
Cache::flush()
now returns boolean (#15831, 057492d)
- Added higher-order messages for the collections (#16267, e276b3d, 2b7ab30, #16274, 724950a, #17000)
- Allow collection macros to be proxied (#16749)
- Added operator support to
Collection::contains()
method (#16791) - Added
Collection::every()
method (#16777) - Allow passing an array to
Collection::find()
(#16849) - Always return a collection when calling
Collection::random()
with a parameter (#16865) - Don't renumber the keys and keep the input array order in
mapWithKeys()
(#16564)
- Added
--model
tomake:controller
command to generate resource controller with type-hinted model (#16787) - Require confirmation for
key:generate
command in production (#16804) - Added
ManagesFrequencies
trait (e238299) - Added
Queueable
to queued listener stub (dcd64b6) - Switched from file to cache based Schedule overlap locking (#16196, 5973f6c)
- Changed namespace generation in
GeneratorCommand
(de9e03d) - Added
Command::$hidden
andScheduleFinishCommand
(#16806) - Moved all framework command registrations into
ArtisanServiceProvider
(954a333, baa6054, 87bd2a9) - Support passing output buffer to
Artisan::call()
(#16930) - Moved
tinker
into an external package (#17002) - Refactored queue commands (07a9402, a82a25f, f2beb2b)
- Allow tasks to be scheduled on weekends (#17085)
- Allow console events to be macroable (#17107)
- Added
Container::factory()
method to the Container contract (#15430) - Added support for binding methods to the container (#16800, 1fa8ea0)
- Trigger callback when binding an extension or resolving callback to an alias (c99098f)
- Support contextual binding with aliases (c99098f)
- Removed
$parameters
fromApplication::make()
andapp()
/resolve()
helpers (#17071, #17060) - Removed
Container::share()
(1a1969b) - Removed
Container::normalize()
(ff993b8)
- Refactored all database components (too many commits, sorry)
- Allow rolling back to a given transaction save-point (#15876)
- Added
$values
parameter toBuilder::firstOrNew()
(#15567) - Allow dependency injection on database seeders
run()
method (#15959) - Added support for joins when deleting deleting records using SqlServer (#16618)
- Added collation support to
SQLServerGrammar
(#16227) - Don't rollback to save-points on deadlock (nested transaction) (#15932)
- Improve
Connection::selectOne()
performance by switching toarray_shift()
(#16188) - Added
having()
shortcut (#17160)
- Refactored Eloquent (too many commits, sorry)
- Added support for object-based events for native Eloquent events (e7a724d, 9770d1a)
- Added custom class support for pivot models (#14293, 5459777)
- Use the model's primary key instead of
id
inModel::getForeignKey()
(#16396) - Made
date
anddatetime
cast difference more explicit (#16799) - Use
getKeyType()
instead of$keyType
inModel
(#16608) - Only detach all associations if no parameter is passed to
BelongsToMany::detach()
(#16144) - Return a database collection from
HasOneOrMany::createMany()
(#15944) - Throw
JsonEncodingException
whenModel::toJson()
fails (#16159, 0bda866) - Default foreign key for
belongsTo()
relationship is now dynamic (#16847) - Added
whereKey()
method (#16558) - Use parent connection if related model doesn't specify one (#16103)
- Enforce an
orderBy
clause forchunk()
(#16283, #16513)
- Allow queued handlers to specify their queue and connection (fedd4cd)
- Converted
locale.changed
event intoLocaleUpdated
class (3385fdc) - Unified wording (2dcde69)
- Use UUID instead of
md5()
for generating file names inFileHelpers
(#16193) - Allow array of options on
Filesystem
operations (481f760)
- Refactored session component (66976ba, d9e0a6a)
- Added
Illuminate\Http\Request\Concerns
traits (4810e9d) - Use variable-length method signature for
CookieJar::queue()
(#16290, ddabaaa) - Added
FormRequestServiceProvider
(b892805) - Renamed
getJsonOptions()
togetEncodingOptions()
onJsonResponse
(e689b2a) - Renamed
VerifyPostSize
middleware toValidatePostSize
(893a044) - Converted
kernel.handled
event intoRequestHandled
class (43a5e5f) - Throw
AuthorizationException
inFormRequest
(1a75409) - Use
Str::random
instead of UUID inFileHelpers
(#17046) - Moved
getOriginalContent()
toResponseTrait
(#17137)
- Added
LogServiceProvider
to defer loading of logging code (#15451, 6550153, #15794) - The
Log
facade now usesLoggerInterface
instead of the log writer (#15855) - Converted
illuminate.log
event intoMessageLogged
class (57c82d0)
- Added support for Markdown emails and notifications (#16768, b876759, cd569f0, 5325385)
- Refactored Mail component and removed
SuperClosure
dependency (50ab994, 5dace8f) - Allow
Mailer
to emailHtmlString
objects (882ea28) - Added
hasTo()
,hasCc()
andhasBcc()
toMailable
(fb29b38)
- Support job-based queue options (#16257, 2382dc3, ee385fa)
- Fixed manually failing jobs and added
FailingJob
class (707a3bc, 55afe12) - Converted
illuminate.queue.looping
event intoLooping
class (57c82d0) - Refactored Queue component (9bc8ca5, e030231, a041fb5, 7bb15cf, 5505728)
- Refactored how queue connection names are set (4c600fb)
- Added support for fluent routes (#16647, #16748)
- Removed
RouteServiceProvider::loadRoutesFrom()
(0f2b3be) - Allow route groups to be loaded directly from a file (#16707, #16792)
- Added named parameters to
UrlGenerator
(#16736, ce4d86b) - Refactored Route component (b75aca6, 9d3ff16, c906ed9, 0f7985c, 0f7985c, 3f4221f)
- Refactored Router component (eecf6ec, b208a4f, 21de409, e75730e)
- Refactored Router URL generator component (39e8c83, 098da0d)
- Removed
RouteDependencyResolverTrait::callWithDependencies()
(f7f13fa) UrlGenerator
improvements (f0b9858, 4f96f42)- Compile routes only once (c8ed0c3, b11fbcc)
- Simplified built-in testing for Dusk (#16667, 126adb7, b6dec26, 939264f)
- Improve database testing methods (#16679, 14e9dad, f23ac64)
- Refactored
MailFake
(b1d8f81) - Switched to namespaced PHPUnit
TestCase
(#17058)