Skip to content

Latest commit

 

History

History
174 lines (151 loc) · 22.3 KB

CHANGELOG-5.4.md

File metadata and controls

174 lines (151 loc) · 22.3 KB

Release Notes for 5.4.x

[Unreleased]

General

  • Added real-time facades 😈 (feb52bf)
  • Added support for PhpRedis (#15160, 01ed1c8, 1ef8b9c)
  • Added support for multiple Redis clusters (#16696, 464075d)
  • Added retry() helper (e3bd359, 52e9381)
  • Added default 503 error page into framework (855a8aa, #16848)
  • Added Encrypter::encryptString() to bypass serialization (9725a8e)
  • Support wildcards in MessageBag::first() (#15217)
  • Support implicit keys in MessageBag::first() and MessageBag::first() (#17001)
  • Removed compiled class file generation and deprecated ServiceProvider::compiles() (#17003, 733d829)
  • Renamed DetectEnvironment to LoadEnvironmentVariables (c36874d)

Authentication

  • Secured password reset tokens against timing attacks and compromised databases (#16850, 9d674b0)
  • Refactored authentication component (7b48bfc, 5c4541b)
  • Switched to components for auth view subs (78891d5)
  • 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

Broadcasting

  • Added model binding in broadcasting channel definitions (#16120, 515d97c)

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)
  • Added Collection::every() method (#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)

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)

Events

  • Allow queued handlers to specify their queue and connection (fedd4cd)
  • Converted locale.changed event into LocaleUpdated class (3385fdc)
  • Unified wording (2dcde69)

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 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)

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)

Queue

Routing

Testing

Translations

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)