Release Notes for 9.x
Added
- Added closure based exceptions testing (#42155)
- Allow forcing requests made via the Http client to be faked (#42230)
- Added 'throwIf' method to PendingRequest (#42260)
- Allow passing key/value arrays to getArguments and getOptions (#42268)
- Add whereNotMorphedTo, orWhereNotMorphedTo (#42264)
- Add method to extend localeArray generation (#42275)
- Added ability to set delay per channel based on notifiable instance (#42239)
- Added Illuminate/Pagination/CursorPaginator::onLastPage() (#42301)
- Added findOr method to Query/Builder (#42290)
Fixed
- Fix too many channels with pusher broadcasting (#42287)
- Fix Str::Mask() for repeating chars (#42295)
- Fix EventFake::assertListening() for asserting string-based observer listeners (#42289)
- Fixed Loose comparison causes the value not to be saved (#41337)
- Fix multiple dots for digits_between rule (#42330)
Changed
- Enable to modify HTTP Client request headers when using beforeSending() callback (#42244)
- Make throttle lock acquisition retry configurable for concurrency limiter (#42242)
- Defers expanding callables on Factories (#42241)
- Add wherehas soft deleting scopes (#42100)
- Improve password checks (#42248)
- Set relation parent key when using forceCreate on HasOne and HasMany relations (#42281)
- Make sure the prefix override behaviours are the same between phpredis and predis drivers (#42279)
- Share logging context across channels and stacks (#42276)
Added
- Added Illuminate/Collections/Arr::join() (#42197)
- Added has and missing methods to ValidatedInput (#42184)
- Added deprecation stack trace config option (#42235)
Fixed
- Fix deprecation issue with translator and empty rules (#42216, #42213)
Changed
- Improve EventFake::assertListening() support for subscribers (#42193)
Revert
Added
- Add the ability to use alias when performing upsert via MySQL (#42053)
- Illuminate/Routing/Router::middlewareGroup() will support array of the middlewares (#42004, e6b84fb)
- Added Missing AsCommand attribute on schedule:list (#42069)
- Add the beforeRefreshingDatabase function to the Testing/RefreshDatabase trait (#42073)
- Added doesntExpectOutputToContain assertion method (#42096)
- Added a findOr method to Eloquent (#42092)
- Allow extension in
Illuminate/View/Compilers/Compiler.php (68e41fd)
- Support 'IS' and 'IS NOT' PostgreSQL operators (#42123)
- Added
str and string methods to Illuminate/Http/Concerns/InteractsWithInput (c9d34b7)
- Added methods to append and prepend jobs to existing chain (#42138)
Fixes
- Make it so non-existent jobs run down the failed path instead of crashing (#42079)
- Fix schedule:work command Artisan binary name (#42083)
- Fix TrimStrings middleware with non-UTF8 characters (#42065)
- Copy locale and defaultLocale from original request in Request::createFrom() (#42080)
- Fix ViewErrorBag for JSON session serialization (#42090)
- Fix array keys from cached routes in CompiledRouteCollection::getRoutesByMethod() (#42078)
- Fix json_last_error issue with JsonResponse::setData (#42125)
- Fix bug in BelongsToMany where non-related rows are returned (#42087)
- Fix HasAttributes::mutateAttributeForArray when accessing non-cached attribute (#42130)
Changed
- Make password rule errors translatable (#42060)
- Redesign of the event:list Command. (#42068)
- Changed event:list command (#42084)
- Throw LostDbConnectionException instead of LogicException (#42102)
- Throw deadlock exception (#42129)
- Support Arr::forget() for nested ArrayAccess objects (#42142)
- Allow Illuminate/Collections/Enumerable::jsonSerialize() to return other types (#42133)
- Update schedule:list colouring output (#42153
v9.9.0 - 2022-04-19
Added
- Add getAllTables support for SQLite and SQLServer schema builders (#41896)
- Added withoutEagerLoads() method to Builder (#41950)
- Added 'throw' method to PendingRequest (#41953)
- Configurable pluralizer language and uncountables (#41941)
Fixed
- Fixed Error in Illuminate/Routing/Exceptions/StreamedResponseException (#41955)
- Fix PHP warnings when rendering long blade string (#41956)
- Fix ExcludeIf regression to use Closure over is_callable() (#41969)
- Fixes applying replacements to multi-level localization arrays (#42022)
Changed
- Improved Illuminate/Foundation/Http/Middleware/TrimStrings.php and Str::squish() (#41949, #41971)
- Use config session domain for maintenance cookie (#41961)
- Revert lazy command forcing (#41982)
v9.8.1 - 2022-04-12
Reverted
- Revert "Standardize withCount() & withExists() eager loading aggregates (#41943)
v9.8.0 - 2022-04-12
Added
- Added inbound option to CastMakeCommand (#41838)
- Added a way to retrieve the first column of the first row from a query (#41858)
- Make DatabaseManager Macroable (#41868)
- Improve Str::squish() (#41877, #41924)
- Added option to disable cached view (#41859)
- Make Connection Class Macroable (#41865)
- Added possibility to discover anonymous Blade components in other folders (#41637)
- Added
Illuminate/Database/Eloquent/Factories/Factory::set() (#41890)
- Added multibyte support to string padding helper functions (#41899)
- Allow to use custom log level in exception handler reporting (#41925)
Fixed
- Illuminate/Support/Stringable::exactly() with Stringable value (#41846)
- Fixed afterCommit and RefreshDatabase (#41782)
- Fix null name for email address in
Illuminate/Mail/Message (#41870)
- Fix seeder property for in-memory tests (#41869)
- Fix empty paths for server.php (#41933)
- Fix ExcludeIf constructor (#41931)
Changed
- Set custom host to the serve command with environment variable (#41831)
- Add handling of object being passed into old method in Model (#41842)
- Catch permission exception when creating directory (#41871)
- Restore v8 behaviour of base query for relations (#41918, #41923)
- Standardize withCount() & withExists() eager loading aggregates (#41914)
v9.7.0 - 2022-04-05
Added
- Make whereBelongsTo accept Collection (#41733)
- Database queries containing JSON paths support array index braces (#41767)
- Fire event before route matched (#41765)
- Added to
Illuminate/Http/Resources/ConditionallyLoadsAttributes::whenNotNull method (#41769)
- Added "whereIn" route parameter constraint method (#41794)
- Added
Illuminate/Queue/BeanstalkdQueue::bulk() (#41789)
- Added
Illuminate/Queue/SqsQueue::bulk() (#41788)
- Added String::squish() helper (#41791)
- Added query builder method whereJsonContainsKey() (#41802)
- Enable dispatchAfterResponse for batch (#41787)
Fixed
- Factory generation fixes (#41688)
- Fixed Http Client throw boolean parameter of retry method (#41762, #41792)
- Ignore empty redis username string in PhpRedisConnector (#41773)
- Fixed support of nullable type for AsArrayObject/AsCollection (#41797, 05846e7)
- Fixed adding jobs from iterable to the pending batch (#41786)
- Http client: fix retry handling of connection exception (#41811)
Changed
- Enable batch jobs delay for database queue (#41758)
- Enable batch jobs delay for redis queue (#41783)
- Http client: dispatch "response received" event for every retry attempt (#41793)
- Http Client: provide pending request to retry callback (#41779)
- Allow non length limited strings and char for postgresql (#41800)
- Revert some Carbon::setTestNow() removals (#41810)
- Allow cleanup of databases when using parallel tests (#41806)
v9.6.0 - 2022-03-29
Added
- Added whenTableHasColumn and whenTableDoesntHaveColumn on Schema Builder (#41517)
- Added Illuminate/Mail/Mailable::hasSubject() (#41575)
- Added
Illuminate/Filesystem/Filesystem::hasSameHash() (#41586)
Fixed
- Fixed deprecation warning in
Str::exists() (d39d92d)
- Fix artisan make:seeder command nested namespace and class name problem (#41534)
- Fixed Illuminate/Redis/Connections/PhpRedisConnection::handle() (#41546)
- Stop throwing LazyLoadingViolationException for recently created model instances (#41549)
- Close doctrineConnection on disconnect (#41584)
Changed
- Make throttle lock acquisition retry time configurable (#41516)
- Allows object instead of array when adding to PendingBatch (#41475)
- Exactly match scheduled command --name in schedule:test (#41528)
- Handle Symfony defaultName deprecation (#41555, #41595)
- Improve ScheduleListCommand (#41552, #41535, #41494)
- Remove useless if statement in Str::mask() (#41570)
v9.5.1 - 2022-03-15
Reverted
- Revert "Fix the guard instance used." (#41491)
v9.5.0 - 2022-03-15
Added
- Added callback support on implode Collection method. (#41405)
- Added
Illuminate/Filesystem/FilesystemAdapter::assertDirectoryEmpty() (#41398)
- Implement email "metadata" for SesTransport (#41422)
- Make assertPath() accepts Closure (#41409)
- Added callable support to operatorForWhere on Collection (#41414, #41424)
- Added partial queue faking (#41425)
- Added --name option to schedule:test command (#41439)
- Define
Illuminate/Database/Eloquent/Concerns/HasRelationships::newRelatedThroughInstance() (#41444)
- Added
Illuminate/Support/Stringable::wrap() (#41455)
- Adds "freezeTime" helper for tests (#41460)
- Allow for callables with beforeSending in
Illuminate/Http/Client/PendingRequest.php::runBeforeSendingCallbacks() (#41489)
Fixed
- Fixed deprecation warnings from route:list when filtering on name or domain (#41421)
- Fixes HTTP::pool response when a URL returns a null status code (#41412)
- Fixed recaller name resolution in
Illuminate/Session/Middleware/AuthenticateSession.php (#41429)
- Fixed the guard instance used in /Illuminate/Session/Middleware/AuthenticateSession.php (#41447)
- Fixed route:list --except-vendor hiding Route::view() & Route::redirect() (#41465)
Changed
- Add null typing to connection property in \Illuminate\Database\Eloquent\Factories\Factory (#41418)
- Update reserved names in GeneratorCommand (#41441)
- Redesign php artisan schedule:list Command (#41445)
- Extend eloquent higher order proxy properties (#41449)
- Allow passing named arguments to dynamic scopes (#41478)
- Throw if tag is passed but is not supported in
Illuminate/Encryption/Encrypter.php (#41479)
- Update PackageManifest::$vendorPath initialisation for cases, when composer vendor dir is not in project director (#41463)
v9.4.1 - 2022-03-08
Fixed
v9.4.0 - 2022-03-08
Added
- Support modifying a char column type (#41320)
- Add "Mutex" column to 'schedule:list' command (#41338)
- Allow eloquent whereNot() and orWhereNot() to work on column and value (#41296)
- Allow VerifyCsrfToken's CSRF cookie to be extended (#41342)
- Added
soleValue() to query builder (#41368)
- Added
lcfirst() to Str and Stringable (#41384)
- Added retryUntil method to queued mailables (#41393)
Fixed
- Fixed middleware sorting for authenticating sessions (50b46db)
- Fixed takeUntilTimeout method of LazyCollection (#41354, #41370)
- Fixed directory for nested markdown files for mailables (#41366)
- Prevent serializing default values of queued jobs (#41348)
- Fixed get() and head() in
Illuminate/Http/Client/PendingRequest.php (a54f481)
Changed
- Don't use global tap helper (#41326)
- Allow chaining of
Illuminate/Console/Concerns/InteractsWithIO::newLine (#41327)
- set destinations since bcc missing from raw message in Mail SesTransport (8ca43f4)
v9.3.1 - 2022-03-03
Added
Changed
Fixed
Added
Fixed
- Query PostgresBuilder fixes for renamed config 'search_path' by @derekmd (#41215)
- Improve doctypes for Eloquent Factory guessing methods by @bastien-phi (#41245)
- Fix Conditional::when and Conditional::unless when called with invokable by @bastien-phi (#41270)
- Improves Support\Collection reduce method type definition by @fdalcin (#41272)
- Fix inconsistent results of firstOrNew() when using withCasts() by @Attia-Ahmed (#41257)
- Fix implicitBinding and withTrashed route with child with no SoftDeletes trait by @stein-j (#41282)
Changed
Added
- Added
Illuminate/Database/Eloquent/Casts/Attribute::make() (#41014)
- Added
Illuminate/Collections/Arr::keyBy() (#41029)
- Added expectsOutputToContain to the PendingCommand. (#40984)
- Added ability to supply HTTP client methods with JsonSerializable instances (#41055)
- Added
Illuminate/Filesystem/AwsS3V3Adapter::getClient() (#41079)
- Added Support for enum in Builder::whereRelation (#41091)
- Added X headers when using Mail::alwaysTo (#41101)
- Added of support Bitwise operators in query (#41112)
- Integrate Laravel CORS into framework (#41137)
- Added
Illuminate/Support/Str::betweenFirst() (#41144)
- Allow specifiying custom messages for Rule objects (#41145)
Fixed
- Fixed Queue Failed_jobs insert issue with Exception contain UNICODE (#41020)
- Fixes attempt to log deprecations on mocks (#41057)
- Fixed loadAggregate not correctly applying casts (#41050)
- Do not transform JsonSerializable instances to array in HTTP client methods (#41077)
- Fix parsing config('database.connections.pgsql.search_path') (#41088)
- Eloquent: firstWhere returns Object instead of NULL (#41099)
- Fixed updated with provided qualified updated_at (#41133)
- Fix setPriority Call for MailChannel (#41120)
- Fixed route:list command output (#41177)
- Fix database migrations $connection property (#41161)
Changed
- Cursor pagination: convert original column to expression (#41003)
- Cast $perPage to integer on Paginator (#41073)
- Restore S3 client extra options (#41097)
- Use
latest() within notifications() in Illuminate/Notifications/HasDatabaseNotifications.php (#41095)
- Remove duplicate queries to find batch (#41121)
- Remove redundant check in FormRequest::validated() (#41115)
- Illuminate/Support/Facades/Storage::fake() changed (#41113)
- Use coalesce equal as provided by PHP >= 7.4 (#41174)
- Simplify some conditions with is_countable() (#41168)
- Pass AWS temporary URL options to createPresignedRequest method (#41156)
- Let Multiple* exceptions hold the number of records and items found (#41164)
Added
Changed
Fixed
Added
Changed
Fixed
Changed
Fixed
Check the upgrade guide in the Official Laravel Upgrade Documentation. Also you can see some release notes in the Official Laravel Release Documentation.