Laravel-Framework/CHANGELOG-5.6.md

47 KiB
Raw Permalink Blame History

Release Notes for 5.6.x

v5.6.39 (2018-10-04)

Fixed

  • Fixed broken email sub-copy template escaping (#25734)
  • Fixed required carbon version (394f79f)
  • Fixed translation escaping (#25858, 4c46500)

v5.6.38 (2018-09-04)

Fixed

  • Fix nullable MorphTo and $touches (#25438)
  • Allow load relations with similar keys using strict comparison (#25429)

v5.6.37 (2018-09-02)

Fixed

  • Fixed MorphTo lazy loading and withoutGlobalScopes method (#25406)

v5.6.36 (2018-09-02)

Changed

  • Use higher order messages in Collection (#25356)
  • Use the getAttributes method on insert (#25355)

Fixed

  • logoutOtherDevices method in Illuminate/Auth/SessionGuard.php class breaks "remember me" cookie (#25386)
  • Fix self relation existence queries with custom keys (#25397)
  • Fix relationships with global scope columns (#25368)
  • Fix: revert model syncing after soft-delete (#25392)
  • Fix mailables always being queued for later if using Queueable trait (#25378)

Security

  • escape lang directive echos (d3c0a36)

v5.6.35 (2018-08-27)

Added

  • Handle AWS Connection Lost (#25295)
  • Support JSON SELECT queries on SQLite (#25328)

Changed

  • Throw exception for has() with MorphTo relationship (#25337)

Fixed

  • Fix MorphTo eager loading and withoutGlobalScopes() (#25331)
  • Fix whereTime() on SQL Server (#25316)

v5.6.34 (2018-08-21)

Changed

  • Wrap columns in whereRowValues (#25179)
  • Make copyrights line localizable in mail messages (#25183)
  • When specifying events to be faked, other events should be normally dispatched (#25185)

Fixed

  • Fix URL validation pattern on PHP 7.3 (#25194)

v5.6.32 & v5.6.33 (2018-08-09)

Added

  • Added serialization parameters to helper functions decrypt and encrypt (#25166)

v5.6.31 (2018-08-09)

Changed

  • Make Auth/Recaller handle serialized and unserialized cookies (#25167)

v5.6.30 (2018-08-08)

Added

  • Support passing CC/CBC in array form in mail notification (#25029)
  • Added Rule::requiredIf (#25066)
  • Support raw expressions in whereRowValues() (#25117)

Changed

  • Stopped serializing csrf cookie / header (#25121)

Fixed

  • Avoid an "Undefined offset: 0" if no job was pulled from redis queue (#25020)
  • Updating the Pluralizer class to respect the grammar rule (#25063)

v5.6.29 (2018-07-26)

Added

  • Added restored() and forceDeleted() to observer stub (#40ba2ee)
  • Added UploadedFile::get() (#24924)
  • Added an alias for a single FactoryBuilder state definition (#24937)

Changed

  • Allow closure to determine if event should be faked (#24887)
  • Update error message for MailFake::assertSent() (#24911)
  • Return instance of spy when swapping facade for a Mockery spy (#24918)
  • Renamed Mailer::setGlobalTo() to setGlobalToAndRemoveCcAndBcc() to be more clear about what it does (#24917)
  • Update the font path used in frontend stub (#24926)

Fixed

  • Fixed an issue when passing an array to Request::is() (#24885)
  • Fixed message string in NotificationFake::assertSentToTimes() (#24929)

v5.6.28 (2018-07-17)

Added

  • Added support for variadic params in Cache\Repository::tags() (#24810)
  • Handle unquoted JSON selector for MYSQL (#24817)
  • Added ability to generate single action controller (#24843)
  • Applied improvements to the generated migration name (#24845)
  • Added JPEG support to FileFactory::image() (#24853)

Changed

  • Stop reporting PDOException manually from inside ConnectionFactory (#24864)
  • remove unnecessary foreach from is() method (#24872)

v5.6.27 (2018-07-10)

Added

  • Add missing phpredis connection parameters to PhpRedisConnector (#24678)
  • Apply realpath option to refresh and fresh commands (#24683)
  • Added loggedOut() method in AuthenticatesUsers (#24717)

Changed

  • Use value() helper in whenLoaded() (#24644)
  • Allow accessing the value of the current migrator connection (#24665)
  • Check if configuration cache is valid after saving (#24722)
  • Except URIs from CheckForMaintenanceMode middleware (#24740)

v5.6.26 (2018-06-20)

Added

  • Added two Azure SQL server connection lost messages (#24566)
  • Allowed passing of recipient name in Mail notifications (#24606)
  • Started passing table name to the post migration create hooks (#24621)
  • Allowed array/collections in Auth::attempt method (#24620)

Changed

  • Prevent calling the bootable trait boot method multiple times (#24556)
  • Make chunkById() work for non-incrementing/non-integer ids as well (#24563)
  • Make ResetPassword Notification translatable (#24534)

v5.6.25 (2018-06-12)

Added

  • Added whereJsonContains() to SQL Server (#24448)
  • Added Model::unsetRelation() (#24486)
  • Added Auth::hasUser() (#24518)
  • add assertOk() response assertion (#24536)

Changed

  • Set the controller name on the action array when callable array syntax is used (#24468)
  • Make database grammars macroable (#24513)
  • Allow "app" migrations to override package migrations (#24521)

v5.6.24 (2018-06-04)

Added

  • Added assertSessionHasNoErrors() test helper (#24308)
  • Added support for defining and enforcing a Spatial reference system for a Point column (#24320)
  • Added Builder::whereJsonDoesntContain() and Builder::orWhereJsonDoesntContain() (#24367)
  • Added Queueable, SerializesModels to all notification events (#24368)
  • Allow callable array syntax in route definition (#24385)
  • Added JSON SELECT queries to SQL Server (#24397)
  • Added whereJsonContains() to SQL Server (#24448)
  • Added Model::unsetRelation() (#24486)
  • Added Auth::hasUser() (#24518)
  • add assertOk() response assertion (#24536)

Changed

  • Optimize query builder's pluck() method (#23482)
  • Allow passing object instances regardless of the parameter name to method injection (#24234)
  • Extract setting mutated attribute into method (#24307)
  • Let apiResource support except option (#24319)
  • Skip null/empty values in SeeInOrder (#24395)
  • Sync Original modal attributes after soft deletion (#24400)
  • Set the controller name on the action array when callable array syntax is used (#24468)
  • Make database grammars macroable (#24513)
  • Allow "app" migrations to override package migrations (#24521)

Fixed

  • Fixed typo of missing underscore in not_regexp rule name (#24297)
  • Cleanup null relationships in loadMorph (#24322)
  • Fix loadMissing() relationship parsing (#24329)
  • Fix FormRequest class authorization validation priority (#24369)
  • Fix custom blade conditional ignoring 0 as argument (#24394)

v5.6.23 (2018-05-24)

Added

  • Added support for renaming indices (#24147)
  • Added Event::fakeFor() method (#24230)
  • Added @canany Blade directive (#24137)
  • Added TestReponse::assertLocation() method (#24267)

Changed

  • Validation bypass for before and after rules when paired with date_format rule (#24191)

Fixed

  • Fixed an issue with Cache::increment() when expiration is null (#24228)
  • Ignore non-where bindings in nested where constraints (#24000)
  • Fixed withCount() binding problems (#24240)

v5.6.22 (2018-05-15)

Added

Changed

  • Support updating NPM dependencies from preset (#24189, a6542b0)
  • Support returning Responsable from middleware (#24201)

v5.6.21 (2018-05-08)

Added

  • Added FilesystemManager::forgetDisk() method (#24057, cbfb4fb)
  • Added --allow parameter to down command (#24003)
  • Added more comparison validation rules (gt, lt, gte, lte) (#24091, #24135)
  • Added TestResponse::assertCookieNotExpired() method (#24119)

Changed

  • Redis connections now implement the Contracts/Redis/Connection interface (#24142)

Fixed

  • Fixed unsetting request parameters during HEAD requests (#24092)
  • Fixed HasManyThrough returning incorrect results with chunk() (#24096, 5d3d98a)
  • Fixed dateBasedWhere() with raw expressions when using SQLite (#24102)
  • Fixed whereYear() not accepting integers when using SQLite (#24115)
  • Remove full base URL from generated paths (#24101)

v5.6.20 (2018-05-02)

Added

  • Support passing Response and Responsable to abort() (4e29889)
  • Added pingBeforeIf and thenPingIf methods to task scheduler (#24077, 1bf54d2)
  • Added withDefault() support to MorphTo relationships (#24061)

Fixed

  • Fixed URL generator when request has base path (#24074)

v5.6.19 (2018-04-30)

Added

  • Added support for custom SparkPost endpoint (#23910)
  • Added Optional::__isset() handling (#24042)
  • Added support for multiple cc, bcc and reply-to recipients on mail notifications (#23760)

Fixed

  • Accept only two arguments on orWhereDate() (#24043)
  • Fixed relative route URL generation when using custom host formatter (#24051)

v5.6.18 (2018-04-26)

Added

  • Added support for MySQL 8 (#23948)
  • Added support for custom filesystem drivers URLs (#23964)
  • Added more PostgreSQL operators (#23945)
  • Added support for JSONP callback when broadcasting using Pusher (#24018, b9ab427)

Changed

  • Support chaining using $this->be() helper (#23919)
  • Improved pagination accessibility (#23962)
  • Changed response code of ValidationException in ThrottlesLogins to 429 (#24002)
  • Throw exception if called command doesn't exist (#23942)
  • Made notification email translatable (#23903)

Fixed

  • Fixed saving timestamp columns on pivots without parent (#23917)
  • Quote collation names in MySQL migrations (#23989)
  • Fixed sending plain-text only emails (#23981)
  • Fixed counting the number of jobs on Queue::fake() (#23933)

v5.6.17 (2018-04-17)

Added

  • Added helpers for subquery joins (#23818)

Changed

  • Allow PendingResourceRegistration to be fluently registered (#23890)
  • Allow asserting an integer with assertSee*() (#23892)
  • Allow passing Collection to Rule::in() and Rule::notIn() (#23875)

Fixed

  • Lock Carbon version at 1.25.* (27b8844)

Removed

  • Removed form error for password confirmation (#23887)

v5.6.16 (2018-04-09)

Added

  • Support executing artisan commands using class names (#23764)
  • Make View macroable (#23787)
  • Added database Connection::unsetEventDispatcher() method (#23832)
  • Support IAM role session token to be used with SES (#23766)

Changed

  • Added displayable value to required_unless rule (#23833)

Fixed

  • Fixed RedisQueue::blockingPop() check when using PhpRedis (#23757)

v5.6.15 (2018-03-30)

Fixed

  • Fixed variable reference in RedisTaggedCache::decrement() (#23736)
  • Check updated_at column existence in HasOneOrMany::update() (#23747)

Security

  • Check iv length in Encrypter::validPayload() (886d261)

v5.6.14 (2018-03-28)

Added

  • Added SlackMessage::info() method (#23711)
  • Added SessionGuard::logoutOtherDevices() method (9c51e49)

Changed

  • Replaced Blade's or operator with null-coalescing operator (13f732e)

Fixed

  • Get Blade compiler from engine resolver (#23710)
  • Default to an empty string when validating the URL signatures (#23721)

v5.6.13 (2018-03-26)

Added

  • Added view:cache command (9fd1273, 2ab8acf)
  • Added min() and max() to as higher order proxies (#23560)
  • Added @elseauth and @elseguest Blade directives (#23569)
  • Added support for hashing configuration (#23573, d6e3ca9)
  • Allow tagged cache keys to be incremented/decremented (#23578)
  • Added SeeInOrder constraint to avoid risky test notices (#23594, ca39449)
  • Support higher order groupBy() (#23608)
  • Support disabling setting created_at in models (#23667)
  • Added callback support to optional() helper (#23688)
  • Added Eloquent\Collection::loadMorph() method (#23626)

Changed

  • Support generating a signed route with a UrlRoutable parameter (#23584)
  • Use DIRECTORY_SEPARATOR in Application::environmentFilePath() (#23596)
  • Support states on model factory after callbacks (#23551, #23676)
  • Use hash_equals() for verifying URL signatures (#23618)
  • Refactored Exceptions/Handler (f9162c9, 6c5d971)
  • Changed status code of InvalidSignatureException from 401 to 403 (#23662, c99911f)

Fixed

  • Revered breaking changes in ManagesLoops (d0a2613)
  • Set exit status in serve command (#23689)

v5.6.12 (2018-03-14)

Added

  • Added fromSub() and fromRaw() methods to query builder (#23476)
  • Added "Not Regex" validation rule (#23475)
  • Added seed parameter to Arr::shuffle() (#23490)
  • Added after callback to model factories (#23495, d79509d)
  • Added Request::anyFilled() method (#23499, 896d817)
  • Added support for signed routes (#23519)
  • Added assertNotFound() and assertForbidden() methods to TestResponse (#23526)
  • Added test helpers to assert that a job has been queued with a chain (#23531, 696f4d8)

Changed

  • Only set id on NotificationFake if there is no id set (#23470)
  • Check whether fetch() method exists in Application::output() (#23471)
  • Improve asset loading in app.stub (#23479)
  • Support ignoring a model during a unique validation check (#23524)
  • Support multiple model observers (#23507)
  • LogManager driver capable of producing logger with any Monolog handler (#23527, d499617)
  • Support passing model instance to updateExistingPivot() (#23535)
  • Allow for custom TokenGuard fields (#23542)

Fixed

  • Fixed clearing the cache without a cache directory (#23538)

v5.6.11 (2018-03-09)

Fixed

  • Fix for Carbon 1.24.1 (#23464)

v5.6.10 (2018-03-09)

Added

  • Added Blueprint::dropMorphs() (#23431)
  • Added Mailable::attachFromStorage() methods (0fa361d)
  • Added orWhere*() builder methods for day, month and year (#23449)

Changed

  • Added v-pre to dropdown link in app.stub (98fdbb0)
  • Handle more JSON errors gracefully when JSON_PARTIAL_OUTPUT_ON_ERROR is set (#23410, 972b82a)
  • Add bubble, permission and locking config to single/daily log (#23439)
  • Use Str::contains() instead of str_contains() (ae4cb28)

Fixed

  • Fixed unique() call in Validator::validate() (#23432)
  • Fix for Carbon 1.24.0 (67d8a4b)

v5.6.9 (2018-03-07)

Changed

  • Regenerate token when regenerating the session (20e8419)

Fixed

  • Fixed an issue with resources when loading a single merge value with an associative array (#23414)

v5.6.8 (2018-03-06)

Added

  • Added support for MySQLs sounds-like operator (#23351)
  • Added ThrottleRequestsException exception (#23358
  • Added @dump Blade directive (#23364)
  • Added Collection::whereInstanceOfMethod() (78b5b92)
  • Added Dispatchable::dispatchNow() (#23399)

Changed

  • Allow extension of DatabaseNotification model attributes (#23337)
  • Made auth scaffolding translatable (#23342)
  • Use getKeyName() in getForeignKey() (#23362)
  • Sort FileSystem files and directories by name (#23387)
  • Return validated data from Validator::validate() (#23397, 3657d66)

Fixed

  • Fixed serve command escaping (#23348)
  • Fixed an issue with multiple select statements in combination with withCount() (#23357)
  • Fixed conditional loading issues (#23369)
  • Prevent considering arrays as callable while building model factories (#23372)
  • Move tightenco/collect to Composers conflict (#23379)
  • Set up loop variable correctly on all Traversable objects (#23388, 49770ec)
  • Removed attribute filling from pivot model (#23401)

v5.6.7 (2018-02-28)

Added

  • Added SFTP filesystem driver (#23308)

Changed

  • Pass parent model to withDefault() callback (#23334)
  • Upgrade Parsedown to 1.7.0 (816f893)

Fixed

  • Fixed PostgresGrammar::whereTime() casting (#23323)
  • Fixed SQLiteGrammar::whereTime() correct (#23321)

v5.6.6 (2018-02-27)

Added

  • Added sortKeys() and sortKeysDesc() methods to Collection (#23286)

Changed

  • Return null from optional() helper if object property is undefined (#23267)
  • Cache event wildcard listeners (#23299, 82099cb)
  • Changed morphs() and nullableMorphs() to use unsignedBigInteger() (#23320)

Fixed

  • Prevent delayed jobs in v5.5 fail to run in v5.6 (#23287)
  • Queue::bulk() fake now properly pushes expected jobs (#23294)
  • Fixed the list of packages removed when the "none" preset is installed (#23305)
  • Fixed an issue with orHaving() arguments (e7f13be)

v5.6.5 (2018-02-22)

Added

  • Added model reference to MassAssignmentException (#23229)
  • Added support for setting the locale on Mailable (#23178, a432d9e)
  • Added new udiff methods to the Collection (#23107)

Fixed

v5.6.4 (2018-02-21)

Added

  • Added the ability to set message ID right hand side (#23181)
  • Support callbacks as custom log drivers (#23184)
  • Added Blade::include() method for include aliases (#23172)
  • Added broadcastType() method to notifications (#23236, 4227bd7)

Changed

  • Moved clone logic from FormRequestServiceProvider to Request (b0c2459)
  • Changed pagination arrow symbols (#23127)
  • Update React version in preset (#23134)
  • Added an empty error bag when rendering HTTP exception views (#23139)
  • Normalized actions when using route:list command (#23148)
  • Updated required Carbon version (201bbec)
  • Improved BadMethodCallException messages (#23232)
  • Support date validation rules when comparison has relative time (#23211)

Fixed

  • Returns same Logger instance from LogManager (#23118)
  • Register missing hash.driver DI (#23114)
  • Fixed an issue with starting two database transactions in tests (#23132)
  • Don't replace tightenco/collect (#23147, #23153, #23160)
  • Catch InvalidFileException when loading invalid environment file (#23149, 5695079)
  • Fixed an issue with assertRedirect() (#23176)
  • Fixed dropdown accessibility (#23191)
  • Fixed --force flag on GeneratorCommand (#23230)

Removed

v5.6.3 (2018-02-09)

Fixed

  • Fixed an issue in TestResponse::assertSessionHasErrors() (#23093)
  • Update Vue and React presets to Bootstrap v4 (8a9c5c4)

v5.6.2 (2018-02-08)

Changed

  • Support customization of schedule mutex cache store (20e2919)

Fixed

  • Reverted changes to TestResponse::assertSessionHasErrors() #23055 (0362a90)

v5.6.1 (2018-02-08)

Added

  • Added Slack attachment pretext attribute (#23075)

Changed

  • Added missing nested joins in Grammar::compileJoins() (#23059)
  • Improved session errors assertions in TestResponse::assertSessionHasErrors() (#23055)

Fixed

  • Fixed BelongsToMany pivot relation wakeup (#23081)

Removed

  • Removed monolog configurator (#23078)

v5.6.0 (2018-02-07)

General

Artisan Console

  • ⚠️ Removed deprecated optimize command (#20851)
  • Show job id in queue:work output (#21204)
  • Show batch number in migrate:status output (#21391)
  • ⚠️ Added $outputBuffer argument to call() method in contracts (#22463)
  • Added --realpath argument to migration commands (#22852, 98842da)
  • Added --api argument to make:controller (#22996, dcc6123)

Authentication

  • Support customizing the mail message building in ResetPassword::toMail() (6535186)
  • Added AuthServiceProvider::policies() method (6d8e530)

Blade Templates

  • Added @csrf and @method directives (5f19844, #22912)
  • Added Blade::component() method for component aliases (#22796, 7c3ba0e)
  • ⚠️ Made double encoding the default (7c82ff4)

Broadcasting

Cache

  • Removed $decayMinutes argument from RateLimiter::tooManyAttempts() (#22202)

Collections

  • ⚠️ Fixed keyless calls to uniqueStrict() (#21854)
  • Added operator support to Collection@partition() (#22380)
  • Improve performance of Collection::mapToDictionary() (#22774, c09a0fd)
  • Accept array of keys on Collection::except() (#22814)

Database

  • ⚠️ Swap the index order of morph type and id (#21693)
  • Added support for PostgreSQL comments (#21855, #22453)
  • Better enumeration columns support (#22109, 9a3d71d)
  • Prevent duplicated table prefix in SQLiteGrammar::compileColumnListing() (#22340, #22781)
  • Support complex update() calls when using SQLite (#22366)
  • Throws an exception if multiple calls to the underlying SQLite method aren't supported (#22364, c877cb0)
  • Made whereTime() operator argument optional (#22378)
  • Changed transaction logic in DatabaseQueue (#22433)
  • Added support for row values in where conditions (#22446)
  • Fixed serialization of pivot models (#22786, 8fad785, 351e3b7)
  • ⚠️ Accept Throwable in DetectsLostConnections (#22948)

Eloquent

  • ⚠️ Serialize relationships (#21229)
  • Allow setting custom owner key on polymorphic relationships (#21310)
  • ⚠️ Sync model after refresh() (#21905)
  • Make MassAssignmentException wording clear (#22565)
  • Changed HasAttributes::getDateFormat() visibility to public (#22618)
  • Added BelongsToMany::getPivotClass() method (641d087)
  • Ensure Pivot model's $dateFormat is used when creating a pivot record (a433ff8)
  • Added BelongsToMany::withPivotValues() method (#22867)
  • Added forceDeleted event (497a907)
  • ⚠️ Relocate the existence check for factory definitions to FactoryBuilder::getRawAttributes() (#22936)
  • ⚠️ Change Resource name away from soft-reserved name (#22969, aad6089)
  • Added support for casting to custom date formats (#22989, 1f902c8)

Hashing

Helpers

  • ⚠️ Return an empty array from Arr::wrap() when called with null (#21745)
  • Return class traits in use order from class_uses_recursive() (#22537)
  • Added Str::uuid() and Str::orderedUuid() (3d39604)

Logging

Mail

  • ⚠️ Added $data property to mail events (#21804)
  • ⚠️ Call message сustomization callbacks before building content/attachments (#22995)
  • Added support for setting HTML in emails (#22809)

Notifications

  • Pass notification instance to routeNotificationFor*() methods (#22289)

Queues

  • ⚠️ Added payload() and getJobId() to Job contract (#21303)
  • Removed unused Worker::raiseFailedJobEvent() method (#21901)
  • Support blocking pop from Redis queues (#22284, dbad055, 5923416)

Requests

  • ⚠️ Return false from expectsJson() when requested content type isn't explicit (#22506, 3624d27)
  • Added Request::getSession() method (e546a5b)
  • Accept array of keys on Request::hasAny() (#22952)

Responses

  • Added missing $raw and $sameSite parameters to Cookie\Factory methods (#21553)
  • ⚠️ Return 201 status if Model was recently created (#21625)
  • Set original response JSON responses (#22455)
  • Added streamDownload() method (#22777)
  • ⚠️ Allow insecure cookies when session.secure is true (#22812)

Routing

  • Added SetCacheHeaders middleware (#22389, f6f386b, df06357)
  • Support pulling rate limit from the user instance in ThrottleRequests (c9e6100)

Service Container

  • Support bulk binding in service providers during registration (#21961, 81e29b1)

Session

  • Support dot notation in Session::exists() (#22935)

Support

  • ⚠️ Throw exception if Manager::driver() is called with null (#22018)
  • ⚠️ Added hasCommandHandler(), getCommandHandler() and map() to Bus\Dispatcher contract (#22958, #22986)
  • Added useBootstrapThree() helper to paginators (c919402)

Task Scheduling

Testing

  • ⚠️ Switched to PHPUnit 7 (#23005)
  • Support fetching specific key when using json helpers (#22489)
  • Use DatabaseTransactions trait in RefreshDatabase (#22596)
  • Added assertSeeInOrder() and assertSeeTextInOrder() methods (#22915, #23038)

Validation

  • ⚠️ Ignore SVGs in validateDimensions() (#21390)
  • ⚠️ Renamed validate() to validateResolved() (33d8642)