- Added
Illuminate\Support\Facades\Schema
tonotifications.stub
(#17664) - Added support for numeric arguments to
@break
and@continue
(#17603)
- Use
usesTimestamps()
in Eloquent traits (#17612) - Default to
null
if amount isn't set infactory()
helper (#17614) - Normalize PhpRedis GET/MGET results (#17196)
- Changed visibility of
Validator::addRules()
fromprotected
topublic
(#17654) - Gracefully handle
SIGTERM
signal in queue worker (b38ba01, 819888c) - Support inspecting multiple events of same type using
Event
fake (55be2ea) - Replaced hard-coded year in plain-text markdown emails (#17684)
- Made button component in plain-text markdown emails easier to read (#17683)
- Set
Command::$name
inCommand::configureUsingFluentDefinition()
(#17610) - Support post size
0
(unlimited) inValidatePostSize
(#17607) - Fixed method signature issues in
PhpRedisConnection
(#17627) - Fixed
BelongsTo
not accepting id of0
in foreign relations (#17668) - Support double quotes with
@section()
(#17677) - Fixed parsing explicit validator rules (#17681)
- Fixed
SessionGuard::recaller()
when request isnull
(#17688, 565456d) - Added missing
force
andtries
options forqueue:listen
(#17687) - Fixed how reservation works when queue is paused (9d348c5)
- Generate non-existent models with
make:controller
(#17587, 382b78c) - Added
TestResponse::dump()
method (#17600)
- Switch to
ViewFactory
contract inMail/Markdown
(#17591) - Use implicit binding when generating controllers with
make:model
(#17588) - Made PhpRedis method signatures compatibility with Predis (#17488)
- Use
config('app.name')
inmarkdown/message.blade.php
(#17604) - Use
getStatusCode()
instead ofstatus()
inTestResponse::fromBaseResponse()
(#17590)
- Fixed loading of
.env.testing
when running PHPUnit (#17596)
- Fixed database session data not persisting (#17584)
- Add
hasMiddlewareGroup()
andgetMiddlewareGroups()
method toRouter
(#17576)
- Fixed
--database
option onmigrate
commands (#17574) - Fixed
$sequence
being always overwritten inPostgresGrammar::compileInsertGetId()
(#17570)
- Removed various unused parameters from view compilers (#17554)
- Removed superfluous
ForceDelete
extension fromSoftDeletingScope
(#17552)
- Moved
$forElseCounter
property fromBladeCompiler
toCompilesLoops
(#17538)
- Fixed bug in
Router::pushMiddlewareToGroup()
(1054fd2) - Fixed indentation in
Notifications/resources/views/email.blade.php
(0435cfc)
- Fixed removal of reset tokens after password reset (#17524)
- Fixed view parent placeholding (64f7e9c)
- Added real-time facades 😈 (feb52bf)
- Added
retry()
helper (e3bd359, 52e9381) - Added
array_wrap()
helper function (0f76617) - Added default 503 error page into framework (855a8aa, #16848)
- Added
Encrypter::encryptString()
to bypass serialization (9725a8e) - Removed compiled class file generation and deprecated
ServiceProvider::compiles()
(#17003, 733d829) - Renamed
DetectEnvironment
toLoadEnvironmentVariables
(c36874d) - Switched to
::class
notation across the codebase (#17357)
- Secured password reset tokens against timing attacks and compromised databases (#16850, 9d674b0)
- Refactored authentication component (7b48bfc, 5c4541b)
- 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) - Allow view data to be passed Paginator methods (#17331)
- Add
mix()
helper method (6ea4997) - Escape inline sections content (#17453)
- Added model binding in broadcasting channel definitions (#16120, 515d97c)
- Added
Dispatchable::broadcast()
0fd8f8d - Switched to broadcasting events using new style jobs (#17433)
- 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) - Added customer connection resolver (#17248)
- Support aliasing database names with spaces (#17312)
- Support column aliases using
chunkById()
(#17034) - Execute queries with locks only on write connection (#17386)
- Added
compileLock()
method toSqlServerGrammar
(#17424)
- 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) - Added
$connection
parameter tocreate()
andforceCreate()
(#17392)
- Removed event priorities (dbbfc62, #17245, f83edc1)
- Allow queued handlers to specify their queue and connection (fedd4cd)
- Converted
locale.changed
event intoLocaleUpdated
class (3385fdc) - Unified wording (2dcde69)
- Allow chaining queueable methods onto trait dispatch (9fde549)
- Removed
Queueable
trait from event listeners subs (2a90ef4)
- 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
Http/Exception
namespace toHttp/Exceptions
(#17398) - 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 JSON responses to the
AuthenticatesUsers
andThrottlesLogins
(#17369) - Added middleware to trim strings and convert empty strings to null (f578bbc)
- 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)
- Added
NotificationSender
class (5f93133) - Removed
to
andcc
from mailMailMessage
(ff68549) - Add salutation option to
SimpleMessage
notification (#17429)
- 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, fed36bd)
- Refactored how queue connection names are set (4c600fb)
- Let queue worker exit ungracefully on
memoryExceeded()
(#17302) - Support pause and continue signals in queue worker (827d075)
- Added support for PhpRedis (#15160, 01ed1c8, 1ef8b9c)
- Added support for multiple Redis clusters (#16696, 464075d)
- Added
RedisQueue::laterRaw()
method (7fbac1c) - Return migrated jobs from
RedisQueue::migrateExpiredJobs()
(f21e942) - Send full job back into
RedisQueue
(16e862c)
- 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) - Namespaced all tests (#17058, #17148)
- Allow chaining of response assertions (#17330)
- Return
TestResponse
fromMakesHttpRequests::json()
(#17341) - Always return collection from factory when
$amount
is set (#17493)
- Added JSON loader for translations and
__()
helper (#16424, #16470, 9437244) - Replaced Symfony's translator (#15563)
- Added
namespaces()
method to translation loaders (#16664, fe7bbf7) - Switched to
trans()
helper inAuthenticatesUsers
(#17202)
- Refactored Validation component (#17005, 9e98e7a, 9b817f1)
- Removed files hydration in
Validator
(#16017) - Added IPv4 and IPv6 validators (#16545)
- Made
date_format
validation more precise (#16858) - Add place-holder replacers for
*_or_equal
rules (#17030) - Made
sometimes()
chainable (#17241) - Support wildcards in
MessageBag::first()
(#15217) - Support implicit keys in
MessageBag::first()
andMessageBag::first()
(#17001) - Support arrays with empty string as key (#17427)
- Add type check to
validateUrl()
(#17504)