Skip to content
Permalink
5.4
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
930 lines (737 sloc) 83.1 KB

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 $delay property 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() and str_start() helper (#20569)
  • Added orDoesntHave() and orWhereDoesntHave() to QueriesRelationships (#20685)
  • Added support for callables in model factory attributes (#20692)

Changed

  • Return the model instance from Model::refresh() (#20657)
  • Use self::$verbs in Router::any() (#20698)

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

  • Show error message if a reverted migration is not found (#20499, a895b1e)

Changed

  • Moved tap() method from Builder to BuildsQueries (#20384)
  • Made Blade or operator case-insensitive (#20425)
  • Support $amount = 0 in Arr::random() (#20439)
  • Reverted doctrine/inflector version change made in v5.4.31 (#20227)

Fixed

  • Fixed bug when using empty values in SQLiteGrammar::compileInsert() (#20424)
  • Fixed $boolean parameter being ignored in Builder::addArrayOfWheres() (#20553)
  • Fixed JoinClause::whereIn() when using a subquery (#20453)
  • Reset day parameter when using Y-m with date_format rule (#20566)

v5.4.32 (2017-08-03)

Added

  • Added FilesystemAdapter::path() method (#20395)

Changed

  • Allow Collection::random() to return 0 items (#20396, #20402)
  • Accept options on FilesystemAdapter::temporaryUrl() (#20394)
  • Sync withoutOverlapping method on Event and CallbackEvent (#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 MakeAuthCommand to AuthMakeCommand (#20216)
  • Don't use asset() helper inside mix() (#20197)
  • Removed array type-hint in Builder::orWhereRaw() signature (#20234)
  • Added empty array default to $attributes on BelongsToMany::create() (#20321)
  • Prepare for PHP 7.2 (#20258, #20330, #20336, #20378)
  • Use unsignedTinyInteger() in jobs.stub (#20382)

Fixed

  • Make sure Model::getDates() returns unique columns (#20193)
  • Fixed pulled doctrine/inflector version (#20227)
  • Fixed issue with chunkById() when orderByRaw() 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 @guest and @auth directives (#20166, b164e45)

v5.4.29 (2017-07-19)

Added

  • Added ManagesFrequencies::twiceMonthly() method (#19874)
  • Added RouteCollection::getRoutesByName() method (#19901)
  • Added $expiresAt parameter to CallbackEvent::withoutOverlapping() (#19861)
  • Support keeping old files when testing uploads (#19859)
  • Added --force option to make:mail, make:model and make:notification (#19932)
  • Added support for PostgreSQL deletes with USES clauses (#20062, f94fc02)
  • Added support for CC and BBC on mail notifications (#20093)
  • Added Blade @auth and @guest directive (#20087, #20114)
  • Added option to configure MARS on SqlServer connections (#20113, c2c917c)

Changed

  • Support object items in Arr::pluck() (#19838, #19845)
  • MessageBag interface now extends Arrayable (#19849)
  • Made Blueprint macroable (#19862)
  • Improved performance for Arr::crossJoin() (#19864)
  • Use the correct User model 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 InvalidPayloadException error message (#20143)

Fixed

  • Don't re-escape a View instance passed as the default value to @yield or @section directives (#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() and average() 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 BelongsTo relations (#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 @yield directive (#19643)
  • Support passing multiple fields to different validation rule (#19637)
  • Only dispatch the MessageSent event if mails should be sent (#19690)
  • Removed duplicate / from public_path() (#19731)
  • Made ThrottlesLogins more customizable (#19787)
  • Support PostgreSQL insert statements with DEFAULT VALUES (#19804)

Fixed

  • Fixed BelongsTo bug with incrementing keys (#19631)
  • Fixed PDO return value bug in unprepared() (#19667)
  • Don't use event() helper in Http\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 role attribute 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 Macroable trait to RequestGuard (#19569)

Changed

  • Touch updated_at timestamp when soft deleting (#19538)
  • Accept argument list in Rule::in() and Rule::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 Throwable to stopWorkerIfLostConnection() (#19591)

v5.4.25 (2017-06-07)

Added

  • Added Macroable trait to FactoryBuilder (#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 BadMethodCallException in RedirectResponse::withErrors() (#19426)
  • Suppress error if calling Str::replaceFirst() with an empty search (#19427)
  • Removed the callable type hint for array_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 Mailable class (#19504)
  • Prevent error notice when database.collation is not set (#19507)

v5.4.24 (2017-05-30)

Added

  • Support magic controller methods (#19168)
  • Added Gate resources (#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 path to Paginator (#19314)
  • Added Collection::concat() method (#19318, 0f5337f)
  • Added make() method to HasOneOrMany and MorphOneOrMany relations (#19307)
  • Added str_after() helper function (#19357)
  • Added Router::apiResource() method (#19347)

Changed

  • Move $sizeRules and $numericRules properties from FormatsMessages to Validator (dc7e7cb)
  • Allows calls to Collection::times() without the $callback parameter (#19278)
  • Don't ignore jobs with a timeout of 0 (#19266)
  • Resolve database paginators from the container (#19328)
  • Added news to Pluralizer::$uncountable() (#19353)
  • Switched to using app()->getLocale() in app.stub (#19405)

Fixed

  • Fixed Container::makeWith() not using parameters when resolving interfaces (#19178)
  • Stop validating Memcached connection (#19192)
  • Fixed the position of bound() in Container::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 0 from callScope() if $query->wheres is null (#19381)

v5.4.23 (2017-05-11)

Added

  • Added Gate::abilities() accessor (#19143, e9e34b5)
  • Added ability to eager load counts via $withCount property (#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.Laravel object (#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 Arrayable on Eloquent's find() method (#19019)
  • Added SendsPasswordResetEmails::validateEmail() method (#19042)
  • Allow factory attributes to be factory instances themselves (#19055)
  • Implemented until() method on EventFake (#19062)
  • Added $encoding parameter to Str::length() (#19047, #19079)

Changed

  • Throw exception when invalid first argument is passed to cache() helper (d9459b2)
  • Use getAuthIdentifierName() in Authenticatable::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() in assertJsonStructure() (#19090)

v5.4.21 (2017-04-28)

Added

Fixed

  • Reverted queue prefix option #18860 (#18987)
  • Return null if key is not found from RedisStore: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.prefix option (#18860, 8510bf9)
  • Allow getDisplayableAttribute() to be used in custom replacers (#18895)
  • Added resourceMethodsWithoutModels() method to AuthorizesRequests (#18916, #18964)
  • Added name to home route (#18942)

Changed

  • Return PendingDispatch for Kernel::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_ERROR on JsonResponse (#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 is null (#18921)
  • Use protocol-relative URL in mix() helper (#18943)
  • Cast $viaChannels to array (#18960)

v5.4.19 (2017-04-16)

Added

  • Added ability to send link_names parameter in Slack notification (#18765)
  • Added Mailable::hasFrom() method (#18790)

Changed

  • Made Mailer macroable (#18763)
  • Made SessionGuard macroable (#18796)
  • Improved queue worker output (#18773)
  • Added newModelInstance() method to Eloquent Builder (#18775)
  • Use assertions instead of exceptions in MocksApplicationServices (#18774)

Fixed

  • Fixed memory issue in Container (#18812)
  • Set database connection while retrieving models (#18769)

v5.4.18 (2017-04-10)

Added

  • Added assertSuccessful() and assertRedirect() to TestResponse (#18629)
  • Added assertSeeText() and assertDontSeeText() to TestResponse (#18690)
  • Added assertJsonMissing() to TestResponse (#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 --parent option on make:controller (#18606)
  • Added MessageSent event to Mailer (#18744, 6c5f3a4)

Changed

  • Don't trim leading slashes on local filesystem base URLs (acd66fe)
  • Accept variable on @empty() directive (#18738)
  • Added string validation rules to AuthenticatesUsers (#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() and decrement() update attributes (#18739, 1728a88)

v5.4.17 (2017-04-03)

Added

  • Added getManager() and setManager() to queue worker (#18452)
  • Added support for Pheanstalk's $timeout and $persistent options (#18448)
  • Added Collection::times() method (#18457)
  • Added PostgreSQL's REAL data type (#18513)
  • Added flatMap to collection higher order proxies (#18529)
  • Support multiple --path parameters with migrate:reset (#18540)
  • Store SparkPost Transmission-ID in the header after sending message (#18594)

Changed

  • Check for Htmlable instead of HtmlString in Mailer::renderView() (#18459, da7b006)
  • Added mutex for schedule events (#18295, ae2eb1f)
  • Don't use helper functions in service providers (#18506, #18521)
  • Change user_id to unsigned integer in database session stub (#18557)
  • Improved performance of UrlGenerator::isValidUrl() (#18566)

Fixed

  • Handle missing or malformed config/app.php file (#18466, 92931cf)
  • Only call up and down on 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() in TestResponse::assertRedirect() (#18559)
  • Case parseIds() to array in InteractsWithPivotTable::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 MessageSending returns false (#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(), and executeRaw() to PhpRedisConnection (#18421)
  • Added @isset() directive (#18425)
  • Added tinyIncrements() database schema method (#18424)

Changed

  • Throw exception when bootstrap/cache directory is not writable (#18188, b4f0005)
  • Use resource_path() helper in MakeAuthCommand (#18215)
  • Added file_exists() check to Event::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 id in failed jobs migration stub to bigIncrements() (#18300)
  • Prevent make:auth from 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 Closure in orWhereHas() (#18277)
  • Let PHP parse @includeWhen directive (#18285)
  • Only include .php files when loading database factories (#18336)
  • Fixed PHP 5.6 issue in FileFactory::generateImage() (#18345)
  • Allow ImplicitRouteBinding to match camelcase method parameter names (#18307, 4ae31a1)
  • Fixing weird behaviour of Connection::getConfig() when null was passed (#18356)
  • Attempt to solve an issue with using required_* rules while the ConvertEmptyStringToNull middleware 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

  • Added any() method to ViewErrorBag (#18176)
  • Added Storage and File fakes (#18178, #18180)

Changed

  • Made queue worker properties $shouldQuit and $paused public (e40c0e7)

Fixed

  • Proxy isset() checks on TestResponse (#18182)

v5.4.14 (2017-03-01)

Added

  • Added Str::kebab() and kebab_case() helper (#18084)
  • Added Route::getActionMethod() (#18105)
  • Support granular $tries and $timeout on Mailable (#18103)
  • Added context to the assertJson() response (#18166, da2c892)
  • Add whereNotIn() and whereNotInStrict() to Collection (#18157)

Changed

  • Create TestResponse using composition instead of inheritance (#18089)
  • Changed visibility of Pivot::$parent from protected to public (#18096)
  • Catch Sqlite3 deadlocks in DetectsDeadlocks (#18107)
  • Use fromRawAttributes() when in Model::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 ShouldQueue contract in Mailer::send() (#18144, 717f1f6, #18160)

Fixed

  • Don't use value() helper in BoundMethod class (#18075)
  • Don't require manifest file when running npm run hot (#18088)
  • Fixed injection placement of dependencies for routing method parameters (#17973)
  • Return false from Model::fireModelEvent() if custom model event returns false (c5a6290)
  • Fixed firstOrFail() on relation setting the wrong model on ModelNotFoundException (#18138)
  • Fixed RateLimiter setting initial attempts count to 2 (#18139)
  • Fixed compiled DELETE query when using JOIN with aliases (#18156, e09b9eb)
  • Fixed validating present in combination with nullable (#18173)

v5.4.13 (2017-02-22)

Added

  • Add $default parameter to Collection::when() method (#17941)
  • Support --resource argument on make:model command (#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 in AuthenticateSession middleware (#17965)
  • Return null from Gate::getPolicyFor() if given class is not a string (#17972)
  • Add missing methods to the Job interface (#18034)
  • Improved PostgreSQL table existence check (#18041)
  • Allow getActualClassNameForMorph() used by morphInstanceTo() to be overridden (#18058)

Fixed

  • Fixed @lang directive when used with JSON file (#17919, 2bd35c1)
  • Improved image dimensions validation rule (#17943, #17944, #17963, #17980)
  • Fixed $willBeAvailableAt having the wrong time if using $retryAfter in MaintenanceModeException (#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_locale config (#17895)
  • Added when() method to Collection class (#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 Model instances in Authorize middleware (#17898)
  • Use asset() helper in app.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 Encrypt and TrustServerCertificate options on SqlServer connections (#17841)
  • Support custom pivot models in MorphToMany::newPivot() (#17862)
  • Support Arrayable objects in Eloquent's whereKey() method (#17812)

Changed

  • Use app.locale lang attribute in app.stub (#17827)
  • Throw JsonEncodingException when JSON encoder fails to encode eloquent attribute (#17804, 11e89f3)
  • Ensure file hashName() is unique (#17879, 830f194)

Fixed

  • Added missing Str class import to TestResponse (#17835)
  • Fixed PhpRedis’ zadd() method signature (#17832)

v5.4.10 (2017-02-08)

Added

  • Added Blade @prepend directive (#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 of url() in authentication component (#17718)
  • Ensure that the map() method exists before calling in RouteServiceProvider::loadRoutes() (#17784)
  • Clean up how events are dispatched (8c90e7f, c9e8854)
  • Changed job name to displayName (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 Macroable trait to TestResponse (#17726)
  • Added container alias for the Redis connection instance (#17722)
  • Added raw() method to FactoryBuilder (#17734)
  • Added json() as alias for decodeResponseJson method on TestResponse (#17735)

Changed

  • Use route() helper instead of url() in authentication component (#17718)
  • Added Jedi to 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 FormRequests instead of re-building it (#17760, 2d725c2)
  • Use isset() instead of array_key_exists() in HasAttributes::getAttributeFromArray() (#17739)

Fixed

  • Added missing sleep option to queue:listen (59ef5bf)
  • Switched to strict comparison TrimStrings middleware (#17741)

v5.4.8 (2017-02-01)

Added

  • Added TestResponse::assertJsonStructure() (#17700)
  • Added Macroable trait to Eloquent Relation class (#17707)

Changed

  • Move shouldKill() check from daemon() to stopIfNecessary() (8403b34)
  • Removed isset() check from validateSame() (#17708)

Fixed

  • Added force option to queue:listen signature (#17716)
  • Fixed missing return in HasManyThrough::find() and HasManyThrough::findMany() (#17717)

v5.4.7 (2017-01-31)

Added

  • Added Illuminate\Support\Facades\Schema to notifications.stub (#17664)
  • Added support for numeric arguments to @break and @continue (#17603)

Changed

  • Use usesTimestamps() in Eloquent traits (#17612)
  • Default to null if amount isn't set in factory() helper (#17614)
  • Normalize PhpRedis GET/MGET results (#17196)
  • Changed visibility of Validator::addRules() from protected to public (#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)

Fixed

  • Set Command::$name in Command::configureUsingFluentDefinition() (#17610)
  • Support post size 0 (unlimited) in ValidatePostSize (#17607)
  • Fixed method signature issues in PhpRedisConnection (#17627)
  • Fixed BelongsTo not accepting id of 0 in foreign relations (#17668)
  • Support double quotes with @section() (#17677)
  • Fixed parsing explicit validator rules (#17681)
  • Fixed SessionGuard::recaller() when request is null (#17688, 565456d)
  • Added missing force and tries options for queue: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 ViewFactory contract in Mail/Markdown (#17591)
  • Use implicit binding when generating controllers with make:model (#17588)
  • Made PhpRedis method signatures compatibility with Predis (#17488)
  • Use config('app.name') in markdown/message.blade.php (#17604)
  • Use getStatusCode() instead of status() in TestResponse::fromBaseResponse() (#17590)

Fixed

  • Fixed loading of .env.testing when 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() and getMiddlewareGroups() method to Router (#17576)

Fixed

  • Fixed --database option on migrate commands (#17574)
  • Fixed $sequence being always overwritten in PostgresGrammar::compileInsertGetId() (#17570)

Removed

  • Removed various unused parameters from view compilers (#17554)
  • Removed superfluous ForceDelete extension from SoftDeletingScope (#17552)

v5.4.3 (2017-01-25)

Added

  • Mock dispatch() method in MocksApplicationServices (#17543, d974a88)

Changed

  • Moved $forElseCounter property from BladeCompiler to CompilesLoops (#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 DetectEnvironment to LoadEnvironmentVariables (c36874d)
  • Switched to ::class notation 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 @parent compilation (#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:forget command (#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 to nth() and added new every() 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 --model to make: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 and ScheduleFinishCommand (#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)

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 $parameters from Application::make() and app()/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 $values parameter to Builder::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 to array_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 to SqlServerGrammar (#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 id in Model::getForeignKey() (#16396)
  • Made date and datetime cast difference more explicit (#16799)
  • Use getKeyType() instead of $keyType in Model (#16608)
  • Only detach all associations if no parameter is passed to BelongsToMany::detach() (#16144)
  • Return a database collection from HasOneOrMany::createMany() (#15944)
  • Throw JsonEncodingException when Model::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 for chunk() (#16283, #16513)
  • Added $connection parameter to create() and forceCreate() (#17392)

Events

  • Removed event priorities (dbbfc62, #17245, f83edc1)
  • Allow queued handlers to specify their queue and connection (fedd4cd)
  • Converted locale.changed event into LocaleUpdated class (3385fdc)
  • Unified wording (2dcde69)
  • Allow chaining queueable methods onto trait dispatch (9fde549)
  • Removed Queueable trait from event listeners subs (2a90ef4)

Filesystem

  • Use UUID instead of md5() for generating file names in FileHelpers (#16193)
  • Allow array of options on Filesystem operations (481f760)

HTTP

  • 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 to Http/Exceptions (#17398)
  • Renamed getJsonOptions() to getEncodingOptions() on JsonResponse (e689b2a)
  • Renamed VerifyPostSize middleware to ValidatePostSize (893a044)
  • Converted kernel.handled event into RequestHandled class (43a5e5f)
  • Throw AuthorizationException in FormRequest (1a75409)
  • Use Str::random instead of UUID in FileHelpers (#17046)
  • Moved getOriginalContent() to ResponseTrait (#17137)
  • Added JSON responses to the AuthenticatesUsers and ThrottlesLogins (#17369)
  • Added middleware to trim strings and convert empty strings to null (f578bbc)

Logging

  • Added LogServiceProvider to defer loading of logging code (#15451, 6550153, #15794)
  • The Log facade now uses LoggerInterface instead of the log writer (#15855)
  • Converted illuminate.log event into MessageLogged class (57c82d0)

Mail

  • Added support for Markdown emails and notifications (#16768, b876759, cd569f0, 5325385)
  • Refactored Mail component and removed SuperClosure dependency (50ab994, 5dace8f)
  • Allow Mailer to email HtmlString objects (882ea28)
  • Added hasTo(), hasCc() and hasBcc() to Mailable (fb29b38)

Notifications

  • Added NotificationSender class (5f93133)
  • Removed to and cc from mail MailMessage (ff68549)
  • Add salutation option to SimpleMessage notification (#17429)

Queue

Redis

Routing

Testing

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 in AuthenticatesUsers (#17202)

Validation

  • 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() and MessageBag::first() (#17001)
  • Support arrays with empty string as key (#17427)
  • Add type check to validateUrl() (#17504)