Laravelバージョン: 5.5.0
ステータス:
セキュリティ&バグ修正ともに終了
推奨:
少なくともセキュリティ修正が行われているバージョンまでできる限り早くアップデートしてください!
セキュリティ修正が行われている一番低いバージョンは: 10
アップグレードするには、ドキュメントのインストラクションに従うか Laravel Shift の自動アップグレードを利用してください。
最新のパッチリリース:
メジャーバージョン | リリース日 | バグ修正期限 | セキュリティ修正期限 | PHP Versions | ステータス |
---|---|---|---|---|---|
5.5 | 2017年8月30日 | 2019年8月30日 | 2020年8月30日 | 7.0, 7.1, 7.2 |
EOL
|
Releases
5.5.50
5.5.49
5.5.48
5.5.47
5.5.46
5.5.45
5.5.44
5.5.43
5.5.42
5.5.41
5.5.40
5.5.39
5.5.38
5.5.37
5.5.36
5.5.35
5.5.34
5.5.33
5.5.32
5.5.31
5.5.30
5.5.29
5.5.28
5.5.27
5.5.26
5.5.25
5.5.24
5.5.23
5.5.22
5.5.21
5.5.20
5.5.19
5.5.18
5.5.17
5.5.16
5.5.15
5.5.14
5.5.13
5.5.12
5.5.11
5.5.10
5.5.9
5.5.8
5.5.7
5.5.6
5.5.5
5.5.4
5.5.3
5.5.2
5.5.1
5.5.0
5.5.50
No changelog available.
5.5.49
No changelog available.
5.5.48
No changelog available.
5.5.47
No changelog available.
5.5.46
No changelog available.
5.5.45
No changelog available.
5.5.44
Changed
- Revert of "Patch Blade's
@lang
directive", so it is not escapes HTML tags (0b7b3713e81fe571c244c2cf5d1f5085b6985f96)
Fixed
5.5.43
No changelog available.
5.5.42
No changelog available.
5.5.41
No changelog available.
5.5.29
Added
- Added
Model::qualifyColumn()
method (#22577) - Added support for the
author_*
fields toSlackAttachment
(#22610) - Added
UrlGenerator::getDefaultParameters()
method (#22572) - Added option to double encode escaped strings (61f8477)
- Added
BladeCompiler::doubleEncode()
method (1cc96a1) - Added support for nested keys to
TestResponse::assertJsonCount()
(#22740) - Added
s3://
to protocol to URL validation (#22752) - Added option to disable wrapping migrations in transaction (#22757)
Changed
- Use
Arr::get()
inCollection::get()
(#22554) - Pass entire config to
FtpAdapter
(#22539) - Support extending Eloquent relationships (#22617)
- Improved handling of
VerifyCsrfToken::$except
values (#22619, #22661) - Support multiple levels in
Collection::groupBy()
(#22630) - Clear user instance in
RequestGuard::setRequest()
(#22649) - Allow StudlyCase and snake_case migration names (#22648)
- Set
null
as default value foroptional()
helper (#22699) - Make sure
getRememberToken()
returns a string (#22724) - Updated Vue preset version (#22732)
- Accept
Arrayable
items inCollection::find()
(#22787)
Fixed
- Close database connection when using
RefreshDatabase
trait (#22569) - Send status code
500
when usingdd()
(#22581) - Fixed parameter usage in
RedirectController
(#22657) - Added
__set_state()
method toSupport/Carbon
(#22689) - Do not continue checking
APP_ENV
if environment file path being set successfully with--env
option (#22753) - Fixed missing table prefix in
SQLiteGrammar::compileDropColumn()
(#22745, c13322c) - Fixed prefixing in
SQLiteGrammar::compileColumnListing()
(#22781)
5.5.26
Added
- Support passing collections to
Collection::except()
(#22399) - Made
Command
class macroable (#22426, #22434) - Added
ProcessUtils
class for command argument escaping (#22448) - Added array support to
Optional
helper class (#22417)
Changed
- Added "cattle" as an uncountable word (#22415)
- Added
Dispatcher
contract onNotificationFake
and return fake object fromNotification::fake()
(#22396) - Only add value as query binding if it isn't an
Expression
(#22451)
Fixed
5.5.25
Added
- Added support for Flysystem caching (#22310, 0657496)
- Added support for
year
data type (#22377) - Added support for setting Whoops debug editor (#22350, c6e3a73)
Changed
- Use
Model::newQueryWithoutRelationships()
inCollection::load()
(#22363) - Respect
schema
config inPostgresBuilder
(#22365, de561cb)
Fixed
- Fixed SQS queue driver for PHP 7.2 (#22374)
5.5.23
Added
- Added a
Collection::firstWhere()
method (#22261, #22264) - Added several accessors to
BelongsToMany
(f09ea98, cbe8123, 3bcf9d1)
Changed
- Pass test value to
Collection::when()
callbacks (#22224) - Support worker sleep time of less than 1s (#22246, #22255)
- Detect persistent connection resets (#22277)
- Support chaining seeders (#22288)
Fixed
- Fixed negative comparison to objects in
Collection::where()
(#22256) - Fixed comparing strings with objects that can be casted to string in
Collection::where()
(#22295) - Fixed integer validation using
distinct:ignore_case
(#22235) - Fixes building nested JSON accessors in
MySqlGrammar
(#22254) - Remove
SELECT
bindings from MySQL delete statements (#22285)
5.5.22
Added
- Added
response()
anddownload()
methods to file system (#22089) - Added complete temporary table support (#22110)
- Added
Mode::newQueryForRestoration()
method (#22119) - Added precision support for date/time columns (#22122)
- Added detection for MySQL Galera deadlocks (#22214)
Changed
- Updated depreciated
MailFake::queue()
method signature (#22072) - Use
MEDIUMTEXT
instead ofTEXT
for database cache values (MySQL only) (#22091) - Include the name of the scheduled job in the output email subject (#22098)
- Support
Dblib
version config for SQL Server (#22102) - Set
Model::$exists
tofalse
when force-deleting a model usingSoftDeletes
(#22100) - Support empty strings in
HasAttributes::fromDateTime()
(#22108) - Return condition from
throw_*
helpers (#22149) - Make
Collection::where()
independent of error reporting (#22172) - Show more meaningful message when json translation file contains errors (#22165, cf29b88)
- Improve
Model::getTable()
performance (#22222) - Use transaction in migrations using SQL Server (#22187)
Fixed
- Fixed
HasManyThrough
relation with custom intermediate and local keys when used inwhereHas()
(#22071, 3788cbd) - Fixed SQL Server handling of
DATETIME
columns (#22052) - Return default value from
old()
when session isn't available (#22082) - Refactor
Arr::flatten()
to prevent performance issue (#22103) - Wrap MySQL JSON keys in double quotes when updating JSON columns (#22118)
- Fixed custom URLs with prefix (
root
) for AWS storage (#22130) - Prevent authentication if
password
is the only specified field (#22167)
Removed
- Removed
between
operator from basic where clauses (#22182)
5.5.20
Added
- Added
TestResponse::assertJsonMissingExact()
(#21881) - Added
assertValidationErrors()
andassertJsonCount()
toTestResponse
(#21917) - Added
allOnQueue()
andallOnConnection()
for job chaining (#21765) - Support variadic arguments on fluent
Route::middleware()
(#21930) - Added precision to
Blueprint::time()
(#21936) - Added
Router::apiResources()
method (#21956) - Support graceful handling of
SIGTERM
in queue workers (#21964)
Changed
- Added "kin" as an uncountable word (#21843)
- Improved geo spatial support (#21919)
- Include job name in the
MaxAttemptsExcededException
(#21941, #21943) - Support rendering multiple
@verbatim
and@php
blocks (#21900) - Moved
InteractsWithRedis
toIlluminate\Foundation\Testing
(#21967) - Don't bind macro when it is not a
Closure
(#21980) - Check for
before()
method on policies classes (#21989) - Detect lost pgbouncer connections (#21988)
Fixed
- Fixed
BroadcastController
namespace issue (#21844) - Fixed eager loading
HasManyThrough
relations with custom intermediate and local key (#21902) - Use table aliases when calling self-referencing
HasManyThrough
relation (#21883) - Fixed Vue component file name in React present (#21945)
- Reverted changes to
BadMethodException
in #20196 (#21929)
5.5.19
Added
- Added
MakesHttpRequests::followingRedirects()
method (#21771) - Added
MakesHttpRequests::from()
method (#21788) - Added
notifyNow()
method to notifiables (#21795) - Added
TestResponse::assertCookieExpired()
method (#21793) - Added
TestResponse::assertCookieMissing()
method (#21803)
Changed
- Allow the distinct validation rule to optionally ignore case (#21757)
Fixed
5.5.18
Added
- Made
Redirector
macroable (#21714)
Changed
- Prevent reloading default relationships while lazy eager-loading (#21710)
- Don't reload pivot relationship on refresh (#21713)
- Unify Vue.js preset (#21711, #21724)
- Revert multibyte functions in
Str
(#21722) - Remove hardcoded fields in DatabaseUserProvider (#21749)
Fixed
- Don't recreate the SQLite database file in
refreshDatabaseFile()
(#21720)
5.5.16
No changes.
5.5.15
Added
- Added missing PostgreSQL network address operators (#21518)
- Added raw and same-site parameters to
cookie()
helper (#21551) - Added option to create pivot model to
make:model
command (#21549) - Added support for a
failed()
method to mailables and notifications (#21585) - Added
__toString
onViewErrorBag
(#21605) - Support higher order call of
keyBy()
(#21606) - Generate
@else*
directives forBlade::if()
(#21611) - Made
Response
andJsonResponse
macroable (#21669)
Changed
- Escape HTML characters in
@json
directive (#21574) - Only accept strings in
Session::flash()
(#21576) - Use message from
AuthenticationException
inHandler::unauthenticated()
(#21575) - Don't use global scope while touching parent timestamp (#21604)
- Accept multiple middleware when defining middleware fluently (#21621)
- Bind
true
as1
while preparing an SQL statement (#21623) - Ensure config load order across multiple installations (#21634)
- Pass previous exception to
AccessDeniedHttpException
andHttpException
(#21645) - Unify Bootstrap preset (#21686, #21685)
Fixed
5.5.14
Added
- Allow testing anonymous notifiables (#21379)
- Add relation and model attributes on
RelationNotFoundException
(#21426) - Allow passing a callback to
with()
(#21445) - Added
PotentiallyMissing
interface toMissingValue
class (be7dccc) - Accept
$queue
name onSchedule::job()
(#21473) - Added callback and default parameter
whenLoaded()
method (#21490) - Allow marking notifications as unread (#21497)
- Added
Collection::mapToDictionary()
method (#21505) - Added
make:exception
command (#21483)
Changed
- Reset RefreshDatabaseState after DatabaseMigrations rolls back (#21325)
- Make sure page resolver returns an integer (#21378)
- Allow single error messages in
ValidationException::withMessages()
(#21400) - Revert
Collection::sortBy()
behaviour to 5.4 (#21382) - Use fill instead of forceFill while storing pivot attributes (#21403)
- Alphabetize
vendor:publish
options (#21412) - Extract
AnonymousResourceCollection
into class to allow serialization (#21456) - Extract some methods from
Resource
intoConditionallyLoadsAttributes
trait (28d945e, 1f37ccc)
Fixed
- Ensure user is logged in before expecting user instance (#21377)
- Remove leading slash from class while resolving controllers (#21407)
- Make sure SQL for virtual columns is added after the unsigned modifier (#21441)
- Fixed
Collection::contains()
when the found value isnull
(#21442) - Fixed merge issue in
Relation::morphMap()
(#21458) - Clear count query select bindings in
Relation::getRelationExistenceCountQuery()
(#21468) - Fixed user model type hints policy stub (#21499)
5.5.13
Added
- Added optional config option for whoops blacklist (#21336, a83ebc1)
- Added
Collection::pad()
method (#21342)
Changed
- Made
$callback
parameter ofArr::sort()
optional (#21337) - Support setting custom
REMOTE_ADDR
inMakesHttpRequests
(#21351) - Changed visibility of
$output
to public on console events (#21356)
Fixed
5.5.10
Added
- Added
Route::respondWithRoute($name)
method (#21299, 66c5e46) - Added
$strict
parameter toTestResponse::assertJson()
(#21301)
Changed
- Added "firmware" as an uncountable word (#21306)
- Allow
MorphTo::associate()
acceptnull
(#21318) - Changed
__()
signature to matchTranslation::trans()
(10c013c)
Fixed
- Add missing
driver
parameter to doctrine connection (#21297)
Security
- Perform constant-time token comparison in
DatabaseUserProvider
(#21320)
5.5.8
Fixed
- Fixed issue with routes sorting (#21261)
5.5.7
Fixed
- Fix
CacheClearCommand
binding (#21256)
5.5.5
Added
- Added
:input
placeholder in validation error messages (#21175) - Added
@includeFirst
Blade directive (#21172) - Allow setting column styles for tables in Artisan commands (#21169)
- Added
ValidatesRequests::extractInputFromRules()
method (#21192) - Added
-m
shortcut tomake:factory
(#21219) - Added ability to set a fallback (catch-all) route (#21234)
Changed
- Support
null
onModel::UPDATED_AT
(#21178) - Render views from config while building error views (#21145)
- Use multibyte functions in some
Str
methods (#21207) - Perform stable sort in
Collection::sortBy()
(#21214)
Fixed
5.5.4
Added
- Added
Blueprint::spatialIndex()
method (#21070) - Added support for SQL Server's
TransactionIsolation
DSN key (#21069) - Added
ManagesFrequencies::everyFifteenMinutes()
method (#21092) - Added
Mailable::hasReplyTo()
method (#21093) - Added
MailMessage::template()
method (#21154) - Added support for Rackspace to
Storage::url()
(#21157) - Added support to use sub-queries as a where condition on a join clause (#21008)
Changed
- Return
null
fromRoute::getAction()
if$key
is not found (#21083) - Restore non-static signature of
Router::prepareResponse()
(#21114, e1a1265) - Removed
Model
type hint fromModel::isNot()
(4d8f0a1) - Prefer
Jsonable
overArrayable
inJsonResponse::setData()
(#21136) - Reset
cc
andbcc
inMailer::setGlobalTo()
(#21137) - Avoid trace
args
in JSON exceptions (#21149)
Fixed
- Fixed
@json
directive parameter logic (2a25ee7) - Fixed a problem with
withoutExceptionHandling()
when called more than once (#21086) - Added a
compileForeign()
method toPostgresGrammar
(#21038) - Reset the index after a
MissingValue
while resolving resource (#21127) - Fixed
getQualifiedParentKey()
onBelongsToMany
relationships (#21128) - Fixed parameters on
Route::view()
when usingwhere()
(#21113) - Show real directory name in the exception message thrown by
PackageManifest
(#21099) - Fixed undefined offset error when refreshing a database collection (#21159)
5.5.3
Added
- Added
$action
parameter toRoute::getAction()
for simpler access (#20975) - Added
@json
blade directive (#21004) - Added
rescue()
helper (#21010, 74ecb34, c4d1c47) - Support commas in
In
andNotIn
parameters (#21012, 3c3c5e4) - Added
RedisManager::connections()
method (#21014, 1deaaa9) - Added exception class to JSON exceptions (#21043)
- Added
Gate::policies()
method (#21036) - Added geo spatial blueprint methods (#21056)
Changed
- Fixed migrations not being run in batch order (#20986)
- Flush application resources on teardown (#21022)
- Catch errors while building exception context (#21047)
- Return
$this
fromValidator::setCustomMessages()
(#21046)
Fixed
- Make
Request::validate()
return the value of parent key (#20974) - Fixed date comparison validators failing when a format is specified (#20940)
- Fixed login throttling failing when
decayMinutes
is more than1
(#20997) - Only use reflection on classes in
Kernel::load()
(#20998) - Specify lower case
column_name
inMySqlGrammar::compileColumnListing()
(#21037) - Fixed eager loading problem with
BelongsToMany
(#21044)
Removed
5.5.2
Added
- Added
mov
extension andMimeType::search()
method (#20917) - Added support for
dont-discover
in packages (#20921, 4a6f1f2) - Added
retrieved
model event (#20852, 84291a6) - Added
HasOneOrMany::setForeignAttributesForCreate()
method (#20871) - Made
Route
macroable (#20970)
Changed
- Load deferred providers before commands (366c50e)
- Don't pass cache instance to Schedule anymore (#20916, #20933)
- Simplified
mix
require (#20929) - Return
null
if resource attribute contains relation with a null value (#20969)
Fixed
- Prevent
ErrorException
inCollection::operatorForWhere()
method (#20913) - Create default console input/output in
Application::run()
(#20922, 7647399) - Ignore abstract classes in
Kernel::load()
(#20931) - Fixed
listener-queued-duck.stub
filename (#20937) - Fixed faking notification sending while using AnonymousNotifiable (#20965)
- Fixed
eachSpread()
andmapSpread()
with nested collections (#20962) - Fixed generating names for classes beginning with slash (#20961)
5.5.1
Added
- Added getter methods on
MimeType
(#20826)
Changed
- Moved console commands auto discovery to
Kernel::bootstrap()
(#20863) - Use classes instead of helper functions (#20879, #20880)
- Changed
Resource::$collects
visibility topublic
(#20885)
Fixed
- Fixed
choice()
on non-tty terminals (#20840) - Fixed Macroable calls on
Optional
(#20845, #20898) - Fixed
dropAllTables()
when usingPDO::FETCH_ASSOC
mode (#20859) - Pass model name to
ModelNotFoundException::setModel()
(#20896, 891f90e) - Fixed
Basic
authentication (#20905) - Fixed
DelegatesToResource::offsetExists()
(#20887)
Removed
- Removed redundant methods from
MorphOneOrMany
(#20837)
5.5.0
General
⚠️ Require PHP 7+ (06907a0, 39809ce)⚠️ Removed deprecatedServiceProvider::compile()
method (10da428)⚠️ Removed deprecatedStr::quickRandom()
method (2ef257a)- Removed
build
scripts (7c16b15) - Upgraded to Symfony 3.3 components (4db7031, 67a5367)
- Throw
RuntimeException
when app key is missing (#19145, 8adbaa7)
Artisan Console
- Added interactive prompt to
vendor:publish
(#18230) - Added
migrate:fresh
command (f6511d4, #20090) - Added
make:factory
command and added--factory
tomake:model
(a6ffd8b, #19985) - Added
make:rule
command (76853fd) ⚠️ AddedrunningInConsole()
methodApplication
contract (#18658)- Support default value(s) on command arguments (#18572)
- Improved CLI detection for phpdbg (#18781)
⚠️ Always return array fromRetryCommand::getJobIds()
(#19232)- Support passing absolute paths to
make::listener
(#19660) ⚠️ Usehandle()
method instead offire()
(#19827, #19839, #20024)- Try to guess the
--create
option when generation migrations (#20032) - Generate
make:policy
with real user model namespace (#20047) - Added
Kernel::load()
to auto register a directory of commands (2e7ddca, d607b9c) ⚠️ Removedarray
type hint fromCommand::table()
(#20120)- Support loading multiple paths in
Kernel::load()
(#20251, #20595) - Added
CommandStarting
andCommandFinished
events (#20298) - Show error message if a reverted migration is not found (#20499, a895b1e)
- Set correct namespace in model factories when using the
app:name
command (#20766) ⚠️ Switched the-f
shortcut from--force
to--factory
onmake:model
command (#20800)
Assets
- Added frontend preset commands (463b769, too many follow-up commits)
Authentication
⚠️ Support default user providers and pass user provider toRequestGuard
(#18856)- Made the user provider parameter on
RequestGuard
optional (d7f0b26) - Use
setRememberToken()
inResetsPasswords
(#19189) - Added a
PasswordReset
event (#19188) ⚠️ Support multiword models inauthorizeResource()
(#19821)- Added support for no user provider in
CreatesUserProviders
(4feb847)
Authorization
- Support multiple values in
Gate::has()
(#18758) ⚠️ Prevent policies from being too greedy (#19120)⚠️ Addedabilities()
method toGate
contract (#19173)⚠️ Implementiterable
onGate::check()
andGate::any()
(#20084)
Blade Templates
- Added
Blade::if()
method (71dfe0f, 2905364, #20025) - Added
@switch
,@case
,@break
and@default
directives (#19758) ⚠️ Prevent Blade from parsing PHP code inside@php
blocks (#20065)
Broadcasting
⚠️ UseAccessDeniedHttpException
instead ifHttpException
(#19611)⚠️ Upgraded to Pusher SDK v3 (#20016)
Cache
⚠️ PSR-16 compliance (#20194)- Don't encrypt database cache values (f0c72ec)
- Added support cache locks (4e6b2e4, 045e6f2, #19669)
- Accept
DatetimeInterface
andDateInterval
in cache repository (#20034) - Added
getStore()
method to cacheRepository
interface (#20338) ⚠️ MadeRateLimiter
less aggressive (#20759)
Collections
- Support multiple values in
Collection::has()
(#18758) - Added
Collection::mapInto()
method (2642ac7) - Added
Collection::dd()
method (f5fafad) - Added
Collection::dump()
method (#19755) - Added
wrap()
andunwrap()
methods (#20055, #20068) - Added keys to
partition()
,eachSpread()
andmapSpread
callback (#20783, #20723)
Configuration
- Added
Config::getMany()
method (#19770)
Controllers
Database
⚠️ AddeddropAllTables()
to schema builder (#18484, d910bc8, #19644, #19645, #20239, #20536)- Added precision to
dateTime
andtimestamp
column types (#18847, f85f6db, #18962, #20464) - Pass page number to
chunk()
callback (#19316) - Improve memory usage in
chunk()
andchunkById()
(#19345, #19369, #19368) - Fixed
compileColumnListing()
when using PostgreSQL with multiple schemas (#19553) - Allow the seeder to call multiple commands at once (#19912)
- Added pgpool message to
DetectsLostConnections
(#20418) - Prevent race conditions on replicated databases (#20445, 0ec1522, 3824a36)
⚠️ Support sticky database connections (#20746)
Eloquent ORM
- Added API resources (#20710, too many follow-up commits)
⚠️ Indicate soft deleted models as existing (#17613)⚠️ Added$localKey
parameter toHasRelationships::belongsToMany()
andBelongsToMany
(#17903, 7c7c3bc)⚠️ Added$parentKey
parameter tobelongsToMany()
,BelongsToMany
andMorphToMany
(#17915, #18380)⚠️ Renamed$parent
property to$pivotParent
inPivot
class (#17933, #18150)⚠️ Don't add_count
suffix to column name when usingwithCount()
with an alias (#17871)⚠️ Renamed$events
to$dispatchesEvents
(#17961, b6472bf, 3dbe12f)⚠️ Only return query builder when the result is null forcallScope()
(#18845)- Allow setting a factory's attribute to a factory instance (#18879)
- Support
null
comparison inModel::is()
(#18511) - Added
getDirty()
checks for date and castable attributes (#18400, e180e20) - Show method name in invalid relationship
LogicException
(#18749) - Add support for additional values in
firstOrCreate()
andfirstOrNew()
(#18878) - Added a second local key to
HasManyThrough
(#19114) - Respect casts declaration on custom pivot models (#19335)
- Support creating relations without attributes (#19506)
- Added
Model::only()
method (#19459) ⚠️ Support model serialization on non default connection (#19521, dd45f70)⚠️ Support updating nullable dates (#19672)⚠️ Make pivot model instantiable (#20179)- Simplified
BelongsToMany::allRelatedIds()
logic (#20189) - Added
Relation::get()
method (#20052) - Added
hasChanges()
,wasChanged()
,getChanges()
andsyncChanges()
(#20129, #20130) - Better exception message when calling non existing methods on models (#20196, 91c1f03)
- Added support for connections on model factories (#20191)
- Check for real primary key in
Pivot
methods (8d82618) - Default
$attributes
onBelongsToMany::create()
to empty array (973bff4) - Add ability to set a custom pivot accessor (#20411)
⚠️ CallsetConnection()
inModel::save()
(#20466)⚠️ Touch parent timestamp only if the model is dirty (#20489)- Added
Model::loadMissing()
method (#20630, 4166c12) - Added
Model::whereKeyNot()
method (#20817)
Encryption
- Use
openssl_cipher_iv_length()
inEncrypter
(#18684) - Added
Encrypter::generateKey()
method (6623996) - Use
json_last_error()
inEncrypter
(#20099)
Errors & Logging
- Added default 404, 419 and 500 error pages (#18483, 4d8c2c1)
⚠️ Always show custom 500 error page for all exception types when not in debug mode (#18481, 3cb7b0f)⚠️ Show 419 error page onTokenMismatchException
(#18728)- Support
render()
method on exceptions (ed51160, c8a9413) - Support
report()
method on exceptions (e77f6f7) ⚠️ Send exceptions as JSON in debug mode if the request wants JSON (5225389, #18732, 4fe6091, 9ab58fd, #19333)⚠️ Moved exceptions from$dontReport
into$internalDontReport
(841b36c)- Added
Handler::context()
method, that by default adds some default context to logs (23b7d6b) ⚠️ Don't set formatter onErrorLogHandler
(a044f17)- Use whoops for errors (b697272, f6b67d4, #19471, #20412)
- Changed how exceptions are logged (#19698, f1971c2)
⚠️ ReturnHttpException
with code413
fromPostTooLargeException
(#19773)- Support custom logger channel names (#20133)
⚠️ Unify exception formatting (#20173, #20067, #20167, too many follow-up commits, sorry)- Added default
Handler::unauthenticated()
method (11b0de0)
Events
⚠️ Removed calling queue method on handlers (0360cb1, ec96979, d9be4bf)- Allow faking only specific events (#19429)
- Support self-registering event listeners (#19917, 4d557c5, #19962, 5ed4f50)
- Added ability to determine if queued handler should be pushed to queue (#19957, efe616c)
Filesystem
⚠️ MadeStorage::files()
work likeStorage::allFiles()
(#18874, 7073457)⚠️ Fixed compatibility betweenFilesystemAdapter
and theFilesystem
interface (#19389)
Helpers
- Added
report()
helper (2b67619) - Added
throw_if()
andthrow_unless()
helpers (18bb4df, #19166, #19255) - Added
dispatch_now()
helper (#18668, 61f2e7b) - Added
$language
parameter tostr_slug()
helper (#19011) - Added
str_before()
helper (#19940, #20049) - Added
now()
andtoday()
helpers (3c888b6, #20716) - Added
blank()
,filled()
,optional()
andtransform()
helpers (06de9b2, 31308e3) - Handle lower case words better in as
Str::snake()
(#18764) - Removed usages of the
with()
helper (#17888) - Support multiple patterns in
Str::is()
(#20108) - Speed up
Arr::get()
calls without dot notations (#20139) - Use
report()
helper inmix()
(#20603, bf0cb82)
Localization
⚠️ MovedLoaderInterface
to contracts (#20460)⚠️ Support loading JSON translation for packages (#20599, 573f85c)- Support language specific characters in
Str
(#18974, #19694)
- Allow mailables to be rendered directly to views (d9a6dfa)
- Allow for per-mailable theme configuration (b2c35ca)
⚠️ Removed$data
and$callback
parameters fromMailer
andMailQueue
⚠️ MadeMarkdown
a dependency ofMailChannel
(#19349)⚠️ Upgraded to SwiftMailer 6 (#19356)⚠️ Addedto()
andbcc()
toMailer
contract (#19955)
Notifications
- Added methods for Slack's
thumb_url
andunfurl_*
options (#19150, #19200) - Support sending notifications via
AnonymousNotifiable
(#19998, ba82579) - Accept other types on
SlackAttachment::timestamp()
(#20671)
Queues
- Added support for chainable jobs (81bcb03, too many follow-up commits, sorry)
⚠️ Removed redundant$queue
parameter fromQueue::createPayload()
(#17948)- Made all
getQueue()
methodspublic
(#18501) - Pass connection and queue to
Looping
event (#19081) ⚠️ Clone Job specific properties (#19123)⚠️ Declare missing abstractJob::getRawBody()
method (#19677)⚠️ Fail (or optionally silently delete) job when model is missing during deserialization (44b1f85, bceded6)- Added
CallQueuedListener::__clone()
method (#20022) - Accept
DatetimeInterface
andDateInterval
in queue (#20102, 92e2aff) ⚠️ Usedispatch()
instead offire()
(#20446)- Removed
reserved_at
index from jobs table stub (#20702) - Support job expiration (#20776, 1592b9b)
Redis
⚠️ Several improvements onPhpRedisConnection
(#20269, #20316)⚠️ RemovedPhpRedisConnection::proxyToEval()
method (#17360)- Added Redis limiters (#20597, ceb260e, #20761, aba76bf, 3684f0c, #20772)
Requests
⚠️ MadeRequest::has()
work likeCollection::has()
(#18715)- Added
Request::filled()
(#18715) ⚠️ MadeRequest::only()
work likeCollection::only()
(#18695)- Aliased
Request::exists()
toRequest::has()
(183bf16) - Allow passing keys to
Request::all()
to behave like oldRequest::only()
(#18754) ⚠️ RemovedRequest::intersect()
(#18695)- Return request data from
ValidatesRequests
calls (#19033) - Added a
validate()
macro ontoRequest
(#19063) - Added
FormRequest::validated()
method (#19112) ⚠️ Maderequest()
helper andRequest::__get()
consistent (a6ff272)- Made
Request::routeIs()
work likeRequest()::fullUrlIs()
(#19267, bfc5321, #19334) - Added
Request::hasAny()
method (#19367) ⚠️ Throw validation exception fromValidatesRequests
without formatting response (#19929, 6d33675, ec88362, c264807)- Added
Request::post()
method (#20238) - Added
Request::keys()
method (#20611)
Routing
- Support fluent resource options (#18767, bb02fb2)
- Support multiple values in
Router::has()
(#18758) ⚠️ Bind empty optional route parameter tonull
instead of empty model instance (#17521)- Accept patterns on
Route::named()
,Router::is()
andRouter::currentRouteNamed()
(#19267, bfc5321) - Added
domain()
setter/getter toRoute
(#19245, bba04a1) - Added
Route::redirect()
method (#19794) - Added
Route::view()
method (#19835) ⚠️ ImprovedThrottleRequests
middleware (#19807, #19860)⚠️ Return proper 304 responses (#19867)- Return the resource from
Router::apiResource()
(#20029) ⚠️ Moved route model binding resolution logic to model (#20521, 370e626, #20542, #20618, d911fa8)- Accept string on
parameters()
andnames()
methods (#20531, #20529) - Handle
HEAD
requests inRouter::view()
(#20672) - Added
ThrottleRequestsWithRedis
middleware (#20761, 0a10f9a)
Responses
⚠️ EnsureArrayable
andJsonable
return aJsonResponse
(#17875)⚠️ EnsureArrayable
objects are also morphed byResponse
(#17868)- Added
SameSite
support toCookieJar
(#18040, #18059, e69d722) - Accept
HeaderBag
inResponseTrait::withHeaders()
(#18161) ⚠️ Reset response content-type inResponse::setContent()
(#18314, #20313)⚠️ Always retrieve the real original content (#20002)
Service Container
⚠️ RefactoredContainer
(#19201)⚠️ Made container PSR-11 compliant (#19822, a6068b0, 66325c2)- Return the bound instance from
Container::instance()
(#19442) ⚠️ Use instance instead of deferred service provider (#20714)
Session
⚠️ Default value totrue
inStore::flash()
(#18136)⚠️ Store the user password hash when logging in (#19843)⚠️ ThrowUnauthorizedHttpException
fromfailedBasicResponse
(#20673)
Support
- Autoload package providers (#19420, a5a0f3e, 2954091, #19455, #19561, #19646)
- Added support for
Responsable
objects (c0c89fd, 1229b7f, #19614, ef0e37d) - Made
Carbon
macroable and serializeable (#19771, #20568, 6a18209) - Support registering macros using classes (#19782, 353adbd)
⚠️ MovedInteractsWithTime
toIlluminate\Support
(#20119, #20206)- Support callable/invokable objects in
Pipeline
(#18264) ⚠️ Prevent access to protected properties using array access onModel
andFluent
(#18403)⚠️ ExtendMessageBag
interface fromArrayable
and addgetMessages()
method (#19768, #20334)- Handle
Arrayable
items inMessageBag
(6f1f4d8) - Added
isNotEmpty()
method to message bags and paginators (#19944) - Return the collection iterator from
AbstractPaginator::getIterator()
(#20098) ⚠️ Fixed minimum value of paginatorlast_page
field (#20335)
Task Scheduling
- Fire before callbacks on closure-based scheduling events (#18861)
- Run after-callbacks even if a callback event failed (#19573)
⚠️ Fixed bug inquarterly()
method (#19600)⚠️ Support passing boolean intowhen()
andskip()
(1d1a96e)
Testing
⚠️ Switched to PHPUnit 6 (#17755, #17864)⚠️ Renamed authentication assertion methods (#17924, 494a177)⚠️ Unify database testing traits intoRefreshDatabase
trait (79c6f67, 0322e32, #20308)⚠️ Changed Blade tests namespace toIlluminate\Tests\View\Blade
(#19675)- Added integration tests for the framework itself (182027d, #18438, #18780, #19001, #20073)
- Allow disabling of specific middleware (#18673)
- Added
withoutExceptionHandling()
method (a171f44) - Support inline eloquent factory states (#19060)
- Allow
assertSessionHasErrors()
to look into different error bags (#19172, 4287ebc) - Ensure Redis is available in cache lock tests (#19791)
- Skip tests if Memcached is not found (#20018)
⚠️ ClearCarbon
mock during tear down (#19934)- Added debug info to
NotFoundHttpException
inInteractsWithExceptionHandling
(#20000) - Added
MailFake::assertSentTimes()
,QueueFake::assertPushedTimes()
andBusFake::assertDispatchedTimes()
methods (#20485, e657f6e) - Added queue assertions to
MailFake
(#20454, #20701) - Added
assertNothingSent()
andassertSentTimes()
methods toNotificationFake
(#20651) - Added Mockery expectations to the assertion count (#20606)
- Fake the default storage disk by default (#20625)
- Support sending default headers with requests (#20590, c32418e)
- Support disabling of exception handling for specified exceptions (#20729, 2db9716)
Validation
- Added support for custom validation rule objects (#19155, 2aa5ea8)
- Validate against
DateTimeInterface
instead ofDateTime
(#20110) ⚠️ Made several method inValidatesAttributes
public (#20200)⚠️ Addederrors()
method toValidator
interface (#20337)- Extend
Exists
andUnique
rule fromDatabaseRule
class (#20563) - Added
whereIn()
andwhereNotIn()
constraints toDatabaseRule
(#20691, #20739, 52d28e3) - Added
date_equals
rule (#20646)