Release Notes for 5.4.x
v5.4.36 (2017-08-30)
Added
- Added MP3 to
Testing/MimeType::$mimes(#20745)
Changed
- Mailables that defined a
$delayproperty will honor it (#20717)
Fixed
- Fixed route URLs building from artisan commands (#20788)
v5.4.35 (2017-08-24)
Fixed
- Fixed breaking change in
FactoryBuilder(#20727)
v5.4.34 (2017-08-23)
Added
- Added
Str::start()andstr_start()helper (#20569) - Added
orDoesntHave()andorWhereDoesntHave()toQueriesRelationships(#20685) - Added support for callables in model factory attributes (#20692)
Changed
Fixed
- Fixed duplicate user model import in
make:policy(#20645, 48f5f23) - Fixed PHP 7.2 incompatibility in
Builder::mergeWheres()(#20635) - Fixed issue in
RateLimiter(#20684) - Fixed success message after password reset (#20707)
- Fail job only if it didn't fail already (#20654)
v5.4.33 (2017-08-14)
Added
Changed
- Moved
tap()method fromBuildertoBuildsQueries(#20384) - Made Blade
oroperator case-insensitive (#20425) - Support
$amount = 0inArr::random()(#20439) - Reverted
doctrine/inflectorversion change made in v5.4.31 (#20227)
Fixed
- Fixed bug when using empty values in
SQLiteGrammar::compileInsert()(#20424) - Fixed
$booleanparameter being ignored inBuilder::addArrayOfWheres()(#20553) - Fixed
JoinClause::whereIn()when using a subquery (#20453) - Reset day parameter when using
Y-mwithdate_formatrule (#20566)
v5.4.32 (2017-08-03)
Added
- Added
FilesystemAdapter::path()method (#20395)
Changed
- Allow
Collection::random()to return0items (#20396, #20402) - Accept options on
FilesystemAdapter::temporaryUrl()(#20394) - Sync
withoutOverlappingmethod onEventandCallbackEvent(#20389) - Prevent PHP file uploads by default unless explicitly allowed (#20392, #20400)
- Allow other filesystem adapter to implement
temporaryUrl()(#20398)
Fixed
- Reverted breaking change on
BelongsToMany::create()(#20407)
v5.4.31 (2017-08-02)
Added
- Added
Blueprint::unsignedDecimal()method (#20243, 3b4483d, 06dcaaa) - Added
Relation::getMorphedModel()method (#20244) - Added
Model::isNot()method (#20354) - Added
FilesystemAdapter::temporaryUrl()method (#20375, 09cfd7f) - Added
Request::userAgent()method (#20367)
Changed
- Renamed
MakeAuthCommandtoAuthMakeCommand(#20216) - Don't use
asset()helper insidemix()(#20197) - Removed
arraytype-hint inBuilder::orWhereRaw()signature (#20234) - Added empty array default to
$attributesonBelongsToMany::create()(#20321) - Prepare for PHP 7.2 (#20258, #20330, #20336, #20378)
- Use
unsignedTinyInteger()injobs.stub(#20382)
Fixed
- Make sure
Model::getDates()returns unique columns (#20193) - Fixed pulled
doctrine/inflectorversion (#20227) - Fixed issue with
chunkById()whenorderByRaw()is used (#20236) - Terminate user defined database connections after rollback during testing (#20340)
v5.4.30 (2017-07-19)
Fixed
- Handle a non-existing key in
ArrayStore(#20156) - Fixed bug
@guestand@authdirectives (#20166, b164e45)
v5.4.29 (2017-07-19)
Added
- Added
ManagesFrequencies::twiceMonthly()method (#19874) - Added
RouteCollection::getRoutesByName()method (#19901) - Added
$expiresAtparameter toCallbackEvent::withoutOverlapping()(#19861) - Support keeping old files when testing uploads (#19859)
- Added
--forceoption tomake:mail,make:modelandmake:notification(#19932) - Added support for PostgreSQL deletes with
USESclauses (#20062, f94fc02) - Added support for CC and BBC on mail notifications (#20093)
- Added Blade
@authand@guestdirective (#20087, #20114) - Added option to configure MARS on SqlServer connections (#20113, c2c917c)
Changed
- Support object items in
Arr::pluck()(#19838, #19845) MessageBaginterface now extendsArrayable(#19849)- Made
Blueprintmacroable (#19862) - Improved performance for
Arr::crossJoin()(#19864) - Use the correct
Usermodel namespace for new policies (#19965, a7094c2) - Consider scheduled event timezone in
inTimeInterval()(#19959) - Render exception if handler can't report it (#19977)
- Made
MakesHttpRequests::withServerVariables()public (#20086) - Invalidate session instead of regenerating it when logging out (#20107)
- Improved
InvalidPayloadExceptionerror message (#20143)
Fixed
- Don't re-escape a
Viewinstance passed as the default value to@yieldor@sectiondirectives (#19884) - Make sure migration file is loaded before trying to rollback (#19922)
- Fixed caching issue in
mix()(#19968) - Signal alarm after timeout passes (#19978)
v5.4.28 (2017-06-30)
Added
- Added
avg()andaverage()as higher order proxies (#19628) - Added
fresh()method to Eloquent collection (#19616, #19671) - Added ability to remove a global scope with another global scope (#19657)
- Added
Collection::intersectKey()method (#19683) - Support setting queue name via
broadcastQueue()method (#19703, #19708) - Support default return on
BelongsTorelations (#19733, #19788, 1137d86, ed0182b) - Added
unless()method to query builder and collection (#19738, #19740) - Added
array_random()helper (#19741, #19818, #19826) - Support multiple manifest files on
mix()(#19764)
Changed
- Escape default value passed to
@yielddirective (#19643) - Support passing multiple fields to
differentvalidation rule (#19637) - Only dispatch the
MessageSentevent if mails should be sent (#19690) - Removed duplicate
/frompublic_path()(#19731) - Made
ThrottlesLoginsmore customizable (#19787) - Support PostgreSQL insert statements with
DEFAULT VALUES(#19804)
Fixed
- Fixed
BelongsTobug with incrementing keys (#19631) - Fixed PDO return value bug in
unprepared()(#19667) - Don't use
event()helper inHttp\Kernel(#19688) - Detect lock wait timeout as deadlock (#19749)
- Improved escaping special characters in MySQL comments (#19798)
- Fixed passing email as string to
Event::emailOutputTo()(#19802) - Fixed
withoutOverlapping()not creating mutex (#19834)
Removed
- Removed
roleattribute from forms in stubs (#19792)
v5.4.27 (2017-06-15)
Added
- Added
Collection::diffAssoc()method (#19604)
Changed
- Updated PHPUnit whitelist (#19609)
Fixed
- Update timestamps on soft delete only when they are used (#19627)
v5.4.26 (2017-06-13)
Added
- Added
Event::nextRunDate()method (#19537, 09dd336) - Added null safe operator
<=>to query builder operators list (#19539) - Added
Macroabletrait toRequestGuard(#19569)
Changed
- Touch
updated_attimestamp when soft deleting (#19538) - Accept argument list in
Rule::in()andRule::notIn()(#19555) - Support checking for strings job names using
QueueFake(#19575) - Improved image ratio validation precision (#19542)
Fixed
- Resume scheduled task if an error occurs (#19419)
- Decode HTML entities in plain text emails (#19518)
- Added missing locales to
MessageSelector::getPluralIndex()(#19562) - Use strict check when object is passed to
Collection::contains()(#19568) - Fixed jobs with a timeout of
0(#19586) - Never pass
ThrowabletostopWorkerIfLostConnection()(#19591)
v5.4.25 (2017-06-07)
Added
- Added
Macroabletrait toFactoryBuilder(#19425) - Allow a plain text alternative view when using markdown within Mailables (#19436, ad2eaf7)
- Added nested transactions support for SqlServer (#19439)
Changed
- Moved
env()helper to Support component (#19409) - Prevent
BadMethodCallExceptioninRedirectResponse::withErrors()(#19426) - Suppress error if calling
Str::replaceFirst()with an empty search (#19427) - Removed the
callabletype hint forarray_sort()(#19483) - Return the used traits from
TestCase::setUpTraits()(#19486)
Fixed
- Fixes and optimizations for
Str::after()(#19428) - Fixed queue size when using Beanstalkd driver (#19465)
- Check if a mutex can be created before running the callback task in
CallbackEvent::run()(#19466) - Flip expected and actual value on
TestResponse::assertCookie()(#19495) - Fixed undefined variable error in
Mailableclass (#19504) - Prevent error notice when
database.collationis not set (#19507)
v5.4.24 (2017-05-30)
Added
- Support magic controller methods (#19168)
- Added
Gateresources (#19124) - Added
Request::routeIs()method (#19202, 26681eb) - Route
Route::isName()shorthand method (#19227) - Added support for custom columns in
softDeletes()method (#19203) - Added
ManagesLayouts::getSection()method (#19213) - Added
Model::refresh()shorthand (#19174) - Added
Container::forgetExtenders()method (#19269, 7c17bf5) - Added
Filesystem::hash()method (#19256) - Added
TestResponse::assertViewIs()method (#19291) - Added
pathtoPaginator(#19314) - Added
Collection::concat()method (#19318, 0f5337f) - Added
make()method toHasOneOrManyandMorphOneOrManyrelations (#19307) - Added
str_after()helper function (#19357) - Added
Router::apiResource()method (#19347)
Changed
- Move
$sizeRulesand$numericRulesproperties fromFormatsMessagestoValidator(dc7e7cb) - Allows calls to
Collection::times()without the$callbackparameter (#19278) - Don't ignore jobs with a timeout of
0(#19266) - Resolve database paginators from the container (#19328)
- Added
newstoPluralizer::$uncountable()(#19353) - Switched to using
app()->getLocale()inapp.stub(#19405)
Fixed
- Fixed
Container::makeWith()not using parameters when resolving interfaces (#19178) - Stop validating Memcached connection (#19192)
- Fixed the position of
bound()inContainer::instance()(#19207) - Prevent applying global scopes on the factory while setting the connection (#19258)
- Fixed database connection issue in queue worker (#19263)
- Don't use HTML comments in notification email template (#19289)
- Fire rebinding callback when using
bind()method to bind abstract (#19288) - Return
0fromcallScope()if$query->wheresisnull(#19381)
v5.4.23 (2017-05-11)
Added
- Added
Gate::abilities()accessor (#19143, e9e34b5) - Added ability to eager load counts via
$withCountproperty (#19154)
Fixed
- Fixed inversion of expected and actual on assertHeader (#19110)
- Fixed filesystem bug in
Filesystem::files()method on Windows (#19157) - Fixed bug in
Container::build()(#19161, bf669e1)
Removed
- Removed
window.Laravelobject (#19135)
v5.4.22 (2017-05-08)
Added
- Support dynamic number of keys in
MessageBag::hasAny()(#19002) - Added
Seeder::callSilent()method (#19007) - Add
make()method to Eloquent query builder (#19015) - Support
Arrayableon Eloquent'sfind()method (#19019) - Added
SendsPasswordResetEmails::validateEmail()method (#19042) - Allow factory attributes to be factory instances themselves (#19055)
- Implemented
until()method onEventFake(#19062) - Added
$encodingparameter toStr::length()(#19047, #19079)
Changed
- Throw exception when invalid first argument is passed to
cache()helper (d9459b2) - Use
getAuthIdentifierName()inAuthenticatable::getAuthIdentifier()(#19038) - Clone queries without order by for aggregates (#19064)
- Force host on password reset notification (cef1055)
Fixed
- Set data key when testing file uploads in nested array (#18954)
- Fixed a bug related to sub select queries and extra select statements (#19013)
- Resolve aliases from container when using parameters (#19071)
- Stop worker if database disconnect occurred (#19080, 583b1b8)
- Fixed internal call to
assertJson()inassertJsonStructure()(#19090)
v5.4.21 (2017-04-28)
Added
Fixed
- Reverted queue prefix option #18860 (#18987)
- Return
nullif key is not found fromRedisStore:many()(#18984)
v5.4.20 (2017-04-27)
Added
- Added higher order tap (3abc4fb)
- Added
Collection::mapToGroups()(#18949) - Added
FactoryBuilder::lazy()method (#18823) - Support Redis Sentinel configuration (#18850)
- Added
queue.prefixoption (#18860, 8510bf9) - Allow
getDisplayableAttribute()to be used in custom replacers (#18895) - Added
resourceMethodsWithoutModels()method toAuthorizesRequests(#18916, #18964) - Added name to
homeroute (#18942)
Changed
- Return
PendingDispatchforKernel::queue()(51647eb) - Made
RedisManager::resolve()public (#18830, eb9b99d) - Changed email body color to match wrapper color (#18824)
- Break and hyphenate long words in emails (#18827)
- Force database migration to use the write PDO (#18898)
- Support
JSON_PARTIAL_OUTPUT_ON_ERRORonJsonResponse(#18917, db5f011)
Fixed
- Set connection on model factory (#18846, 95a0663)
- Fixed route parameter binding for routes with leading slashes (#18855)
- Don't call
cleanParameterBag()twice during JSON request (#18840) - Prevent exception in
getActualClassNameForMorph()when morph map isnull(#18921) - Use protocol-relative URL in
mix()helper (#18943) - Cast
$viaChannelsto array (#18960)
v5.4.19 (2017-04-16)
Added
- Added ability to send
link_namesparameter in Slack notification (#18765) - Added
Mailable::hasFrom()method (#18790)
Changed
- Made
Mailermacroable (#18763) - Made
SessionGuardmacroable (#18796) - Improved queue worker output (#18773)
- Added
newModelInstance()method to Eloquent Builder (#18775) - Use assertions instead of exceptions in
MocksApplicationServices(#18774)
Fixed
v5.4.18 (2017-04-10)
Added
- Added
assertSuccessful()andassertRedirect()toTestResponse(#18629) - Added
assertSeeText()andassertDontSeeText()toTestResponse(#18690) - Added
assertJsonMissing()toTestResponse(#18721, 786b782) - Added support for attaching an image to Slack attachments
$attachment->image($url)(#18664) - Added
Validator::extendDependent()to allow adding custom rules that depend on other fields (#18654) - Added support for
--parentoption onmake:controller(#18606) - Added
MessageSentevent toMailer(#18744, 6c5f3a4)
Changed
- Don't trim leading slashes on local filesystem base URLs (acd66fe)
- Accept variable on
@empty()directive (#18738) - Added
stringvalidation rules toAuthenticatesUsers(#18746)
Fixed
- Fixed an issue with
Collection::groupBy()when the provided value is a boolean (#18674) - Bring back an old behaviour in resolving controller method dependencies (#18646)
- Fixed job release when exception occurs (#18737)
- Fixed eloquent
increment()anddecrement()update attributes (#18739, 1728a88)
v5.4.17 (2017-04-03)
Added
- Added
getManager()andsetManager()to queue worker (#18452) - Added support for Pheanstalk's
$timeoutand$persistentoptions (#18448) - Added
Collection::times()method (#18457) - Added PostgreSQL's
REALdata type (#18513) - Added
flatMapto collection higher order proxies (#18529) - Support multiple
--pathparameters withmigrate:reset(#18540) - Store SparkPost
Transmission-IDin the header after sending message (#18594)
Changed
- Check for
Htmlableinstead ofHtmlStringinMailer::renderView()(#18459, da7b006) - Added mutex for schedule events (#18295, ae2eb1f)
- Don't use helper functions in service providers (#18506, #18521)
- Change
user_idto unsigned integer in database session stub (#18557) - Improved performance of
UrlGenerator::isValidUrl()(#18566)
Fixed
- Handle missing or malformed
config/app.phpfile (#18466, 92931cf) - Only call
upanddownon migration if the method exists (d27d94e) - Fixed overwriting of routes with identical path and method (#18475, 5aee967)
- Fixing model/route binding with identical name (#18476)
- Allow
rollbackMigrations()path to be with string (#18535) - Use
getStatusCode()inTestResponse::assertRedirect()(#18559) - Case
parseIds()to array inInteractsWithPivotTable::sync()(#18547) - Preserve route parameter names (#18604)
v5.4.16 (2017-03-21)
Added
- Added PHPDBG detection to
runningInConsole()(#18198) - Added
Arr:wrap()method (#18216) - Allow scheduling of queued jobs (#18235, 7bb67e2)
- Allow skipping mail sending if a listener to
MessageSendingreturnsfalse(#18245) - Added
BcryptHasher::cost()method (#18266) - Added
Command::alert()method (#18272) - Added
tap()method to query builder (#18284) - Added
orderByDesc()methods to query builder (#18292) - Added
Container::makeWith()method (#18271, #18320) - Added
InteractsWithDatabase::assertSoftDeleted()(#18328, 2d4e1f0, f89f917) - Added ability to set queue parameters inside queued listeners (#18375, cf461e2)
- Added
Model::setKeyType()(#18354) - Output migration name before starting a migration or rollback (#18379, e47e8b1)
- Added
pipeline(),transaction(), andexecuteRaw()toPhpRedisConnection(#18421) - Added
@isset()directive (#18425) - Added
tinyIncrements()database schema method (#18424)
Changed
- Throw exception when
bootstrap/cachedirectory is not writable (#18188, b4f0005) - Use
resource_path()helper inMakeAuthCommand(#18215) - Added
file_exists()check toEvent::emailOutput()(c8eafa8) - Allow wildcards in MIME type validations (#18243)
- Only push existing jobs back into the queue using
queue:retry(#18279, e874a56) - Support file uploads in nested array (#18276)
- Don't use
config()helper in Mail component (#18290) - Return the insert ID from
DatabaseJob::release()(#18288, #18291) - Changed
idin failed jobs migration stub tobigIncrements()(#18300) - Prevent
make:authfrom overwriting existing views (#18319, bef8f35) - Ensure Mailable view data is not overridden by order of operations (#18322)
- Use
getAuthIdentifier()method in broadcasters (#18351) - Use atomic cache operation when checking for event overlaps (8ebb5b8)
- Return pretty JSON response from
HasInDatabase::failureDescription()(#18377) - Allow Validator extension to use array-style callable (#18399)
- Pass the condition value to query builder's
when()method (#18419) - Don't require returning the query from
when()method (#18422)
Fixed
- Fixed an issue with slots when passed content equals
null(#18246) - Do require
ClosureinorWhereHas()(#18277) - Let PHP parse
@includeWhendirective (#18285) - Only include
.phpfiles when loading database factories (#18336) - Fixed PHP 5.6 issue in
FileFactory::generateImage()(#18345) - Allow
ImplicitRouteBindingto match camelcase method parameter names (#18307, 4ae31a1) - Fixing weird behaviour of
Connection::getConfig()whennullwas passed (#18356) - Attempt to solve an issue with using
required_*rules while theConvertEmptyStringToNullmiddleware is applied (#18376) - Fixed faking of model events (d6cb75c)
- Prevent model event result from firing observable events (#18401, 0607db0)
- Fix issue in
authorizeResource()with compound names (#18435)
v5.4.15 (2017-03-02)
Added
Changed
- Made queue worker properties
$shouldQuitand$pausedpublic (e40c0e7)
Fixed
- Proxy
isset()checks onTestResponse(#18182)
v5.4.14 (2017-03-01)
Added
- Added
Str::kebab()andkebab_case()helper (#18084) - Added
Route::getActionMethod()(#18105) - Support granular
$triesand$timeoutonMailable(#18103) - Added context to the
assertJson()response (#18166, da2c892) - Add
whereNotIn()andwhereNotInStrict()toCollection(#18157)
Changed
- Create
TestResponseusing composition instead of inheritance (#18089) - Changed visibility of
Pivot::$parentfromprotectedtopublic(#18096) - Catch Sqlite3 deadlocks in
DetectsDeadlocks(#18107) - Use
fromRawAttributes()when inModel::newPivot()(#18127, 063e5ae) - Use default connection in
DatabaseManager::purge()when no connection name is provided (#18128) - Convert rule objects only once to string (#18141)
- Respect
ShouldQueuecontract inMailer::send()(#18144, 717f1f6, #18160)
Fixed
- Don't use
value()helper inBoundMethodclass (#18075) - Don't require manifest file when running
npm run hot(#18088) - Fixed injection placement of dependencies for routing method parameters (#17973)
- Return
falsefromModel::fireModelEvent()if custom model event returnsfalse(c5a6290) - Fixed
firstOrFail()on relation setting the wrong model onModelNotFoundException(#18138) - Fixed
RateLimitersetting initial attempts count to2(#18139) - Fixed compiled
DELETEquery when usingJOINwith aliases (#18156, e09b9eb) - Fixed validating
presentin combination withnullable(#18173)
v5.4.13 (2017-02-22)
Added
- Add
$defaultparameter toCollection::when()method (#17941) - Support
--resourceargument onmake:modelcommand (#17955) - Added
replaceDimensions()for validator messages (#17946, b219058) - Allow Slack notifications to use image urls (#18011)
- Added
@includeWhen($condition, $view, $data)directive (#18047)
Changed
- Prevent Blade from compiling statements inside comments (#17952)
- Don't flash empty array to session, if
withInput()is given empty array (#17979) - Use the pagination translation strings in paginator templates (#18009)
- Use
getAuthPassword()method inAuthenticateSessionmiddleware (#17965) - Return
nullfromGate::getPolicyFor()if given class is not a string (#17972) - Add missing methods to the
Jobinterface (#18034) - Improved PostgreSQL table existence check (#18041)
- Allow
getActualClassNameForMorph()used bymorphInstanceTo()to be overridden (#18058)
Fixed
- Fixed
@langdirective when used with JSON file (#17919, 2bd35c1) - Improved image
dimensionsvalidation rule (#17943, #17944, #17963, #17980) - Fixed
$willBeAvailableAthaving the wrong time if using$retryAfterinMaintenanceModeException(#17991) - Trim spaces while collecting section name (#18012)
- Fixed implementation of
SqsQueue::size()(#18037) - Fixed bug in
PasswordBroker::deleteToken()(#18045) - Fixed route parameters binding (#17973)
v5.4.12 (2017-02-15)
Added
- Allow configuration of Faker locale through
app.faker_localeconfig (#17895) - Added
when()method toCollectionclass (#17917) - Check for files in
request()helper (e08714d, 18d1648) - Added
TestResponse::assertSessionHasErrors()method (dbaf3b1)
Changed
- Prevent duplication of embedded files in
Mail\Message(#17877) - Only unserialize data if needed in
CallQueuedListener(964fb7f) - Made a couple of properties public (614b94a)
- Handle
Modelinstances inAuthorizemiddleware (#17898) - Use
asset()helper inapp.stub(#17896) - Test PhpRedis connection if extension is loaded (#17882, #17910)
- Use
Carbon::setTestNow()in all tests (#17937)
Fixed
- Make sub select union queries work with SQLite (#17890)
- Fix
zRangeByScore()options syntax for PhpRedis (#17912)
v5.4.11 (2017-02-10)
Added
- Support
EncryptandTrustServerCertificateoptions on SqlServer connections (#17841) - Support custom pivot models in
MorphToMany::newPivot()(#17862) - Support
Arrayableobjects in Eloquent'swhereKey()method (#17812)
Changed
- Use
app.localelang attribute inapp.stub(#17827) - Throw
JsonEncodingExceptionwhen JSON encoder fails to encode eloquent attribute (#17804, 11e89f3) - Ensure file
hashName()is unique (#17879, 830f194)
Fixed
- Added missing
Strclass import toTestResponse(#17835) - Fixed PhpRedis’
zadd()method signature (#17832)
v5.4.10 (2017-02-08)
Added
- Added Blade
@prependdirective (#17696) - Added
Collection::tap()method (#17756) - Allow multiple manifest files for
mix()helper (#17759) - Adding facility to
Log:useSyslog()(#17789) - Added macros to Eloquent builder (#17719)
- Added
TestResponse::assertJsonFragment()method (#17809)
Changed
- Use
route()helper instead ofurl()in authentication component (#17718) - Ensure that the
map()method exists before calling inRouteServiceProvider::loadRoutes()(#17784) - Clean up how events are dispatched (8c90e7f, c9e8854)
- Changed job
nametodisplayName(4e85a9a, d033626) - Made plain string job payloads more similar to object based payloads (bd49288)
- Bring back pluralization rules for translations (#17826)
Fixed
- Apply overrides in
factory()->raw()method (#17763)
v5.4.9 (2017-02-03)
Added
- Added
Macroabletrait toTestResponse(#17726) - Added container alias for the Redis connection instance (#17722)
- Added
raw()method toFactoryBuilder(#17734) - Added
json()as alias fordecodeResponseJsonmethod onTestResponse(#17735)
Changed
- Use
route()helper instead ofurl()in authentication component (#17718) - Added
Jedito uncountable list for pluralization (#17729) - Return relative URL from
mix()helper (#17727) - Sort foreign keys on eloquent relations (#17730)
- Properly set the JSON payload of
FormRequestsinstead of re-building it (#17760, 2d725c2) - Use
isset()instead ofarray_key_exists()inHasAttributes::getAttributeFromArray()(#17739)
Fixed
- Added missing
sleepoption toqueue:listen(59ef5bf) - Switched to strict comparison
TrimStringsmiddleware (#17741)
v5.4.8 (2017-02-01)
Added
- Added
TestResponse::assertJsonStructure()(#17700) - Added
Macroabletrait to EloquentRelationclass (#17707)
Changed
- Move
shouldKill()check fromdaemon()tostopIfNecessary()(8403b34) - Removed
isset()check fromvalidateSame()(#17708)
Fixed
- Added
forceoption toqueue:listensignature (#17716) - Fixed missing
returninHasManyThrough::find()andHasManyThrough::findMany()(#17717)
v5.4.7 (2017-01-31)
Added
- Added
Illuminate\Support\Facades\Schematonotifications.stub(#17664) - Added support for numeric arguments to
@breakand@continue(#17603)
Changed
- Use
usesTimestamps()in Eloquent traits (#17612) - Default to
nullif amount isn't set infactory()helper (#17614) - Normalize PhpRedis GET/MGET results (#17196)
- Changed visibility of
Validator::addRules()fromprotectedtopublic(#17654) - Gracefully handle
SIGTERMsignal in queue worker (b38ba01, 819888c) - Support inspecting multiple events of same type using
Eventfake (55be2ea) - Replaced hard-coded year in plain-text markdown emails (#17684)
- Made button component in plain-text markdown emails easier to read (#17683)
Fixed
- Set
Command::$nameinCommand::configureUsingFluentDefinition()(#17610) - Support post size
0(unlimited) inValidatePostSize(#17607) - Fixed method signature issues in
PhpRedisConnection(#17627) - Fixed
BelongsTonot accepting id of0in 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
forceandtriesoptions forqueue:listen(#17687) - Fixed how reservation works when queue is paused (9d348c5)
v5.4.6 (2017-01-27)
Added
- Generate non-existent models with
make:controller(#17587, 382b78c) - Added
TestResponse::dump()method (#17600)
Changed
- Switch to
ViewFactorycontract 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
- Fixed loading of
.env.testingwhen running PHPUnit (#17596)
v5.4.5 (2017-01-26)
Fixed
- Fixed database session data not persisting (#17584)
v5.4.4 (2017-01-26)
Added
- Add
hasMiddlewareGroup()andgetMiddlewareGroups()method toRouter(#17576)
Fixed
- Fixed
--databaseoption onmigratecommands (#17574) - Fixed
$sequencebeing always overwritten inPostgresGrammar::compileInsertGetId()(#17570)
Removed
- Removed various unused parameters from view compilers (#17554)
- Removed superfluous
ForceDeleteextension fromSoftDeletingScope(#17552)
v5.4.3 (2017-01-25)
Added
Changed
- Moved
$forElseCounterproperty fromBladeCompilertoCompilesLoops(#17538)
Fixed
- Fixed bug in
Router::pushMiddlewareToGroup()(1054fd2) - Fixed indentation in
Notifications/resources/views/email.blade.php(0435cfc)
v5.4.2 (2017-01-25)
Fixed
- Fixed removal of reset tokens after password reset (#17524)
v5.4.1 (2017-01-24)
Fixed
- Fixed view parent placeholding (64f7e9c)
v5.4.0 (2017-01-24)
General
- 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
DetectEnvironmenttoLoadEnvironmentVariables(c36874d) - Switched to
::classnotation across the codebase (#17357)
Authentication
- 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)
Authorization
- Consider interfaces and extended classes in
Gate::resolvePolicyCallback()(#15757)
Blade
- Added Blade components and slots (e8d2a45, a00a201)
- Refactored Blade component (7cdb6a6, 5e394bb)
- Refactored View component (#17018, bb998dc)
- Refactored Blade
@parentcompilation (#16033, 16f72a5) - Added support for translation blocks in Blade templates (7179935)
- Don't reverse the order of
@pushed data (#16325) - Allow view data to be passed Paginator methods (#17331)
- Add
mix()helper method (6ea4997) - Escape inline sections content (#17453)
Broadcasting
- Added model binding in broadcasting channel definitions (#16120, 515d97c)
- Added
Dispatchable::broadcast()0fd8f8d - Switched to broadcasting events using new style jobs (#17433)
Cache
- Added
RedisStore::add()to store an item in the cache if the key doesn't exist (#15877) - Added
cache:forgetcommand (#16201, 7644977) - Refactored cache events (b7454f0, #17120)
Cache::flush()now returns boolean (#15831, 057492d)
Collections
- 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) - Renamed
every()method tonth()and added newevery()to determine if all items pass the given test (#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)
Console
- Added
--modeltomake:controllercommand to generate resource controller with type-hinted model (#16787) - Require confirmation for
key:generatecommand in production (#16804) - Added
ManagesFrequenciestrait (e238299) - Added
Queueableto queued listener stub (dcd64b6) - Switched from file to cache based Schedule overlap locking (#16196, 5973f6c)
- Changed namespace generation in
GeneratorCommand(de9e03d) - Added
Command::$hiddenandScheduleFinishCommand(#16806) - Moved all framework command registrations into
ArtisanServiceProvider(954a333, baa6054, 87bd2a9) - Support passing output buffer to
Artisan::call()(#16930) - Moved
tinkerinto 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)
Container
- 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
$parametersfromApplication::make()andapp()/resolve()helpers (#17071, #17060) - Removed
Container::share()(1a1969b) - Removed
Container::normalize()(ff993b8)
DB
- Refactored all database components (too many commits, sorry)
- Allow rolling back to a given transaction save-point (#15876)
- Added
$valuesparameter 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)
Eloquent
- 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
idinModel::getForeignKey()(#16396) - Made
dateanddatetimecast difference more explicit (#16799) - Use
getKeyType()instead of$keyTypeinModel(#16608) - Only detach all associations if no parameter is passed to
BelongsToMany::detach()(#16144) - Return a database collection from
HasOneOrMany::createMany()(#15944) - Throw
JsonEncodingExceptionwhenModel::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
orderByclause forchunk()(#16283, #16513) - Added
$connectionparameter tocreate()andforceCreate()(#17392)
Events
- Removed event priorities (dbbfc62, #17245, f83edc1)
- Allow queued handlers to specify their queue and connection (fedd4cd)
- Converted
locale.changedevent intoLocaleUpdatedclass (3385fdc) - Unified wording (2dcde69)
- Allow chaining queueable methods onto trait dispatch (9fde549)
- Removed
Queueabletrait from event listeners subs (2a90ef4)
Filesystem
- Use UUID instead of
md5()for generating file names inFileHelpers(#16193) - Allow array of options on
Filesystemoperations (481f760)
HTTP
- Refactored session component (66976ba, d9e0a6a)
- Added
Illuminate\Http\Request\Concernstraits (4810e9d) - Use variable-length method signature for
CookieJar::queue()(#16290, ddabaaa) - Added
FormRequestServiceProvider(b892805) - Renamed
Http/Exceptionnamespace toHttp/Exceptions(#17398) - Renamed
getJsonOptions()togetEncodingOptions()onJsonResponse(e689b2a) - Renamed
VerifyPostSizemiddleware toValidatePostSize(893a044) - Converted
kernel.handledevent intoRequestHandledclass (43a5e5f) - Throw
AuthorizationExceptioninFormRequest(1a75409) - Use
Str::randominstead of UUID inFileHelpers(#17046) - Moved
getOriginalContent()toResponseTrait(#17137) - Added JSON responses to the
AuthenticatesUsersandThrottlesLogins(#17369) - Added middleware to trim strings and convert empty strings to null (f578bbc)
Logging
- Added
LogServiceProviderto defer loading of logging code (#15451, 6550153, #15794) - The
Logfacade now usesLoggerInterfaceinstead of the log writer (#15855) - Converted
illuminate.logevent intoMessageLoggedclass (57c82d0)
- Added support for Markdown emails and notifications (#16768, b876759, cd569f0, 5325385)
- Refactored Mail component and removed
SuperClosuredependency (50ab994, 5dace8f) - Allow
Mailerto emailHtmlStringobjects (882ea28) - Added
hasTo(),hasCc()andhasBcc()toMailable(fb29b38)
Notifications
- Added
NotificationSenderclass (5f93133) - Removed
toandccfrom mailMailMessage(ff68549) - Add salutation option to
SimpleMessagenotification (#17429)
Queue
- Support job-based queue options (#16257, 2382dc3, ee385fa)
- Fixed manually failing jobs and added
FailingJobclass (707a3bc, 55afe12) - Converted
illuminate.queue.loopingevent intoLoopingclass (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)
Redis
- 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)
Routing
- 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) UrlGeneratorimprovements (f0b9858, 4f96f42)- Compile routes only once (c8ed0c3, b11fbcc)
Testing
- 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
TestResponsefromMakesHttpRequests::json()(#17341) - Always return collection from factory when
$amountis set (#17493)
Translations
- 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)
Validation
- Refactored Validation component (#17005, 9e98e7a, 9b817f1)
- Removed files hydration in
Validator(#16017) - Added IPv4 and IPv6 validators (#16545)
- Made
date_formatvalidation more precise (#16858) - Add place-holder replacers for
*_or_equalrules (#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)