Skip to content

Latest commit

 

History

History
484 lines (347 loc) · 39.2 KB

CHANGELOG-8.x.md

File metadata and controls

484 lines (347 loc) · 39.2 KB

Release Notes for 8.x

Added

  • Added Illuminate\Http\Client\Factory::assertSentInOrder() (#35525, d257ce2, 2fd1411)
  • Added Illuminate\Http\Client\Response::handlerStats() (#35520)
  • Added support for attaching existing model instances in factories (#35494)
  • Added assertChained() and assertDispatchedWithoutChain() methods to Illuminate\Support\Testing\Fakes\BusFake class (#35523, f1b8cac, 236c67d)
  • Allow testing of html and plain text bodies right off mailables (afb858a, b7391e4)

Fixed

  • Fixed Application flush method (#35482)
  • Fixed mime validation for jpeg files (#35518)

Revert

Added

  • Added Illuminate\Database\Eloquent\Relations\BelongsToMany::orderByPivot() (#35455, 6f83a50)

Fixed

  • Fixed an issue with the database queue driver (#35449)

Added

Fixed

  • Fix issue with polymorphic morphMaps with literal 0 (#35364)
  • Fixed Self-Relation issue in withAggregate method (#35392, aec5cca, #35394)
  • Fixed Use PHP_EOL instead of \n in PendingCommand (#35409)
  • Fixed validating image/jpeg images after Symfony/Mime update (#35419)
  • Fixed fail to morph with custom casting to objects (#35420)
  • Fixed Illuminate\Collections\Collection::sortBy() (307f6fb)
  • Don't overwrite minute and hour when specifying a time with twiceMonthly() (#35436)

Changed

  • Make DownCommand retryAfter available to prerendered view (#35357, b1ee97e)
  • Set default value on cloud driver (0bb7fe4)
  • Update Tailwind pagination focus styles (#35365)
  • Redis: allow to pass connection name (#35402)
  • Change Wormhole to use the Date Factory (#35421)

Fixed

  • Fixed reflection exception in Illuminate\Routing\Router::gatherRouteMiddleware() (c6e8357)

Added

  • Added Illuminate\Console\Concerns\InteractsWithIO::withProgressBar() (4e52a60, 169fd2b)
  • Added Illuminate\Console\Concerns\CallsCommands::callSilently() as alias for callSilent() (7f3101b, 0294433)
  • Added option to release unique job locks before processing (#35255, b53f13e)
  • Added ably broadcaster (e0f3f8e, 6381aa9)
  • Added ability to define table name as default morph type (#35257)
  • Allow overriding the MySQL server version for database queue driver (#35263)
  • Added Illuminate\Foundation\Testing\Wormhole::back() (#35261)
  • Support delaying notifications per channel (#35273)
  • Allow sorting on multiple criteria (#35277, 53eb307)
  • Added Illuminate/Database/Console/DbCommand.php command (#35304, b559b3e)
  • Added Collections splitIn methods (#35295)

Fixed

  • Fixed rendering of notifications with config custom theme (325a335)
  • Fixing BroadcastException message in PusherBroadcaster@broadcast (#35290)
  • Fixed generic DetectsLostConnection string (#35323)
  • Fixed SQL Server command generation (#35317)
  • Fixed route model binding on cached closure routes (eb3e262)

Changed

  • Disable CSRF on broadcast route (acb4b77)
  • Easily set a null cache driver (#35262)
  • Updated aws/aws-sdk-php suggest to ^3.155 (#35267)
  • Ensure ShouldBeUniqueUntilProcessing job lock is released once (#35270)
  • Rename qualifyColumn to qualifyPivotColumn in BelongsToMany & MorphToMany (#35276)
  • Check if AsPivot trait is used instead of Pivot Model in Illuminate\Database\Eloquent\Relations\BelongsToMany (#35271)
  • Avoid no-op database query in Model::destroy() with empty ids (#35294)
  • Use --no-owner and --no-acl with pg_restore (#35309)

Added

  • Added lock support for file and null cache drivers (#35139, a345185)
  • Added a doesntExpectOutput method for console command testing (#35160, c90fc5f)
  • Added support of MorphTo relationship eager loading constraints (#35190)
  • Added Illuminate\Http\ResponseTrait::withoutCookie() (e9483c4)
  • Use dynamic app namespace in Eloquent Factory instead of App\ string (#35204, 4885bd2)
  • Added read / unread scopes to database notifications (#35215)
  • Added classBasename() method to Stringable (#35219)
  • Added before resolving callbacks to container (#35228)
  • Adds the possibility of testing file upload content (#35231)
  • Added lost connection messages for MySQL persistent connections (#35224)
  • Added Support DBAL v3.0 (#35236)

Fixed

  • Update MySqlSchemaState.php to support MariaDB dump (#35184)
  • Fixed pivot and morphpivot fresh and refresh methods (#35193)
  • Fixed pivot restoration (#35218)

Changed

  • Updated EmailVerificationRequest.php to check if user is not already verified (#35174)
  • Make Validator::parseNamedParameters() public (#35183)
  • Ignore max attempts if retryUntil is set in queue:work (#35214)
  • Explode string channels on Illuminate/Log/LogManager::createStackDriver() (e5b86f2)

Added

  • Added ability to dispatch unique jobs (#35042, 2123e60)
  • Added Model::encryptUsing() (#35080)
  • Added support to MySQL dump and import using socket (#35083, c43054b)
  • Allow custom broadcastWith in notification broadcast channel (#35142)
  • Added Illuminate\Routing\CreatesRegularExpressionRouteConstraints::whereAlphaNumeric() (#35154)

Fixed

  • Fixed typo in make:seeder command name inside ModelMakeCommand (#35107)
  • Fix SQL Server grammar for upsert (missing semicolon) (#35112)
  • Respect migration table name in config when dumping schema (110eb15)
  • Respect theme when previewing notification (ed4411d)
  • Fix appendable attributes in Blade components (#35131)
  • Remove decrypting array cookies from cookie decrypting (#35130)
  • Turn the eloquent collection into a base collection if mapWithKeys loses models (#35129)

Changed

  • Move dispatching of DatabaseRefreshed event to fire before seeders are run (#35091)
  • Handle returning false from reportable callback (55f0b5e)
  • Update Illuminate\Database\Schema\Grammars\MySqlGrammar::typeTimestamp() (#35143)
  • Remove expectedTables after converting to expectedOutput in PendingCommand (#35163)
  • Change SQLite schema command environment variables to work on Windows (#35164)

Added

  • Added loadMax() | loadMin() | loadSum() | loadAvg() methods to Illuminate\Database\Eloquent\Collection. Added loadMax() | loadMin() | loadSum() | loadAvg() | loadMorphMax() | loadMorphMin() | loadMorphSum() | loadMorphAvg() methods to Illuminate\Database\Eloquent\Model (#35029)
  • Modify Illuminate\Database\Eloquent\Concerns\QueriesRelationships::has() method to support MorphTo relations (#35050)
  • Added Illuminate\Support\Stringable::chunk() (#35038)

Fixed

  • Fixed a few issues in Illuminate\Database\Eloquent\Concerns\QueriesRelationships::withAggregate() (#35061, #35063)

Changed

  • Set chain queue | connection | delay only when explicitly configured in (#35047)

Refactoring

  • Remove redundant unreachable return statements in some places (#35053)

Fixed

  • Fixed Illuminate\Database\Eloquent\Concerns\QueriesRelationships::withAggregate() (20b0c6e)

Fixed

Fixed

  • Fixed alias usage in Eloquent (6091048)
  • Fixed Illuminate\Support\Reflector::isCallable() (a90f344)

Added

  • Added ability to create observers with custom path via make:observer command (#34911)
  • Added Illuminate\Database\Eloquent\Factories\Factory::lazy() (#34923)
  • Added ability to make cast with custom stub file via make:cast command (#34930)
  • ADDED: Custom casts can implement increment/decrement logic (#34964)
  • Added encrypted Eloquent cast (#34937, #34948)
  • Added DatabaseRefreshed event to be emitted after database refreshed (#34952, f31bfe2)
  • Added withMax()|withMin()|withSum()|withAvg() methods to Illuminate/Database/Eloquent/Concerns/QueriesRelationships (#34965, f4e4d95, #35004)
  • Added explain() to Query\Builder and Eloquent\Builder (#34969)
  • Make multiple_of validation rule handle non-integer values (#34971)
  • Added setKeysForSelectQuery method and use it when refreshing model data in Models (#34974)
  • Full PHP 8.0 Support (#33388)
  • Added Illuminate\Support\Reflector::isCallable() (#34994, 8c16891, 31917ab, 11cfa4d, #34999)
  • Added route regex registration methods (#34997, 3d405cc, c2df0d5)
  • Added dontRelease option to RateLimited and RateLimitedWithRedis job middleware (#35010)

Fixed

  • Fixed check of file path in Illuminate\Database\Schema\PostgresSchemaState::load() (268237f)
  • Fixed: PhpRedis (v5.3.2) cluster - set default connection context to null (#34935)
  • Fixed Eloquent Model loadMorph and loadMorphCount methods (#34972)
  • Fixed ambigious column on many to many with select load (5007986)
  • Fixed Postgres Dump (#35018)

Changed

  • Changed make:factory command (#34947, 4f38176)
  • Make assertSee, assertSeeText, assertDontSee and assertDontSeeText accept an array (#34982, 2b98bcc)

Revert

Fixed

Added

  • Added job middleware to prevent overlapping jobs (#34794, eed05b4)
  • Bring Rate Limiters to Jobs (#34829, ae00294)
  • Added multiple_of custom replacer in validator (#34858)
  • Preserve eloquent collection type after calling ->fresh() (#34848)
  • Provisional support for PHP 8.0 for 6.x (Changed some code in 8.x) (#34884, 28bb76e)

Fixed

  • Fixed fresh() and refresh() on pivots and morph pivots (#34836)
  • Fixed config batching typo (#34852)
  • Fixed Illuminate\Queue\Console\RetryBatchCommand for un-found batch id (#34878)

Changed

  • Change loadRoutesFrom() to accept group $attributes (#34866)

Added

  • Allow for chains to be added to batches (#34612, 7b4a9ec)
  • Added is() method to 1-1 relations for model comparison (#34693, 7ba2577)
  • Added upsert() to Eloquent and Base Query Builders (#34698, #34712, 58a0e1b)
  • Support psql and pg_restore commands in schema load (#34711)
  • Added Illuminate\Database\Schema\Builder::dropColumns() method on the schema class (#34720)
  • Added yearlyOn() method to scheduler (#34728)
  • Added restrictOnDelete() method to ForeignKeyDefinition class (#34752)
  • Added newLine() method to InteractsWithIO trait (#34754)
  • Added isNotEmpty() method to HtmlString (#34774)
  • Added delay() to PendingChain (#34789)
  • Added "multiple_of" validation rule (#34788)
  • Added custom methods proxy support for jobs dispatch() (#34781)
  • Added QueryBuilder::clone() (#34780)
  • Support bus chain on fake (a952ac24)
  • Added missing force flag to queue:clear command (#34809)
  • Added dropConstrainedForeignId() to `Blueprint (#34806)
  • Implement supportsTags() on the Cache Repository (#34820)
  • Added canAny to user model (#34815)
  • Added when() and unless() methods to MailMessage (#34814)

Fixed

  • Fixed collection wrapping in BelongsToManyRelationship (9245807)
  • Fixed LengthAwarePaginator translations issue (#34714)

Changed

  • Improve schedule:work command (#34736, bbddba2)
  • Guard against invalid guard in make:policy (#34792)
  • Fixed router inconsistency for namespaced route groups (#34793)

Added

  • Added support times() with raw() from Illuminate\Database\Eloquent\Factories\Factory (#34667)
  • Added Illuminate\Pagination\AbstractPaginator::through() (#34657)
  • Added extendsFirst() method similar to includesFirst() to view (#34648)
  • Allowed Illuminate\Http\Client\PendingRequest::attach() method to accept many files (#34697, 1bb7ad6)
  • Allowed serializing custom casts when converting a model to an array (#34702)

Fixed

  • Added missed RESET_THROTTLED constant to Password Facade (#34641)
  • Fixed queue clearing when blocking (#34659)
  • Fixed missing import in TestView.php (#34677)
  • Use getRealPath to ensure console command class names are generated correctly in Illuminate\Foundation\Console\Kernel (#34653)
  • Added pg_dump --no-owner and --no-acl to avoid owner/permission issues in Illuminate\Database\Schema\PostgresSchemaState::baseDumpCommand() (#34689)
  • Fixed queue:failed command when Class not exists (#34696)

Performance

  • Increase performance of Str::before() by over 60% (#34642)

Added

  • Proxy URL Generation in VerifyEmail (#34572)
  • Added Illuminate\Collections\Traits\EnumeratesValues::pipeInto() (#34600)
  • Added Illuminate\Http\Client\PendingRequest::withUserAgent() (#34611)
  • Added schedule:work command (#34618)
  • Added support for appendable (prepends) component attributes (09b887b, 53fbc9f)

Fixed

  • Fixed Illuminate\Http\Client\Response::throw() (#34597)
  • Fixed breaking change in migrate command (b2a3641)

Changed

  • Changing the dump and restore method for a PostgreSQL database (#34293)

Fixed

Added

  • Added tg:// protocol in "url" validation rule (#34464)
  • Allow dynamic factory methods to obey newFactory method on model (#34492, 4708e9e)
  • Added no-reload option to serve command (9cc2622)
  • Added perHour() and perDay() methods to Illuminate\Cache\RateLimiting\Limit (#34530)
  • Added Illuminate\Http\Client\Response::onError() (#34558, d034e2c)
  • Added X-Message-ID to Mailgun and Ses Transport (#34567)

Fixed

  • Fixed incompatibility with Lumen route function in Illuminate\Session\Middleware\StartSession (#34491)
  • Fixed: Eager loading MorphTo relationship does not honor each models $keyType (#34531, c3f44c7)
  • Fixed translation label ("Pagination Navigation") for the Tailwind blade (#34568)
  • Fixed save keys on increment / decrement in Model (77db028)

Changed

  • Allow modifiers in date format in Model (#34507)
  • Allow for dynamic calls of anonymous component with varied attributes (#34498)
  • Cast Expression as string so it can be encoded (#34569)

Added

  • Added Illuminate\Collections\LazyCollection::takeUntilTimeout() (0aabf24)
  • Added --schema-path option to migrate:fresh command (#34419)

Fixed

  • Fixed problems with dots in validator (#34355)
  • Maintenance mode: Fix empty Retry-After header (#34412)
  • Fixed bug with error handling in closure scheduled tasks (#34420)
  • Don't double escape on ComponentTagCompiler.php (12ba0d9)
  • Fixed mysqldump: unknown variable 'column-statistics=0 for MariaDB schema dump (#34442)

Added

  • Allow clearing an SQS queue by queue:clear command (#34383, de811ea)
  • Added Illuminate\Foundation\Auth\EmailVerificationRequest (4bde31b)
  • Auto handle Jsonable values passed to castAsJson() (#34392)
  • Added crossJoinSub() method to the query builder (#34400)
  • Added Illuminate\Session\Store::passwordConfirmed() (fb3f45a)

Changed

  • Check for view existence first in Illuminate\Mail\Markdown::render() (5f78c90)
  • Guess the model name when using the make:factory command (#34373)

Added

Fixed

  • Fixed minimal.blade.php (#34379)
  • Don't double escape on ComponentTagCompiler.php (ec75487)
  • Fixed dots in attribute names in DynamicComponent (2d1d962)

Changed

  • Show warning when view exists when using artisan make:component (#34376, 0ce75e0)
  • Call the booting/booted callbacks from the container (#34370)

Added

  • Added Illuminate\Foundation\Testing\Concerns\InteractsWithDatabase::castAsJson() (#34302)
  • Handle array hosts in Illuminate\Database\Schema\MySqlSchemaState (0920c23)
  • Added Illuminate\Pipeline\Pipeline::setContainer() (#34343)
  • Allow including a closure in a queued batch (#34333)

Fixed

Changed

  • Bumped minimum vlucas/phpdotenv version (#34336)
  • Pass an instance of the job to queued closures (#34350)

Added

  • Added Illuminate\Database\Eloquent\Factories\HasFactory::newFactory() (4a95372, a2cea84)

Fixed

  • Do not used now helper in Illuminate/Cache/DatabaseLock::expiresAt() (#34262)
  • Change placeholder in Illuminate\Database\Schema\MySqlSchemaState::load() (#34303)
  • Fixed bug in dynamic attributes Illuminate\View\ComponentAttributeBag::setAttributes() (93f4613)
  • Fixed Illuminate\View\ComponentAttributeBag::whereDoesntStartWith() (#34329)
  • Fixed Illuminate\Routing\Middleware\ThrottleRequests::handleRequestUsingNamedLimiter() (#34325)

Changed

  • Create Faker when a Factory is created (#34298)

Added

  • Added Illuminate\Database\Eloquent\Factories\Factory::raw() (#34278)
  • Added Illuminate\Database\Eloquent\Factories\Factory::createMany() (#34285, 69072c7)
  • Added the Countable interface to AssertableJsonString (#34284)

Fixed

  • Fixed the new maintenance mode (#34264)

Changed

  • Optimize command can also cache view (#34287)

Changed

  • Allow Illuminate\Collections\Collection::implode() when instance of Stringable (#34271)

Fixed

  • Fixed DatabaseUuidFailedJobProvider::find() job record structure (#34251)
  • Cast linkCollection to array in JSON pagination responses (#34245)
  • Change the placeholder of schema dump according to symfony placeholder in MySqlSchemaState::dump() (#34261)
  • Fixed problems with dots in validator (8723739)

Added

  • Added links property to JSON pagination responses (13751a1)

Fixed

  • Fixed bugs with factory creation in FactoryMakeCommand (c7186e0)

Revert

Changed

  • Update Illuminate\Database\Schema\MySqlSchemaState::executeDumpProcess() (#34233)

Added

  • Support array syntax in Illuminate\Routing\Route::uses() (f80ba11)

Fixed

  • Fixed BatchRepositoryFake TypeError (#34225)
  • Fixed dynamic component bug (4b1e317)

Changed

  • Give shadow a rounded edge to match content in tailwind.blade.php (#34198)
  • Pass the request to the renderable callback in Illuminate\Foundation\Exceptions\Handler::render() (#34200)
  • Update Illuminate\Database\Schema\MySqlSchemaState (d67be130, c87794f)
  • Respect local env in Illuminate\Foundation\Console\ServeCommand::startProcess() (75e792d)

Check the upgrade guide in the Official Laravel Upgrade Documentation. Also you can see some release notes in the Official Laravel Release Documentation.