Skip to content

Latest commit

 

History

History
297 lines (264 loc) · 37.1 KB

CHANGELOG-5.5.md

File metadata and controls

297 lines (264 loc) · 37.1 KB

Release Notes for 5.5.x

[Unreleased]

General

  • ⚠️ Require PHP 7+ (06907a0, 39809ce)
  • ⚠️ Removed deprecated ServiceProvider::compile() method (10da428)
  • ⚠️ Removed deprecated Str::quickRandom() method (2ef257a)
  • Removed build scripts (7c16b15)
  • Support callable/invokable objects in Pipeline (#18264)
  • Support for Responsable objects (c0c89fd, 1229b7f, #19614, ef0e37d)
  • ⚠️ Prevent access to protected properties using array access on Model and Fluent (#18403)
  • ⚠️ Extend MessageBag interface from Arrayable and add getMessages() method (#19768, #20334)
  • Handle Arrayable items in MessageBag (6f1f4d8)
  • Added isNotEmpty() method to message bags and paginators (#19944)
  • Return the collection iterator from AbstractPaginator::getIterator() (#20098)
  • Throw RuntimeException when app key is missing (#19145, 8adbaa7)
  • Autoload package providers (#19420, a5a0f3e, 2954091, #19455, #19561, #19646)
  • Upgraded to Symfony 3.3 components (4db7031, 67a5367)
  • Support registering macros using classes (#19782, 353adbd)
  • Made Carbon macroable (#19771, #20568)
  • ⚠️ Moved InteractsWithTime to Illuminate\Support (#20119, #20206)
  • ⚠️ Fixed minimum value of paginator last_page field (#20335)

Artisan Console

  • Added interactive prompt to vendor:publish (#18230)
  • Added migrate:fresh command (f6511d4, #20090)
  • Added make:factory command and added --factory to make:model (a6ffd8b, #19985)
  • Added make:rule command (76853fd)
  • ⚠️ Added runningInConsole() method Application contract (#18658)
  • Support default value(s) on command arguments (#18572)
  • Improved CLI detection for phpdbg (#18781)
  • ⚠️ Always return array from RetryCommand::getJobIds() (#19232)
  • Support passing absolute paths to make::listener (#19660)
  • ⚠️ Use handle() method instead of fire() (#19827, #19839, #20024)
  • Removed deprecated --daemon option from queue:work command (#19914)
  • Try to guess the --create option when generation migrations (#20032)
  • Generate make:policy with real user model namespace (#20047)
  • Added Kernel::load() to auto register a directory of commands (2e7ddca, d607b9c)
  • ⚠️ Removed array type hint from Command::table() (#20120)
  • Support loading multiple paths in Kernel::load() (#20251, #20595)
  • Added CommandStarting and CommandFinished events (#20298)
  • Show error message if a reverted migration is not found (#20499, a895b1e)

Assets

  • Added frontend preset commands (too many commits, sorry)

Authentication

  • ⚠️ Support default user providers and pass user provider to RequestGuard (#18856)
  • Made the user provider parameter on RequestGuard optional (d7f0b26)
  • Use setRememberToken() in ResetsPasswords (#19189)
  • Added a PasswordReset event (#19188)
  • ⚠️ Support multiword models in authorizeResource() (#19821)
  • Added support for no user provider in CreatesUserProviders (4feb847)

Authorization

  • Support multiple values in Gate::has() (#18758)
  • ⚠️ Prevent policies from being too greedy (#19120)
  • ⚠️ Added abilities() method to Gate contract (#19173)
  • ⚠️ Implement iterable on Gate::check() and Gate::any() (#20084)

Blade Templates

  • Added Blade::if() method (71dfe0f, 2905364, #20025)
  • Added @switch, @case, @break and @default directives (#19758)
  • ⚠️ Prevent Blade from parsing PHP code inside @php blocks (#20065)

Broadcasting

  • ⚠️ Use AccessDeniedHttpException instead if HttpException (#19611)
  • ⚠️ Upgraded to Pusher SDK v3 (#20016)

Cache

  • ⚠️ PSR-16 compliance (#20194)
  • Don't encrypt database cache values (f0c72ec)
  • Added support cache locks (4e6b2e4, 045e6f2, #19669)
  • Accept DatetimeInterface and DateInterval in cache repository (#20034)
  • Added getStore() method to cache Repository interface (#20338)

Collections

  • Support multiple values in Collection::has() (#18758)
  • Added Collection::mapInto() method (2642ac7)
  • Added Collection::dd() method (f5fafad)
  • Added Collection::dump() method (#19755)
  • Added wrap() and unwrap() methods (#20055, #20068)

Configuration

  • Added Config::getMany() method (#19770)

Controllers

  • ⚠️ Added ControllerDispatcher (#20031)
  • ⚠️ Removed Controller::missingMethod() (bf5d221)

Database

Eloquent ORM

  • ⚠️ Indicate soft deleted models as existing (#17613)
  • ⚠️ Added $localKey parameter to HasRelationships::belongsToMany() and BelongsToMany (#17903, 7c7c3bc)
  • ⚠️ Added $parentKey parameter to belongsToMany(), BelongsToMany and MorphToMany (#17915, #18380)
  • ⚠️ Renamed $parent property to $pivotParent in Pivot class (#17933, #18150)
  • ⚠️ Don't add _count suffix to column name when using withCount() with an alias (#17871)
  • ⚠️ Renamed $events to $dispatchesEvents (#17961, b6472bf, 3dbe12f)
  • ⚠️ Only return query builder when the result is null for callScope() (#18845)
  • Allow setting a factory's attribute to a factory instance (#18879)
  • Support null comparison in Model::is() (#18511)
  • Added getDirty() checks for date and castable attributes (#18400, e180e20)
  • Show method name in invalid relationship LogicException (#18749)
  • Add support for additional values in firstOrCreate() and firstOrNew() (#18878)
  • Added a second local key to HasManyThrough (#19114)
  • Respect casts declaration on custom pivot models (#19335)
  • Support creating relations without attributes (#19506)
  • Added Model::only() method (#19459)
  • ⚠️ Support model serialization on non default connection (#19521, dd45f70)
  • ⚠️ Support updating nullable dates (#19672)
  • ⚠️ Make pivot model instantiable (#20179)
  • Simplified BelongsToMany::allRelatedIds() logic (#20189)
  • Added Relation::get() method (#20052)
  • Added hasChanges(), wasChanged(), getChanges() and syncChanges() (#20129, #20130)
  • Better exception message when calling non existing methods on models (#20196, 91c1f03)
  • Added support for connections on model factories (#20191)
  • Check for real primary key in Pivot methods (8d82618)
  • Default $attributes on BelongsToMany::create() to empty array (973bff4)
  • Add ability to set a custom pivot accessor (#20411)
  • ⚠️ Call setConnection() in Model::save() (#20466)
  • ⚠️ Touch parent timestamp only if the model is dirty (#20489)
  • Added Model::loadMissing() method (#20630, 4166c12)

Encryption

  • Use openssl_cipher_iv_length() in Encrypter (#18684)
  • Added Encrypter::generateKey() method (6623996)
  • Use json_last_error() in Encrypter (#20099)

Errors & Logging

Events

Filesystem

  • ⚠️ Made Storage::files() work like Storage::allFiles() (#18874, 7073457)
  • ⚠️ Fixed compatibility between FilesystemAdapter and the Filesystem interface (#19389)

Helpers

  • Added report() helper (2b67619)
  • Added throw_if() and throw_unless() helpers (18bb4df, #19166, #19255)
  • Added dispatch_now() helper function (#18668, 61f2e7b)
  • Added $language parameter to str_slug() helper (#19011)
  • Added str_before() helper (#19940, #20049)
  • Handle lower case words better in as Str::snake() (#18764)
  • Removed usages of the with() helper (#17888)
  • Support multiple patterns in Str::is() (#20108)
  • Speed up Arr::get() calls without dot notations (#20139)
  • Use report() helper in mix() (#20603, bf0cb82)

Localization

  • ⚠️ Moved LoaderInterface to contracts (#20460)
  • ⚠️ Support loading JSON translation for packages (#20599, 573f85c)
  • Support language specific characters in Str (#18974, #19694)

Mail

  • Allow mailables to be rendered directly to views (d9a6dfa)
  • Allow for per-mailable theme configuration (b2c35ca)
  • ⚠️ Removed $data and $callback parameters from Mailer and MailQueue
  • ⚠️ Made Markdown a dependency of MailChannel (#19349)
  • ⚠️ Upgraded to SwiftMailer 6 (#19356)
  • ⚠️ Added to() and bcc() to Mailer contract (#19955)

Notifications

  • Added methods for Slack's thumb_url and unfurl_* options (#19150, #19200)
  • Support sending notifications via AnonymousNotifiable (#19998, ba82579)

Queues

  • Added support for chainable jobs (81bcb03, 94c01b1, 91f5357, 434245f, b880ad1, 6af6c8d)
  • ⚠️ Removed redundant $queue parameter from Queue::createPayload() (#17948)
  • Made all getQueue() methods public (#18501)
  • Pass connection and queue to Looping event (#19081)
  • ⚠️ Clone Job specific properties (#19123)
  • ⚠️ Declare missing abstract Job::getRawBody() method (#19677)
  • ⚠️ Fail (or optionally silently delete) job when model is missing during deserialization (44b1f85, bceded6)
  • Added CallQueuedListener::__clone() method (#20022)
  • Accept DatetimeInterface and DateInterval in queue (#20102, 92e2aff)
  • ⚠️ Use dispatch() instead of fire() (#20446)

Redis

  • ⚠️ Several improvements on PhpRedisConnection (#20269, #20316)
  • ⚠️ Removed PhpRedisConnection::proxyToEval() method (#17360)

Requests

  • ⚠️ Made Request::has() work like Collection::has() (#18715)
  • Added Request::filled() (#18715)
  • ⚠️ Made Request::only() work like Collection::only() (#18695)
  • Aliased Request::exists() to Request::has() (183bf16)
  • Allow passing keys to Request::all() to behave like old Request::only() (#18754)
  • ⚠️ Removed Request::intersect() (#18695)
  • Return request data from ValidatesRequests calls (#19033)
  • Added a validate() macro onto Request (#19063)
  • Added FormRequest::validated() method (#19112)
  • ⚠️ Made request() helper and Request::__get() consistent (a6ff272)
  • Made Request::routeIs() work like Request()::fullUrlIs() (#19267, bfc5321, #19334)
  • Added Request::hasAny() method (#19367)
  • ⚠️ Throw validation exception from ValidatesRequests without formatting response (#19929, 6d33675, ec88362, c264807)
  • Added Request::post() method (#20238)
  • Added Request::keys() method (#20611)

Routing

  • Support fluent resource options (#18767, bb02fb2)
  • Support multiple values in Router::has() (#18758)
  • ⚠️ Bind empty optional route parameter to null instead of empty model instance (#17521)
  • Accept patterns on Route::named(), Router::is() and Router::currentRouteNamed() (#19267, bfc5321)
  • Added domain() setter/getter to Route (#19245, bba04a1)
  • Added Route::redirect() method (#19794)
  • Added Route::view() method (#19835)
  • ⚠️ Improved ThrottleRequests middleware (#19807, #19860)
  • ⚠️ Return proper 304 responses (#19867)
  • Return the resource from Router::apiResource() (#20029)
  • ⚠️ Moved route model binding resolution logic to model (#20521, 370e626, #20542, #20618, d911fa8)
  • Accept string on parameters() and names() methods (#20531, #20529)

Responses

  • ⚠️ Ensure Arrayable and Jsonable return a JsonResponse (#17875)
  • ⚠️ Ensure Arrayable objects are also morphed by Response (#17868)
  • Added SameSite support to CookieJar (#18040, #18059, e69d722)
  • Accept HeaderBag in ResponseTrait::withHeaders() (#18161)
  • ⚠️ Reset response content-type in Response::setContent() (#18314, #20313)
  • ⚠️ Always retrieve the real original content (#20002)

Service Container

  • ⚠️ Refactored Container (#19201)
  • ⚠️ Made container PSR-11 compliant (#19822, a6068b0, 66325c2)
  • Return the bound instance from Container::instance() (#19442)

Session

  • ⚠️ Default value to true in Store::flash() (#18136)
  • ⚠️ Store the user password hash when logging in (#19843)

Task Scheduling

  • Fire before callbacks on closure-based scheduling events (#18861)
  • Run after-callbacks even if a callback event failed (#19573)
  • ⚠️ Fixed bug in quarterly() method (#19600)
  • ⚠️ Support passing boolean into when() and skip() (1d1a96e)

Testing

  • ⚠️ Switched to PHPUnit 6 (#17755, #17864)
  • ⚠️ Renamed authentication assertion methods (#17924, 494a177)
  • ⚠️ Unify database testing traits into RefreshDatabase trait (79c6f67, 0322e32, #20308)
  • ⚠️ Changed Blade tests namespace to Illuminate\Tests\View\Blade (#19675)
  • Added integration tests for the framework itself (182027d, #18438, #18780, #19001, #20073)
  • Allow disabling of specific middleware (#18673)
  • Added withoutExceptionHandling() method (a171f44)
  • Support inline eloquent factory states (#19060)
  • Allow assertSessionHasErrors() to look into different error bags (#19172, 4287ebc)
  • Ensure Redis is available in cache lock tests (#19791)
  • Skip tests if Memcached is not found (#20018)
  • ⚠️ Clear Carbon mock during tear down (#19934)
  • Added debug info to NotFoundHttpException in InteractsWithExceptionHandling (#20000)
  • Added MailFake::assertSentTimes(), QueueFake::assertPushedTimes() and BusFake::assertDispatchedTimes() methods (#20485, e657f6e)
  • Added queue assertions to MailFake (#20454)
  • Added assertNothingSent() and assertSentTimes() methods to NotificationFake (#20651)
  • Added Mockery expectations to the assertion count (#20606)
  • Fake the default storage disk by default (#20625)
  • Support sending default headers with requests (#20590, c32418e)

Validation

  • Added support for custom validation rule objects (#19155, 2aa5ea8)
  • Validate against DateTimeInterface instead of DateTime (#20110)
  • ⚠️ Made several method in ValidatesAttributes public (#20200)
  • ⚠️ Added errors() method to Validator interface (#20337)
  • Extend Exists and Unique rule from DatabaseRule class (#20563)
  • Added date_equals rule (#20646)

Views

  • ⚠️ Camel case variables names passed to views (#18083)
  • Added pagination template for Semantic UI (#18463)
  • Allow easier ViewFactory overriding (#20205, 56f103c)