Upgrading laravel/framework 5 to 6
Breakingv5.8.38 → v6.20.45Breaking4Security15Platform3Deprecated1New113Changed119Fixed205Other14
SecurityHigh · CVSS 0.0Laravel environment manipulation via query stringGHSA-gv7v-rgg6-548h · CVE-2024-52301 ↗
BreakingUpgrade verdict
4 breaking changes and 3 platform requirement changes and 15 security fixes.
In plain terms
- Removes strval from Illuminate/Validation/ValidationRuleParser::explodeWildcardRules().
- Validation rules that relied on undocumented dotted keys no longer work.
- The setRawAttribute method added earlier is removed again, so code using it will break.
- Code that catches InvalidArgumentException from route() must now catch a different exception type.
Must act Top 5 of 23 that need code or config changes
laravel/framework publishes an official migration guide for version 6. It covers more than the release notes do.
Official Laravel Documentation ↗PHP requirement changed in v6.20.0: ^7.1.3 → ^7.2.5|^8.0.
What you must change
Breaking4
Removes strval from Illuminate/Validation/ValidationRuleParser::explodeWildcardRules().
Illuminate/Validation/ValidationRuleParser::explodeWildcardRules()strvalRemoves undocumented dot keys support in validators.
Reverts the previously added Model::setRawAttribute().
Model::setRawAttribute()UrlGenerator::route() now throws Symfony RouteNotFoundException instead of InvalidArgumentException.
UrlGenerator::route()Symfony\Component\Routing\Exception\RouteNotFoundExceptionInvalidArgumentExceptionSecurity15
Laravel environment manipulation via query string
High · CVSS 0.0Laravel Framework Deserialization Vulnerability
Critical · CVSS 9.8Laravel Framework XSS in Blade templating engine
Moderate · CVSS 6.1laravel framework SQL Injection via limit and offset functions
HighSQL Server LIMIT / OFFSET SQL Injection in laravel/framework and illuminate/database
Highlaravel framework Unexpected database bindings via requests
HighUnexpected database bindings
High · CVSS 7.2Query Binding Exploitation
High · CVSS 7.2Improper Input Validation in Laravel
High · CVSS 7.5Laravel Guard bypass in Eloquent models
ModerateUpdates cookie encryption in the framework.
Laravel RCE vulnerability in "cookie" session driver
Critical · CVSS 9.9Updates cookie encryption.
Prevents insecure characters in locale.
Fixes a password reset security issue.
Platform3
Bumps the minimum PHP version to v7.2.5.
Adds provisional support for PHP 8.0.
Adds support for PHP 8's reflection API.
Deprecations to plan for
Deprecated1
Deprecates PendingMail::sendNow() and removes an unneeded check.
PendingMail::sendNow()API changes
Generated by DepDelta from published PHP source. Not mixed with prose notes.
- added:
method AuthManager.hasResolvedGuards() - added:
method MustVerifyEmail.getEmailForVerification() - added:
method SessionGuard.logoutCurrentDevice() - added:
protected method AuthServiceProvider.registerRequirePassword() - added:
protected method SessionGuard.fireValidatedEvent($user)
- changed:
class Response → class Response implements Arrayable - changed:
constructor Response($message = …) → constructor Response($allowed, $message = …, $code = …) - changed:
protected method HandlesAuthorization.allow($message = …) → protected method HandlesAuthorization.allow($message = …, $code = …) - changed:
protected method HandlesAuthorization.deny($message = …) → protected method HandlesAuthorization.deny($message = …, $code = …) - added:
constructor AuthorizationException($message = …, $code = …, Exception $previous = …) - added:
method AuthorizationException.response() - added:
method AuthorizationException.setResponse($response) - added:
method AuthorizationException.toResponse() - added:
method Gate.inspect($ability, $arguments = …) - added:
method Response.allowed() - added:
method Response.authorize() - added:
method Response.code() - added:
method Response.denied() - added:
method Response.toArray() - added:
protected property AuthorizationException.response - added:
protected property Response.allowed - added:
protected property Response.code - added:
static method Response.allow($message = …, $code = …) - added:
static method Response.deny($message = …, $code = …)
- removed:
class AuthMakeCommand extends Command - removed:
method AuthMakeCommand.handle() - removed:
protected method AuthMakeCommand.compileControllerStub() - removed:
protected method AuthMakeCommand.createDirectories() - removed:
protected method AuthMakeCommand.exportViews() - removed:
protected method AuthMakeCommand.getViewPath($path) - removed:
protected property AuthMakeCommand.description - removed:
protected property AuthMakeCommand.signature - removed:
protected property AuthMakeCommand.views
- added:
class CurrentDeviceLogout - added:
class Validated - added:
constructor CurrentDeviceLogout($guard, $user) - added:
constructor Validated($guard, $user) - added:
property CurrentDeviceLogout.guard - added:
property CurrentDeviceLogout.user - added:
property Validated.guard - added:
property Validated.user
- added:
class RequirePassword - added:
constructor RequirePassword(ResponseFactory $responseFactory, UrlGenerator $urlGenerator, $passwordTimeout = …) - added:
method RequirePassword.handle($request, Closure $next, $redirectToRoute = …) - added:
protected method Authenticate.unauthenticated($request, array $guards) - added:
protected method RequirePassword.shouldConfirmPassword($request) - added:
protected property RequirePassword.passwordTimeout - added:
protected property RequirePassword.responseFactory - added:
protected property RequirePassword.urlGenerator
- removed:
method PasswordBroker.validateNewPassword(array $credentials) - removed:
method PasswordBroker.validator(Closure $callback) - removed:
protected method PasswordBroker.validatePasswordWithDefaults(array $credentials) - removed:
protected property PasswordBroker.passwordValidator - changed:
constructor DatabaseTokenRepository(ConnectionInterface $connection, HasherContract $hasher, $table, $hashKey, $expires = …) → constructor DatabaseTokenRepository(ConnectionInterface $connection, HasherContract $hasher, $table, $hashKey, $expires = …, $throttle = …) - added:
method DatabaseTokenRepository.recentlyCreatedToken(CanResetPasswordContract $user) - added:
protected method DatabaseTokenRepository.tokenRecentlyCreated($createdAt) - added:
protected property DatabaseTokenRepository.throttle
- added:
class EncryptedPrivateChannel extends Channel - added:
constructor EncryptedPrivateChannel($name) - added:
property BroadcastEvent.timeout - added:
property BroadcastEvent.tries
- changed:
constructor RedisBroadcaster(Redis $redis, $connection = …) → constructor RedisBroadcaster(Redis $redis, $connection = …, $prefix = …) - added:
protected method RedisBroadcaster.broadcastMultipleChannelsScript() - added:
protected method RedisBroadcaster.formatChannels(array $channels) - added:
protected property RedisBroadcaster.prefix
- added:
method Dispatcher.dispatchAfterResponse($command, $handler = …) - added:
method Queueable.middleware() - added:
method Queueable.through($middleware) - added:
property Queueable.middleware
- removed:
protected property NullStore.storage - changed:
class ArrayStore extends TaggableStore → class ArrayStore extends TaggableStore implements LockProvider - changed:
class DynamoDbStore implements Store, LockProvider → class DynamoDbStore implements LockProvider, Store - changed:
class Repository implements CacheContract, ArrayAccess → class Repository implements ArrayAccess, CacheContract - changed:
constructor FileStore(Filesystem $files, $directory) → constructor FileStore(Filesystem $files, $directory, $filePermission = …) - added:
class ArrayLock extends Lock - added:
constructor ArrayLock($store, $name, $seconds, $owner = …) - added:
method ArrayLock.acquire() - added:
method ArrayLock.forceRelease() - added:
method ArrayLock.release() - added:
method ArrayStore.lock($name, $seconds = …, $owner = …) - added:
method ArrayStore.restoreLock($name, $owner) - added:
method CacheManager.refreshEventDispatcher() - added:
method DynamoDbStore.getClient() - added:
method RateLimiter.cleanRateLimiterKey($key) - added:
method Repository.getEventDispatcher() - added:
property ArrayStore.locks - added:
protected method ArrayLock.exists() - added:
protected method ArrayLock.getCurrentOwner() - added:
protected method CacheManager.newDynamodbClient(array $config) - added:
protected method CacheManager.setEventDispatcher(Repository $repository) - added:
protected method FileStore.ensureFileHasCorrectPermissions($path) - added:
protected property ArrayLock.store - added:
protected property FileStore.filePermission
- removed:
method Command.alert($string) - removed:
method Command.anticipate($question, array $choices, $default = …) - removed:
method Command.argument($key = …) - removed:
method Command.arguments() - removed:
method Command.ask($question, $default = …) - removed:
method Command.askWithCompletion($question, array $choices, $default = …) - removed:
method Command.call($command, array $arguments = …) - removed:
method Command.callSilent($command, array $arguments = …) - removed:
method Command.choice($question, array $choices, $default = …, $attempts = …, $multiple = …) - removed:
method Command.comment($string, $verbosity = …) - removed:
method Command.confirm($question, $default = …) - removed:
method Command.error($string, $verbosity = …) - removed:
method Command.getOutput() - removed:
method Command.hasArgument($name) - removed:
method Command.hasOption($name) - removed:
method Command.info($string, $verbosity = …) - removed:
method Command.line($string, $style = …, $verbosity = …) - removed:
method Command.option($key = …) - removed:
method Command.options() - removed:
method Command.question($string, $verbosity = …) - removed:
method Command.secret($question, $fallback = …) - removed:
method Command.table($headers, $rows, $tableStyle = …, array $columnStyles = …) - removed:
method Command.warn($string, $verbosity = …) - removed:
protected method Command.context() - removed:
protected method Command.createInputFromArguments(array $arguments) - removed:
protected method Command.getArguments() - removed:
protected method Command.getOptions() - removed:
protected method Command.parseVerbosity($level = …) - removed:
protected method Command.setVerbosity($level) - removed:
protected method Command.specifyParameters() - removed:
protected property Command.input - removed:
protected property Command.output - removed:
protected property Command.verbosity - removed:
protected property Command.verbosityMap - added:
protected method Command.resolveCommand($command) - added:
protected method GeneratorCommand.sortImports($stub) - added:
protected property Command.help
- added:
method CallsCommands.call($command, array $arguments = …) - added:
method CallsCommands.callSilent($command, array $arguments = …) - added:
method InteractsWithIO.alert($string) - added:
method InteractsWithIO.anticipate($question, $choices, $default = …) - added:
method InteractsWithIO.argument($key = …) - added:
method InteractsWithIO.arguments() - added:
method InteractsWithIO.ask($question, $default = …) - added:
method InteractsWithIO.askWithCompletion($question, $choices, $default = …) - added:
method InteractsWithIO.choice($question, array $choices, $default = …, $attempts = …, $multiple = …) - added:
method InteractsWithIO.comment($string, $verbosity = …) - added:
method InteractsWithIO.confirm($question, $default = …) - added:
method InteractsWithIO.error($string, $verbosity = …) - added:
method InteractsWithIO.getOutput() - added:
method InteractsWithIO.hasArgument($name) - added:
method InteractsWithIO.hasOption($name) - added:
method InteractsWithIO.info($string, $verbosity = …) - added:
method InteractsWithIO.line($string, $style = …, $verbosity = …) - added:
method InteractsWithIO.option($key = …) - added:
method InteractsWithIO.options() - added:
method InteractsWithIO.question($string, $verbosity = …) - added:
method InteractsWithIO.secret($question, $fallback = …) - added:
method InteractsWithIO.setInput(InputInterface $input) - added:
method InteractsWithIO.setOutput(OutputStyle $output) - added:
method InteractsWithIO.table($headers, $rows, $tableStyle = …, array $columnStyles = …) - added:
method InteractsWithIO.warn($string, $verbosity = …) - added:
protected method CallsCommands.context() - added:
protected method CallsCommands.createInputFromArguments(array $arguments) - added:
protected method CallsCommands.resolveCommand($command) - added:
protected method CallsCommands.runCommand($command, array $arguments, OutputInterface $output) - added:
protected method HasParameters.getArguments() - added:
protected method HasParameters.getOptions() - added:
protected method HasParameters.specifyParameters() - added:
protected method InteractsWithIO.parseVerbosity($level = …) - added:
protected method InteractsWithIO.setVerbosity($level) - added:
protected property InteractsWithIO.input - added:
protected property InteractsWithIO.output - added:
protected property InteractsWithIO.verbosity - added:
protected property InteractsWithIO.verbosityMap - added:
trait CallsCommands - added:
trait HasParameters - added:
trait InteractsWithIO
- added:
class ScheduledTaskFinished - added:
class ScheduledTaskSkipped - added:
class ScheduledTaskStarting - added:
constructor ScheduledTaskFinished(Event $task, $runtime) - added:
constructor ScheduledTaskSkipped(Event $task) - added:
constructor ScheduledTaskStarting(Event $task) - added:
property ScheduledTaskFinished.runtime - added:
property ScheduledTaskFinished.task - added:
property ScheduledTaskSkipped.task - added:
property ScheduledTaskStarting.task
- removed:
constructor ScheduleFinishCommand(Schedule $schedule) - removed:
protected property ScheduleFinishCommand.schedule - changed:
constructor CallbackEvent(EventMutex $mutex, $callback, array $parameters = …) → constructor CallbackEvent(EventMutex $mutex, $callback, array $parameters = …, $timezone = …) - changed:
constructor ScheduleRunCommand(Schedule $schedule) → constructor ScheduleRunCommand() - changed:
method ScheduleFinishCommand.handle() → method ScheduleFinishCommand.handle(Schedule $schedule) - changed:
method ScheduleRunCommand.handle() → method ScheduleRunCommand.handle(Schedule $schedule, Dispatcher $dispatcher) - added:
method Event.callAfterCallbacksWithExitCode(Container $container, $exitCode) - added:
method Schedule.compileArrayInput($key, $value) - added:
protected method Event.pingCallback($url) - added:
protected method Schedule.dispatchNow($job) - added:
protected method Schedule.dispatchToQueue($job, $queue, $connection) - added:
protected method Schedule.getDispatcher() - added:
protected property Schedule.dispatcher - added:
protected property ScheduleRunCommand.dispatcher
- added:
class Util - added:
method Container.singletonIf($abstract, $concrete = …) - added:
static method Util.arrayWrap($value) - added:
static method Util.getParameterClassName($parameter) - added:
static method Util.unwrapIfClosure($value)
- removed:
const PasswordBroker.INVALID_PASSWORD - removed:
method PasswordBroker.validateNewPassword(array $credentials) - removed:
method PasswordBroker.validator(Closure $callback) - added:
const PasswordBroker.RESET_THROTTLED - added:
method MustVerifyEmail.getEmailForVerification()
- added:
method Gate.inspect($ability, $arguments = …) - added:
method Gate.resource($name, $class, array $abilities = …)
- added:
method Container.singletonIf($abstract, $concrete = …)
- changed:
method QueueingFactory.unqueue($name) → method QueueingFactory.unqueue($name, $path = …)
- changed:
method Application.basePath() → method Application.basePath($path = …)
- added:
method Paginator.path()
- removed:
method Translator.trans($key, array $replace = …, $locale = …) - removed:
method Translator.transChoice($key, $number, array $replace = …, $locale = …) - added:
method Translator.choice($key, $number, array $replace = …, $locale = …) - added:
method Translator.get($key, array $replace = …, $locale = …)
- changed:
method CookieJar.hasQueued($key) → method CookieJar.hasQueued($key, $path = …) - changed:
method CookieJar.queued($key, $default = …) → method CookieJar.queued($key, $default = …, $path = …) - changed:
method CookieJar.unqueue($name) → method CookieJar.unqueue($name, $path = …) - added:
class CookieValuePrefix - added:
static method CookieValuePrefix.create($cookieName, $key) - added:
static method CookieValuePrefix.remove($cookieValue)
- removed:
method MySqlConnection.bindValues($statement, $bindings) - removed:
protected method DetectsDeadlocks.causedByDeadlock(Exception $e) - removed:
trait DetectsDeadlocks - changed:
method Connection.table($table) → method Connection.table($table, $as = …) - changed:
method ConnectionInterface.table($table) → method ConnectionInterface.table($table, $as = …) - added:
method Connection.getRawPdo() - added:
method Connection.getRawReadPdo() - added:
protected method DetectsConcurrencyErrors.causedByConcurrencyError(Exception $e) - added:
protected method MigrationServiceProvider.registerCommands(array $commands) - added:
protected method MigrationServiceProvider.registerMigrateCommand() - added:
protected method MigrationServiceProvider.registerMigrateFreshCommand() - added:
protected method MigrationServiceProvider.registerMigrateInstallCommand() - added:
protected method MigrationServiceProvider.registerMigrateMakeCommand() - added:
protected method MigrationServiceProvider.registerMigrateRefreshCommand() - added:
protected method MigrationServiceProvider.registerMigrateResetCommand() - added:
protected method MigrationServiceProvider.registerMigrateRollbackCommand() - added:
protected method MigrationServiceProvider.registerMigrateStatusCommand() - added:
protected property MigrationServiceProvider.commands - added:
protected static property DatabaseServiceProvider.fakers - added:
trait DetectsConcurrencyErrors
- changed:
static method Manager.table($table, $connection = …) → static method Manager.table($table, $as = …, $connection = …)
- added:
method BuildsQueries.chunkById($count, callable $callback, $column = …, $alias = …) - added:
method BuildsQueries.eachById(callable $callback, $count = …, $column = …, $alias = …) - added:
protected method ManagesTransactions.handleCommitTransactionException($e, $currentAttempt, $maxAttempts)
- added:
class WipeCommand extends Command - added:
method WipeCommand.handle() - added:
protected method WipeCommand.dropAllTables($database) - added:
protected method WipeCommand.dropAllTypes($database) - added:
protected method WipeCommand.dropAllViews($database) - added:
protected method WipeCommand.getOptions() - added:
protected property WipeCommand.description - added:
protected property WipeCommand.name
- removed:
protected method FreshCommand.dropAllTables($database) - removed:
protected method FreshCommand.dropAllTypes($database) - removed:
protected method FreshCommand.dropAllViews($database)
- removed:
method Builder.chunkById($count, callable $callback, $column = …, $alias = …) - changed:
abstract class Model implements ArrayAccess, Arrayable, Jsonable, JsonSerializable, QueueableEntity, UrlRoutable → abstract class Model implements Arrayable, ArrayAccess, Jsonable, JsonSerializable, QueueableEntity, UrlRoutable - changed:
method Builder.scopes(array $scopes) → method Builder.scopes($scopes) - added:
method Builder.firstWhere($column, $operator = …, $value = …, $boolean = …) - added:
method Builder.hasMacro($name) - added:
method Collection.mapWithKeys(callable $callback) - added:
method FactoryBuilder.createMany(iterable $records) - added:
protected method Builder.defaultKeyName() - added:
protected static method Builder.registerMixin($mixin, $replace) - added:
static method Builder.getGlobalMacro($name) - added:
static method Builder.hasGlobalMacro($name)
- added:
method HasRelationships.unsetRelations() - added:
method HasRelationships.withoutRelations() - added:
method HasTimestamps.getQualifiedCreatedAtColumn() - added:
method HasTimestamps.getQualifiedUpdatedAtColumn() - added:
protected method GuardsAttributes.isGuardableColumn($key) - added:
protected static property GuardsAttributes.guardableColumns
- removed:
method BelongsTo.getRelation() - removed:
method BelongsTo.update(array $attributes) - changed:
method BelongsToMany.createMany(array $records, array $joinings = …) → method BelongsToMany.createMany(iterable $records, array $joinings = …) - changed:
method HasOneOrMany.createMany(array $records) → method HasOneOrMany.createMany(iterable $records) - changed:
protected method MorphToMany.newPivotQuery() → method MorphToMany.newPivotQuery() - added:
method BelongsToMany.cursor() - added:
method BelongsToMany.firstWhere($column, $operator = …, $value = …, $boolean = …) - added:
method BelongsToMany.getPivotColumns() - added:
method BelongsToMany.orWherePivotNotIn($column, $values) - added:
method BelongsToMany.wherePivotNotIn($column, $values, $boolean = …) - added:
method HasManyThrough.firstWhere($column, $operator = …, $value = …, $boolean = …) - added:
protected method MorphToMany.getCurrentlyAttachedPivots()
- changed:
protected method InteractsWithPivotTable.newPivotQuery() → method InteractsWithPivotTable.newPivotQuery() - added:
method AsPivot.unsetRelations()
- added:
class NoPendingMigrations - added:
constructor NoPendingMigrations($method) - added:
property NoPendingMigrations.method
- changed:
protected method MigrationCreator.ensureMigrationDoesntAlreadyExist($name) → protected method MigrationCreator.ensureMigrationDoesntAlreadyExist($name, $migrationPath = …)
- removed:
class JsonExpression extends Expression - removed:
constructor JsonExpression($value) - removed:
method Builder.chunkById($count, callable $callback, $column = …, $alias = …) - removed:
protected method Builder.whereInExistingQuery($column, $query, $boolean, $not) - removed:
protected method Builder.whereInSub($column, Closure $callback, $boolean, $not) - removed:
protected method JsonExpression.getJsonBindingParameter($value) - changed:
method Builder.from($table) → method Builder.from($table, $as = …) - changed:
method Builder.whereNotNull($column, $boolean = …) → method Builder.whereNotNull($columns, $boolean = …) - added:
method Builder.doesntExistOr(Closure $callback) - added:
method Builder.existsOr(Closure $callback) - added:
method Builder.groupByRaw($sql, array $bindings = …) - added:
protected method Builder.defaultKeyName() - added:
protected method Builder.flattenValue($value) - added:
protected method Builder.isQueryable($value)
- removed:
method MySqlGrammar.compileDelete(Builder $query) - removed:
method MySqlGrammar.compileSelect(Builder $query) - removed:
method MySqlGrammar.compileUpdate(Builder $query, $values) - removed:
method PostgresGrammar.compileInsert(Builder $query, array $values) - removed:
method PostgresGrammar.compileSelect(Builder $query) - removed:
method PostgresGrammar.prepareBindingsForDelete(array $bindings) - removed:
method SQLiteGrammar.compileInsert(Builder $query, array $values) - removed:
method SQLiteGrammar.compileSelect(Builder $query) - removed:
method SqlServerGrammar.compileDelete(Builder $query) - removed:
method SqlServerGrammar.compileTruncate(Builder $query) - removed:
method SqlServerGrammar.compileUpdate(Builder $query, $values) - removed:
protected method Grammar.whereInSub(Builder $query, $where) - removed:
protected method Grammar.whereNotInSub(Builder $query, $where) - removed:
protected method MySqlGrammar.compileDeleteWithJoins($query, $table, $where) - removed:
protected method MySqlGrammar.compileUnion(array $union) - removed:
protected method PostgresGrammar.compileDeleteWithJoins($query, $table) - removed:
protected method PostgresGrammar.compileUnion(array $union) - removed:
protected method PostgresGrammar.compileUpdateFrom(Builder $query) - removed:
protected method PostgresGrammar.compileUpdateJoinWheres(Builder $query) - removed:
protected method PostgresGrammar.compileUpdateWheres(Builder $query) - removed:
protected method SQLiteGrammar.compileUnion(array $union) - removed:
protected method SqlServerGrammar.compileDeleteWithJoins(Builder $query, $table, $where) - removed:
protected method SqlServerGrammar.parseUpdateTable($table) - removed:
protected property MySqlGrammar.selectComponents - removed:
protected property PostgresGrammar.selectComponents - removed:
protected property SQLiteGrammar.selectComponents - changed:
method Grammar.compileUpdate(Builder $query, $values) → method Grammar.compileUpdate(Builder $query, array $values) - changed:
method PostgresGrammar.compileUpdate(Builder $query, $values) → method PostgresGrammar.compileUpdate(Builder $query, array $values) - changed:
method SQLiteGrammar.compileUpdate(Builder $query, $values) → method SQLiteGrammar.compileUpdate(Builder $query, array $values) - changed:
protected method MySqlGrammar.compileDeleteWithoutJoins($query, $table, $where) → protected method MySqlGrammar.compileDeleteWithoutJoins(Builder $query, $table, $where) - changed:
protected method MySqlGrammar.compileJsonUpdateColumn($key, JsonExpression $value) → protected method MySqlGrammar.compileJsonUpdateColumn($key, $value) - changed:
protected method MySqlGrammar.compileUpdateColumns($values) → protected method MySqlGrammar.compileUpdateColumns(Builder $query, array $values) - changed:
protected method PostgresGrammar.compileUpdateColumns($query, $values) → protected method PostgresGrammar.compileUpdateColumns(Builder $query, array $values) - changed:
protected method SQLiteGrammar.compileUpdateWithJoinsOrLimit(Builder $query, $columns) → protected method SQLiteGrammar.compileUpdateWithJoinsOrLimit(Builder $query, array $values) - added:
method MySqlGrammar.compileInsert(Builder $query, array $values) - added:
protected method Grammar.compileDeleteWithJoins(Builder $query, $table, $where) - added:
protected method Grammar.compileDeleteWithoutJoins(Builder $query, $table, $where) - added:
protected method Grammar.compileUpdateColumns(Builder $query, array $values) - added:
protected method Grammar.compileUpdateWithJoins(Builder $query, $table, $columns, $where) - added:
protected method Grammar.compileUpdateWithoutJoins(Builder $query, $table, $columns, $where) - added:
protected method Grammar.wrapUnion($sql) - added:
protected method MySqlGrammar.compileUpdateWithoutJoins(Builder $query, $table, $columns, $where) - added:
protected method PostgresGrammar.compileColumns(Builder $query, $columns) - added:
protected method PostgresGrammar.compileDeleteWithJoinsOrLimit(Builder $query) - added:
protected method PostgresGrammar.compileUpdateWithJoinsOrLimit(Builder $query, array $values) - added:
protected method SQLiteGrammar.compileJsonPatch($column, $value) - added:
protected method SQLiteGrammar.compileLock(Builder $query, $value) - added:
protected method SQLiteGrammar.compileUpdateColumns(Builder $query, array $values) - added:
protected method SQLiteGrammar.groupJsonColumnsForUpdate(array $values) - added:
protected method SQLiteGrammar.wrapUnion($sql) - added:
protected method SqlServerGrammar.compileUpdateWithJoins(Builder $query, $table, $columns, $where) - added:
protected method SqlServerGrammar.wrapUnion($sql)
- changed:
protected method MySqlBuilder.getAllTables() → method MySqlBuilder.getAllTables() - changed:
protected method MySqlBuilder.getAllViews() → method MySqlBuilder.getAllViews() - changed:
protected method PostgresBuilder.getAllTables() → method PostgresBuilder.getAllTables() - changed:
protected method PostgresBuilder.getAllTypes() → method PostgresBuilder.getAllTypes() - changed:
protected method PostgresBuilder.getAllViews() → method PostgresBuilder.getAllViews() - added:
method Builder.getAllTables() - added:
method SqlServerBuilder.dropAllViews()
- added:
method SqlServerGrammar.compileDropAllViews() - added:
method SqlServerGrammar.compileDropDefaultConstraint(Blueprint $blueprint, Fluent $command) - added:
protected method PostgresGrammar.modifyStoredAs(Blueprint $blueprint, Fluent $column) - added:
protected method PostgresGrammar.modifyVirtualAs(Blueprint $blueprint, Fluent $column) - added:
protected static method ChangeColumn.doesntNeedCharacterOptions($type)
- added:
protected method EncryptionServiceProvider.parseKey(array $config) - added:
protected method EncryptionServiceProvider.registerEncrypter() - added:
protected method EncryptionServiceProvider.registerOpisSecurityKey()
- added:
class NullDispatcher implements DispatcherContract - added:
constructor NullDispatcher(DispatcherContract $dispatcher) - added:
method Dispatcher.hasWildcardListeners($eventName) - added:
method NullDispatcher.__call($method, $parameters) - added:
method NullDispatcher.dispatch($event, $payload = …, $halt = …) - added:
method NullDispatcher.flush($event) - added:
method NullDispatcher.forget($event) - added:
method NullDispatcher.forgetPushed() - added:
method NullDispatcher.hasListeners($eventName) - added:
method NullDispatcher.listen($events, $listener) - added:
method NullDispatcher.push($event, $payload = …) - added:
method NullDispatcher.subscribe($subscriber) - added:
method NullDispatcher.until($event, $payload = …) - added:
property CallQueuedListener.retryAfter - added:
protected property NullDispatcher.dispatcher
- removed:
method FilesystemAdapter.getRackspaceTemporaryUrl($adapter, $path, $expiration, $options) - removed:
method FilesystemManager.createRackspaceDriver(array $config) - removed:
protected method FilesystemAdapter.getRackspaceUrl($adapter, $path) - removed:
protected method FilesystemManager.getRackspaceContainer(Rackspace $client, array $config) - changed:
class FilesystemAdapter implements FilesystemContract, CloudFilesystemContract → class FilesystemAdapter implements CloudFilesystemContract - added:
method Filesystem.ensureDirectoryExists($path, $mode = …, $recursive = …) - added:
method Filesystem.missing($path) - added:
method FilesystemAdapter.missing($path) - added:
protected method FilesystemAdapter.getFtpUrl($path)
- added:
method PackageManifest.config($key) - added:
protected method Application.loadDeferredProviderIfNeeded($abstract) - added:
protected method Application.normalizeCachePath($key, $default) - added:
protected method Application.resolve($abstract, $parameters = …, $raiseEvents = …) - added:
protected property Application.isRunningInConsole
- added:
method ConfirmsPasswords.confirm(Request $request) - added:
method ConfirmsPasswords.showConfirmForm() - added:
protected method ConfirmsPasswords.resetPasswordConfirmationTimeout(Request $request) - added:
protected method ConfirmsPasswords.rules() - added:
protected method ConfirmsPasswords.validationErrorMessages() - added:
protected method ResetsPasswords.setUserPassword($user, $password) - added:
trait ConfirmsPasswords
- changed:
method Authorizable.can($ability, $arguments = …) → method Authorizable.can($abilities, $arguments = …) - changed:
method Authorizable.cannot($ability, $arguments = …) → method Authorizable.cannot($abilities, $arguments = …) - changed:
method Authorizable.cant($ability, $arguments = …) → method Authorizable.cant($abilities, $arguments = …)
- added:
static method Dispatchable.dispatchAfterResponse()
- removed:
class AppNameCommand extends Command - removed:
constructor AppNameCommand(Composer $composer, Filesystem $files) - removed:
method AppNameCommand.handle() - removed:
protected method AppNameCommand.getArguments() - removed:
protected method AppNameCommand.getBootstrapPath() - removed:
protected method AppNameCommand.getComposerPath() - removed:
protected method AppNameCommand.getConfigPath($name) - removed:
protected method AppNameCommand.replaceIn($path, $search, $replace) - removed:
protected method AppNameCommand.replaceNamespace($path) - removed:
protected method AppNameCommand.setAppConfigNamespaces() - removed:
protected method AppNameCommand.setAppDirectoryNamespace() - removed:
protected method AppNameCommand.setAuthConfigNamespace() - removed:
protected method AppNameCommand.setBootstrapNamespaces() - removed:
protected method AppNameCommand.setComposerNamespace() - removed:
protected method AppNameCommand.setConfigNamespaces() - removed:
protected method AppNameCommand.setDatabaseFactoryNamespaces() - removed:
protected method AppNameCommand.setServicesConfigNamespace() - removed:
protected property AppNameCommand.composer - removed:
protected property AppNameCommand.currentRoot - removed:
protected property AppNameCommand.description - removed:
protected property AppNameCommand.files - removed:
protected property AppNameCommand.name - added:
protected method ModelMakeCommand.createSeeder()
- added:
protected method Handler.exceptionContext(Exception $e) - added:
protected method Handler.getHttpExceptionView(HttpExceptionInterface $e)
- changed:
protected method FormRequest.validationData() → method FormRequest.validationData() - added:
method Kernel.appendMiddlewareToGroup($group, $middleware) - added:
method Kernel.appendToMiddlewarePriority($middleware) - added:
method Kernel.prependMiddlewareToGroup($group, $middleware) - added:
method Kernel.prependToMiddlewarePriority($middleware) - added:
protected method Kernel.syncMiddlewareToRouter()
- removed:
protected method ArtisanServiceProvider.registerAppNameCommand() - removed:
protected method ArtisanServiceProvider.registerAuthMakeCommand() - removed:
protected method ArtisanServiceProvider.registerMigrateCommand() - removed:
protected method ArtisanServiceProvider.registerMigrateFreshCommand() - removed:
protected method ArtisanServiceProvider.registerMigrateInstallCommand() - removed:
protected method ArtisanServiceProvider.registerMigrateMakeCommand() - removed:
protected method ArtisanServiceProvider.registerMigrateRefreshCommand() - removed:
protected method ArtisanServiceProvider.registerMigrateResetCommand() - removed:
protected method ArtisanServiceProvider.registerMigrateRollbackCommand() - removed:
protected method ArtisanServiceProvider.registerMigrateStatusCommand() - added:
protected method ArtisanServiceProvider.registerDbWipeCommand()
- changed:
class TestResponse → class TestResponse implements ArrayAccess - changed:
method TestResponse.assertJsonMissingValidationErrors($keys = …) → method TestResponse.assertJsonMissingValidationErrors($keys = …, $responseKey = …) - changed:
method TestResponse.assertJsonValidationErrors($errors) → method TestResponse.assertJsonValidationErrors($errors, $responseKey = …) - changed:
static method Assert.assertArraySubset($subset, $array, bool $checkForObjectIdentity = …, string $message = …): void → static method Assert.assertArraySubset($subset, $array, bool $checkForIdentity = …, string $msg = …): void - added:
method TestResponse.assertCreated() - added:
method TestResponse.assertJsonPath($path, $expect, $strict = …) - added:
method TestResponse.assertNoContent($status = …) - added:
method TestResponse.dumpSession($keys = …) - added:
method TestResponse.offsetExists($offset) - added:
method TestResponse.offsetGet($offset) - added:
method TestResponse.offsetSet($offset, $value) - added:
method TestResponse.offsetUnset($offset) - added:
static method Assert.assertDirectoryDoesNotExist(string $directory, string $message = …): void - added:
static method Assert.assertFileDoesNotExist(string $filename, string $message = …): void - added:
static method Assert.assertMatchesRegularExpression(string $pattern, string $string, string $message = …): void
- removed:
method MakesHttpRequests.option($uri, array $data = …, array $headers = …) - removed:
method MakesHttpRequests.optionJson($uri, array $data = …, array $headers = …) - changed:
protected method InteractsWithDatabase.assertSoftDeleted($table, array $data = …, $connection = …) → protected method InteractsWithDatabase.assertSoftDeleted($table, array $data = …, $connection = …, $deletedAtColumn = …) - added:
method MakesHttpRequests.disableCookieEncryption() - added:
method MakesHttpRequests.options($uri, array $data = …, array $headers = …) - added:
method MakesHttpRequests.optionsJson($uri, array $data = …, array $headers = …) - added:
method MakesHttpRequests.withCookie(string $name, string $value) - added:
method MakesHttpRequests.withCookies(array $cookies) - added:
method MakesHttpRequests.withUnencryptedCookie(string $name, string $value) - added:
method MakesHttpRequests.withUnencryptedCookies(array $cookies) - added:
protected method InteractsWithContainer.partialMock($abstract, Closure $mock = …) - added:
protected method InteractsWithContainer.withMix() - added:
protected method InteractsWithContainer.withoutMix() - added:
protected method InteractsWithDatabase.assertDeleted($table, array $data = …, $connection = …) - added:
protected method InteractsWithDatabase.isSoftDeletableModel($model) - added:
protected method MakesHttpRequests.prepareCookiesForRequest() - added:
protected property InteractsWithContainer.originalMix - added:
protected property MakesHttpRequests.defaultCookies - added:
protected property MakesHttpRequests.encryptCookies - added:
protected property MakesHttpRequests.unencryptedCookies
- changed:
constructor SoftDeletedInDatabase(Connection $database, array $data) → constructor SoftDeletedInDatabase(Connection $database, array $data, string $deletedAtColumn) - added:
constructor ArraySubset(iterable $subset, bool $strict = …) - added:
final class ArraySubset extends Constraint - added:
method ArraySubset.evaluate($other, string $description = …, bool $returnResult = …) - added:
method ArraySubset.evaluate($other, string $description = …, bool $returnResult = …): ?bool - added:
method ArraySubset.toString(): string - added:
protected method ArraySubset.failureDescription($other): string - added:
protected property SoftDeletedInDatabase.deletedAtColumn
- added:
method InteractsWithInput.boolean($key = …, $default = …) - added:
method InteractsWithInput.missing($key)
- changed:
class ThrottleRequestsException extends HttpException → class ThrottleRequestsException extends TooManyRequestsHttpException
- added:
abstract class TrustHosts - added:
constructor TrustHosts(Application $app) - added:
method TrustHosts.handle(Request $request, $next) - added:
method TrustHosts.hosts() - added:
protected method TrustHosts.allSubdomainsOfApplicationUrl() - added:
protected method TrustHosts.shouldSpecifyTrustedHosts() - added:
protected property TrustHosts.app
- added:
method ResourceCollection.preserveQuery() - added:
method ResourceCollection.withQuery(array $query) - added:
protected method ResourceCollection.preparePaginatedResponse($request) - added:
protected property ResourceCollection.preserveAllQueryParameters - added:
protected property ResourceCollection.queryParameters
- changed:
method FileFactory.create($name, $kilobytes = …) → method FileFactory.create($name, $kilobytes = …, $mimeType = …) - added:
method File.mimeType($mimeType) - added:
method FileFactory.createWithContent($name, $content) - added:
property File.mimeTypeToReport - added:
static method File.createWithContent($name, $content)
- added:
method LogManager.forgetChannel($driver = …) - added:
method LogManager.getChannels() - added:
protected property LogManager.dateFormat
- removed:
protected method TransportManager.createMandrillDriver() - removed:
protected method TransportManager.createSparkPostDriver() - added:
protected method Mailable.newQueuedJob()
- added:
method MessageSent.__serialize() - added:
method MessageSent.__unserialize(array $data)
- removed:
class MandrillTransport extends Transport - removed:
class SparkPostTransport extends Transport - removed:
constructor MandrillTransport(ClientInterface $client, $key) - removed:
constructor SparkPostTransport(ClientInterface $client, $key, $options = …) - removed:
method MandrillTransport.getKey() - removed:
method MandrillTransport.send(Swift_Mime_SimpleMessage $message, &$failedRecipients = …) - removed:
method MandrillTransport.setKey($key) - removed:
method SparkPostTransport.getEndpoint() - removed:
method SparkPostTransport.getKey() - removed:
method SparkPostTransport.getOptions() - removed:
method SparkPostTransport.send(Swift_Mime_SimpleMessage $message, &$failedRecipients = …) - removed:
method SparkPostTransport.setKey($key) - removed:
method SparkPostTransport.setOptions(array $options) - removed:
protected method MandrillTransport.getTo(Swift_Mime_SimpleMessage $message) - removed:
protected method SparkPostTransport.getRecipients(Swift_Mime_SimpleMessage $message) - removed:
protected method SparkPostTransport.getTransmissionId($response) - removed:
protected property MandrillTransport.client - removed:
protected property MandrillTransport.key - removed:
protected property SparkPostTransport.client - removed:
protected property SparkPostTransport.key - removed:
protected property SparkPostTransport.options
- added:
method SendQueuedNotifications.retryUntil() - added:
protected property DatabaseNotification.keyType
- changed:
class LengthAwarePaginator extends AbstractPaginator implements Arrayable, ArrayAccess, Countable, IteratorAggregate, JsonSerializable, Jsonable, LengthAwarePaginatorContract → class LengthAwarePaginator extends AbstractPaginator implements Arrayable, ArrayAccess, Countable, IteratorAggregate, Jsonable, JsonSerializable, LengthAwarePaginatorContract - changed:
class Paginator extends AbstractPaginator implements Arrayable, ArrayAccess, Countable, IteratorAggregate, JsonSerializable, Jsonable, PaginatorContract → class Paginator extends AbstractPaginator implements Arrayable, ArrayAccess, Countable, IteratorAggregate, Jsonable, JsonSerializable, PaginatorContract - added:
method AbstractPaginator.path()
- added:
protected method Pipeline.handleCarry($carry) - added:
protected method Pipeline.handleException($passable, Exception $e) - added:
protected method Pipeline.pipes()
- removed:
method QueueManager.isDownForMaintenance() - changed:
constructor CallQueuedHandler(Dispatcher $dispatcher) → constructor CallQueuedHandler(Dispatcher $dispatcher, Container $container) - changed:
constructor Worker(QueueManager $manager, Dispatcher $events, ExceptionHandler $exceptions) → constructor Worker(QueueManager $manager, Dispatcher $events, ExceptionHandler $exceptions, callable $isDownForMaintenance) - changed:
protected method RedisQueue.getConnection() → method RedisQueue.getConnection() - added:
method SerializesModels.__serialize() - added:
method SerializesModels.__unserialize(array $values) - added:
protected method CallQueuedHandler.dispatchThroughMiddleware(Job $job, $command) - added:
protected method DatabaseQueue.getLockForPopping() - added:
protected method QueueServiceProvider.dynamoFailedJobProvider($config) - added:
protected method Worker.resetTimeoutHandler() - added:
protected property CallQueuedHandler.container - added:
protected property Worker.isDownForMaintenance - added:
static method CallQueuedClosure.create(Closure $job)
- changed:
constructor WorkCommand(Worker $worker) → constructor WorkCommand(Worker $worker, Cache $cache) - added:
constructor RestartCommand(Cache $cache) - added:
protected property RestartCommand.cache - added:
protected property WorkCommand.cache
- added:
class DynamoDbFailedJobProvider implements FailedJobProviderInterface - added:
constructor DynamoDbFailedJobProvider(DynamoDbClient $dynamo, $applicationName, $table) - added:
method DynamoDbFailedJobProvider.all() - added:
method DynamoDbFailedJobProvider.find($id) - added:
method DynamoDbFailedJobProvider.flush() - added:
method DynamoDbFailedJobProvider.forget($id) - added:
method DynamoDbFailedJobProvider.log($connection, $queue, $payload, $exception) - added:
protected property DynamoDbFailedJobProvider.applicationName - added:
protected property DynamoDbFailedJobProvider.dynamo - added:
protected property DynamoDbFailedJobProvider.table
- added:
method Job.getResolvedJob()
- changed:
method RedisManager.extend($driver, \Closure $callback) → method RedisManager.extend($driver, Closure $callback)
- removed:
method PhpRedisConnection.exists(...$keys) - changed:
constructor PhpRedisConnection($client) → constructor PhpRedisConnection($client, callable $connector = …, array $config = …) - added:
method PhpRedisConnection.command($method, array $parameters = …) - added:
method PhpRedisConnection.hscan($key, $cursor, $options = …) - added:
method PhpRedisConnection.scan($cursor, $options = …) - added:
method PhpRedisConnection.sscan($key, $cursor, $options = …) - added:
method PhpRedisConnection.zscan($key, $cursor, $options = …) - added:
protected property PhpRedisConnection.config - added:
protected property PhpRedisConnection.connector - added:
protected property PredisConnection.client
- added:
protected method PhpRedisConnector.formatHost(array $options)
- removed:
protected method Pipeline.carry() - removed:
protected method Pipeline.prepareDestination(Closure $destination) - changed:
class Router implements RegistrarContract, BindingRegistrar → class Router implements BindingRegistrar, RegistrarContract - changed:
method RedirectController.__invoke(...$args) → method RedirectController.__invoke(Request $request, UrlGenerator $url) - changed:
protected method UrlGenerator.toRoute($route, $parameters, $absolute) → method UrlGenerator.toRoute($route, $parameters, $absolute) - added:
method PendingResourceRegistration.shallow($shallow = …) - added:
method Router.confirmPassword() - added:
method UrlGenerator.hasCorrectSignature(Request $request, $absolute = …) - added:
method UrlGenerator.signatureHasNotExpired(Request $request) - added:
protected method Pipeline.handleCarry($carry) - added:
protected method ResourceRegistrar.getShallowName($name, $options) - added:
protected method UrlGenerator.ensureSignedRouteParametersAreNotReserved($parameters) - added:
static method Router.uniqueMiddleware(array $middleware)
- changed:
method ThrottleRequests.handle($request, Closure $next, $maxAttempts = …, $decayMinutes = …) → method ThrottleRequests.handle($request, Closure $next, $maxAttempts = …, $decayMinutes = …, $prefix = …) - changed:
method ThrottleRequestsWithRedis.handle($request, Closure $next, $maxAttempts = …, $decayMinutes = …) → method ThrottleRequestsWithRedis.handle($request, Closure $next, $maxAttempts = …, $decayMinutes = …, $prefix = …)
- changed:
class DatabaseSessionHandler implements SessionHandlerInterface, ExistenceAwareInterface → class DatabaseSessionHandler implements ExistenceAwareInterface, SessionHandlerInterface
- removed:
method Collection.__get($key) - removed:
method Collection.__toString() - removed:
method Collection.average($callback = …) - removed:
method Collection.containsStrict($key, $value = …) - removed:
method Collection.countBy($callback = …) - removed:
method Collection.dd(...$args) - removed:
method Collection.dump() - removed:
method Collection.each(callable $callback) - removed:
method Collection.eachSpread(callable $callback) - removed:
method Collection.every($key, $operator = …, $value = …) - removed:
method Collection.firstWhere($key, $operator = …, $value = …) - removed:
method Collection.flatMap(callable $callback) - removed:
method Collection.forPage($page, $perPage) - removed:
method Collection.getCachingIterator($flags = …) - removed:
method Collection.isNotEmpty() - removed:
method Collection.jsonSerialize() - removed:
method Collection.mapInto($class) - removed:
method Collection.mapSpread(callable $callback) - removed:
method Collection.mapToGroups(callable $callback) - removed:
method Collection.max($callback = …) - removed:
method Collection.min($callback = …) - removed:
method Collection.partition($key, $operator = …, $value = …) - removed:
method Collection.pipe(callable $callback) - removed:
method Collection.reject($callback = …) - removed:
method Collection.some($key, $operator = …, $value = …) - removed:
method Collection.sum($callback = …) - removed:
method Collection.tap(callable $callback) - removed:
method Collection.toArray() - removed:
method Collection.toJson($options = …) - removed:
method Collection.unique($key = …, $strict = …) - removed:
method Collection.uniqueStrict($key = …) - removed:
method Collection.unless($value, callable $callback, callable $default = …) - removed:
method Collection.unlessEmpty(callable $callback, callable $default = …) - removed:
method Collection.unlessNotEmpty(callable $callback, callable $default = …) - removed:
method Collection.when($value, callable $callback, callable $default = …) - removed:
method Collection.whenEmpty(callable $callback, callable $default = …) - removed:
method Collection.whenNotEmpty(callable $callback, callable $default = …) - removed:
method Collection.where($key, $operator = …, $value = …) - removed:
method Collection.whereBetween($key, $values) - removed:
method Collection.whereIn($key, $values, $strict = …) - removed:
method Collection.whereInStrict($key, $values) - removed:
method Collection.whereInstanceOf($type) - removed:
method Collection.whereNotBetween($key, $values) - removed:
method Collection.whereNotIn($key, $values, $strict = …) - removed:
method Collection.whereNotInStrict($key, $values) - removed:
method Collection.whereStrict($key, $value) - removed:
protected method Collection.getArrayableItems($items) - removed:
protected method Collection.operatorForWhere($key, $operator = …, $value = …) - removed:
protected method Collection.useAsCallable($value) - removed:
protected method Collection.valueRetriever($value) - removed:
protected property ServiceProvider.defer - removed:
protected static property Collection.proxies - removed:
static method Collection.make($items = …) - removed:
static method Collection.proxy($method) - removed:
static method Collection.unwrap($value) - removed:
static method Collection.wrap($value) - changed:
class Collection implements ArrayAccess, Arrayable, Countable, IteratorAggregate, Jsonable, JsonSerializable → class Collection implements ArrayAccess, Enumerable - changed:
class Fluent implements ArrayAccess, Arrayable, Jsonable, JsonSerializable → class Fluent implements Arrayable, ArrayAccess, Jsonable, JsonSerializable - changed:
constructor HigherOrderCollectionProxy(Collection $collection, $method) → constructor HigherOrderCollectionProxy(Enumerable $collection, $method) - changed:
constructor Manager($app) → constructor Manager(Container $container) - added:
class Env - added:
class LazyCollection implements Enumerable - added:
class Reflector - added:
constructor LazyCollection($source = …) - added:
interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, JsonSerializable - added:
method Collection.lazy() - added:
method Collection.skip($count) - added:
method Enumerable.__get($key) - added:
method Enumerable.__toString() - added:
method Enumerable.all() - added:
method Enumerable.average($callback = …) - added:
method Enumerable.avg($callback = …) - added:
method Enumerable.chunk($size) - added:
method Enumerable.collapse() - added:
method Enumerable.collect() - added:
method Enumerable.combine($values) - added:
method Enumerable.concat($source) - added:
method Enumerable.contains($key, $operator = …, $value = …) - added:
method Enumerable.containsStrict($key, $value = …) - added:
method Enumerable.countBy($callback = …) - added:
method Enumerable.dd(...$args) - added:
method Enumerable.diff($items) - added:
method Enumerable.diffAssoc($items) - added:
method Enumerable.diffAssocUsing($items, callable $callback) - added:
method Enumerable.diffKeys($items) - added:
method Enumerable.diffKeysUsing($items, callable $callback) - added:
method Enumerable.diffUsing($items, callable $callback) - added:
method Enumerable.dump() - added:
method Enumerable.duplicates($callback = …, $strict = …) - added:
method Enumerable.duplicatesStrict($callback = …) - added:
method Enumerable.each(callable $callback) - added:
method Enumerable.eachSpread(callable $callback) - added:
method Enumerable.every($key, $operator = …, $value = …) - added:
method Enumerable.except($keys) - added:
method Enumerable.filter(callable $callback = …) - added:
method Enumerable.first(callable $callback = …, $default = …) - added:
method Enumerable.firstWhere($key, $operator = …, $value = …) - added:
method Enumerable.flatMap(callable $callback) - added:
method Enumerable.flip() - added:
method Enumerable.forPage($page, $perPage) - added:
method Enumerable.get($key, $default = …) - added:
method Enumerable.groupBy($groupBy, $preserveKeys = …) - added:
method Enumerable.has($key) - added:
method Enumerable.implode($value, $glue = …) - added:
method Enumerable.intersect($items) - added:
method Enumerable.intersectByKeys($items) - added:
method Enumerable.isEmpty() - added:
method Enumerable.isNotEmpty() - added:
method Enumerable.join($glue, $finalGlue = …) - added:
method Enumerable.keyBy($keyBy) - added:
method Enumerable.keys() - added:
method Enumerable.last(callable $callback = …, $default = …) - added:
method Enumerable.map(callable $callback) - added:
method Enumerable.mapInto($class) - added:
method Enumerable.mapSpread(callable $callback) - added:
method Enumerable.mapToDictionary(callable $callback) - added:
method Enumerable.mapToGroups(callable $callback) - added:
method Enumerable.mapWithKeys(callable $callback) - added:
method Enumerable.max($callback = …) - added:
method Enumerable.median($key = …) - added:
method Enumerable.merge($items) - added:
method Enumerable.mergeRecursive($items) - added:
method Enumerable.min($callback = …) - added:
method Enumerable.mode($key = …) - added:
method Enumerable.nth($step, $offset = …) - added:
method Enumerable.only($keys) - added:
method Enumerable.pad($size, $value) - added:
method Enumerable.partition($key, $operator = …, $value = …) - added:
method Enumerable.pipe(callable $callback) - added:
method Enumerable.pluck($value, $key = …) - added:
method Enumerable.random($number = …) - added:
method Enumerable.reduce(callable $callback, $initial = …) - added:
method Enumerable.reject($callback = …) - added:
method Enumerable.replace($items) - added:
method Enumerable.replaceRecursive($items) - added:
method Enumerable.reverse() - added:
method Enumerable.search($value, $strict = …) - added:
method Enumerable.shuffle($seed = …) - added:
method Enumerable.skip($count) - added:
method Enumerable.slice($offset, $length = …) - added:
method Enumerable.some($key, $operator = …, $value = …) - added:
method Enumerable.sort(callable $callback = …) - added:
method Enumerable.sortBy($callback, $options = …, $descending = …) - added:
method Enumerable.sortByDesc($callback, $options = …) - added:
method Enumerable.sortKeys($options = …, $descending = …) - added:
method Enumerable.sortKeysDesc($options = …) - added:
method Enumerable.split($numberOfGroups) - added:
method Enumerable.sum($callback = …) - added:
method Enumerable.take($limit) - added:
method Enumerable.tap(callable $callback) - added:
method Enumerable.union($items) - added:
method Enumerable.unique($key = …, $strict = …) - added:
method Enumerable.uniqueStrict($key = …) - added:
method Enumerable.unless($value, callable $callback, callable $default = …) - added:
method Enumerable.unlessEmpty(callable $callback, callable $default = …) - added:
method Enumerable.unlessNotEmpty(callable $callback, callable $default = …) - added:
method Enumerable.values() - added:
method Enumerable.when($value, callable $callback, callable $default = …) - added:
method Enumerable.whenEmpty(callable $callback, callable $default = …) - added:
method Enumerable.whenNotEmpty(callable $callback, callable $default = …) - added:
method Enumerable.where($key, $operator = …, $value = …) - added:
method Enumerable.whereBetween($key, $values) - added:
method Enumerable.whereIn($key, $values, $strict = …) - added:
method Enumerable.whereInStrict($key, $values) - added:
method Enumerable.whereInstanceOf($type) - added:
method Enumerable.whereNotBetween($key, $values) - added:
method Enumerable.whereNotIn($key, $values, $strict = …) - added:
method Enumerable.whereNotInStrict($key, $values) - added:
method Enumerable.whereStrict($key, $value) - added:
method LazyCollection.all() - added:
method LazyCollection.avg($callback = …) - added:
method LazyCollection.chunk($size) - added:
method LazyCollection.collapse() - added:
method LazyCollection.combine($values) - added:
method LazyCollection.concat($source) - added:
method LazyCollection.contains($key, $operator = …, $value = …) - added:
method LazyCollection.count() - added:
method LazyCollection.crossJoin(...$arrays) - added:
method LazyCollection.diff($items) - added:
method LazyCollection.diffAssoc($items) - added:
method LazyCollection.diffAssocUsing($items, callable $callback) - added:
method LazyCollection.diffKeys($items) - added:
method LazyCollection.diffKeysUsing($items, callable $callback) - added:
method LazyCollection.diffUsing($items, callable $callback) - added:
method LazyCollection.duplicates($callback = …, $strict = …) - added:
method LazyCollection.duplicatesStrict($callback = …) - added:
method LazyCollection.eager() - added:
method LazyCollection.except($keys) - added:
method LazyCollection.filter(callable $callback = …) - added:
method LazyCollection.first(callable $callback = …, $default = …) - added:
method LazyCollection.flatten($depth = …) - added:
method LazyCollection.flip() - added:
method LazyCollection.get($key, $default = …) - added:
method LazyCollection.getIterator() - added:
method LazyCollection.groupBy($groupBy, $preserveKeys = …) - added:
method LazyCollection.has($key) - added:
method LazyCollection.implode($value, $glue = …) - added:
method LazyCollection.intersect($items) - added:
method LazyCollection.intersectByKeys($items) - added:
method LazyCollection.isEmpty() - added:
method LazyCollection.join($glue, $finalGlue = …) - added:
method LazyCollection.keyBy($keyBy) - added:
method LazyCollection.keys() - added:
method LazyCollection.last(callable $callback = …, $default = …) - added:
method LazyCollection.map(callable $callback) - added:
method LazyCollection.mapToDictionary(callable $callback) - added:
method LazyCollection.mapWithKeys(callable $callback) - added:
method LazyCollection.median($key = …) - added:
method LazyCollection.merge($items) - added:
method LazyCollection.mergeRecursive($items) - added:
method LazyCollection.mode($key = …) - added:
method LazyCollection.nth($step, $offset = …) - added:
method LazyCollection.only($keys) - added:
method LazyCollection.pad($size, $value) - added:
method LazyCollection.pluck($value, $key = …) - added:
method LazyCollection.random($number = …) - added:
method LazyCollection.reduce(callable $callback, $initial = …) - added:
method LazyCollection.remember() - added:
method LazyCollection.replace($items) - added:
method LazyCollection.replaceRecursive($items) - added:
method LazyCollection.reverse() - added:
method LazyCollection.search($value, $strict = …) - added:
method LazyCollection.shuffle($seed = …) - added:
method LazyCollection.skip($count) - added:
method LazyCollection.slice($offset, $length = …) - added:
method LazyCollection.sort(callable $callback = …) - added:
method LazyCollection.sortBy($callback, $options = …, $descending = …) - added:
method LazyCollection.sortByDesc($callback, $options = …) - added:
method LazyCollection.sortKeys($options = …, $descending = …) - added:
method LazyCollection.sortKeysDesc($options = …) - added:
method LazyCollection.split($numberOfGroups) - added:
method LazyCollection.take($limit) - added:
method LazyCollection.tapEach(callable $callback) - added:
method LazyCollection.union($items) - added:
method LazyCollection.values() - added:
method LazyCollection.zip($items) - added:
property LazyCollection.source - added:
protected method LazyCollection.explodePluckParameters($value, $key) - added:
protected method LazyCollection.makeIterator($source) - added:
protected method LazyCollection.passthru($method, array $params) - added:
protected method ServiceProvider.callAfterResolving($name, $callback) - added:
protected method ServiceProvider.loadFactoriesFrom($paths) - added:
protected property Manager.config - added:
protected property Manager.container - added:
protected static property Env.factory - added:
protected static property Env.putenv - added:
protected static property Env.variables - added:
protected static property Str.uuidFactory - added:
static method Arr.hasAny($array, $keys) - added:
static method Enumerable.make($items = …) - added:
static method Enumerable.proxy($method) - added:
static method Enumerable.times($number, callable $callback = …) - added:
static method Enumerable.unwrap($value) - added:
static method Enumerable.wrap($value) - added:
static method Env.disablePutenv() - added:
static method Env.enablePutenv() - added:
static method Env.get($key, $default = …) - added:
static method Env.getFactory() - added:
static method Env.getVariables() - added:
static method LazyCollection.empty() - added:
static method LazyCollection.range($from, $to) - added:
static method LazyCollection.times($number, callable $callback = …) - added:
static method Pluralizer.inflector() - added:
static method Reflector.getParameterClassName($parameter) - added:
static method Reflector.isCallable($var, $syntaxOnly = …) - added:
static method Reflector.isParameterSubclassOf($parameter, $className) - added:
static method Str.afterLast($subject, $search) - added:
static method Str.beforeLast($subject, $search) - added:
static method Str.createUuidsNormally() - added:
static method Str.createUuidsUsing(callable $factory = …) - added:
static method Str.isUuid($value)
- removed:
class Input extends Facade - removed:
const Password.INVALID_PASSWORD - removed:
protected static method Input.getFacadeAccessor() - removed:
static method Input.get($key = …, $default = …) - changed:
static method Bus.fake() → static method Bus.fake($jobsToFake = …) - changed:
static method Storage.fake($disk = …) → static method Storage.fake($disk = …, array $config = …) - changed:
static method Storage.persistentFake($disk = …) → static method Storage.persistentFake($disk = …, array $config = …) - added:
const Password.RESET_THROTTLED - added:
static method Facade.partialMock()
- changed:
class NotificationFake implements NotificationFactory, NotificationDispatcher → class NotificationFake implements NotificationDispatcher, NotificationFactory - changed:
protected method BusFake.assertDispatchedTimes($command, $times = …) → method BusFake.assertDispatchedTimes($command, $times = …) - added:
constructor BusFake(Dispatcher $dispatcher, $jobsToFake = …) - added:
method BusFake.assertDispatchedAfterResponse($command, $callback = …) - added:
method BusFake.assertDispatchedAfterResponseTimes($command, $times = …) - added:
method BusFake.assertNotDispatchedAfterResponse($command, $callback = …) - added:
method BusFake.dispatchAfterResponse($command) - added:
method BusFake.dispatchedAfterResponse(string $command, $callback = …) - added:
method BusFake.hasDispatchedAfterResponse($command) - added:
method QueueFake.assertPushedWithoutChain($job, $callback = …) - added:
protected method BusFake.shouldFakeJob($command) - added:
protected property BusFake.commandsAfterResponse - added:
protected property BusFake.dispatcher - added:
protected property BusFake.jobsToFake
- added:
method EnumeratesValues.__get($key) - added:
method EnumeratesValues.__toString() - added:
method EnumeratesValues.average($callback = …) - added:
method EnumeratesValues.collect() - added:
method EnumeratesValues.containsStrict($key, $value = …) - added:
method EnumeratesValues.countBy($callback = …) - added:
method EnumeratesValues.dd(...$args) - added:
method EnumeratesValues.dump() - added:
method EnumeratesValues.each(callable $callback) - added:
method EnumeratesValues.eachSpread(callable $callback) - added:
method EnumeratesValues.every($key, $operator = …, $value = …) - added:
method EnumeratesValues.firstWhere($key, $operator = …, $value = …) - added:
method EnumeratesValues.flatMap(callable $callback) - added:
method EnumeratesValues.forPage($page, $perPage) - added:
method EnumeratesValues.getCachingIterator($flags = …) - added:
method EnumeratesValues.isNotEmpty() - added:
method EnumeratesValues.jsonSerialize() - added:
method EnumeratesValues.mapInto($class) - added:
method EnumeratesValues.mapSpread(callable $callback) - added:
method EnumeratesValues.mapToGroups(callable $callback) - added:
method EnumeratesValues.max($callback = …) - added:
method EnumeratesValues.min($callback = …) - added:
method EnumeratesValues.partition($key, $operator = …, $value = …) - added:
method EnumeratesValues.pipe(callable $callback) - added:
method EnumeratesValues.reject($callback = …) - added:
method EnumeratesValues.some($key, $operator = …, $value = …) - added:
method EnumeratesValues.sum($callback = …) - added:
method EnumeratesValues.tap(callable $callback) - added:
method EnumeratesValues.toArray() - added:
method EnumeratesValues.toJson($options = …) - added:
method EnumeratesValues.unique($key = …, $strict = …) - added:
method EnumeratesValues.uniqueStrict($key = …) - added:
method EnumeratesValues.unless($value, callable $callback, callable $default = …) - added:
method EnumeratesValues.unlessEmpty(callable $callback, callable $default = …) - added:
method EnumeratesValues.unlessNotEmpty(callable $callback, callable $default = …) - added:
method EnumeratesValues.when($value, callable $callback, callable $default = …) - added:
method EnumeratesValues.whenEmpty(callable $callback, callable $default = …) - added:
method EnumeratesValues.whenNotEmpty(callable $callback, callable $default = …) - added:
method EnumeratesValues.where($key, $operator = …, $value = …) - added:
method EnumeratesValues.whereBetween($key, $values) - added:
method EnumeratesValues.whereIn($key, $values, $strict = …) - added:
method EnumeratesValues.whereInStrict($key, $values) - added:
method EnumeratesValues.whereInstanceOf($type) - added:
method EnumeratesValues.whereNotBetween($key, $values) - added:
method EnumeratesValues.whereNotIn($key, $values, $strict = …) - added:
method EnumeratesValues.whereNotInStrict($key, $values) - added:
method EnumeratesValues.whereNotNull($key = …) - added:
method EnumeratesValues.whereNull($key = …) - added:
method EnumeratesValues.whereStrict($key, $value) - added:
protected method EnumeratesValues.getArrayableItems($items) - added:
protected method EnumeratesValues.operatorForWhere($key, $operator = …, $value = …) - added:
protected method EnumeratesValues.useAsCallable($value) - added:
protected method EnumeratesValues.valueRetriever($value) - added:
protected static property EnumeratesValues.proxies - added:
static method EnumeratesValues.make($items = …) - added:
static method EnumeratesValues.proxy($method) - added:
static method EnumeratesValues.unwrap($value) - added:
static method EnumeratesValues.wrap($value) - added:
trait EnumeratesValues
- removed:
method Translator.getFromJson($key, array $replace = …, $locale = …) - removed:
method Translator.trans($key, array $replace = …, $locale = …) - removed:
method Translator.transChoice($key, $number, array $replace = …, $locale = …)
- added:
method Validator.setImplicitAttributesFormatter(callable $formatter = …) - added:
protected method Validator.excludeAttribute(string $attribute) - added:
protected method Validator.removeAttribute($attribute) - added:
protected method Validator.shouldBeExcluded($attribute) - added:
protected property Validator.dotPlaceholder - added:
protected property Validator.excludeAttributes - added:
protected property Validator.excludeRules - added:
protected property Validator.implicitAttributesFormatter
- added:
method ValidatesAttributes.validateExcludeIf($attribute, $value, $parameters) - added:
method ValidatesAttributes.validateExcludeUnless($attribute, $value, $parameters) - added:
protected method ValidatesAttributes.convertValuesToNull($values) - added:
protected method ValidatesAttributes.prepareValuesAndOther($parameters) - added:
protected method ValidatesAttributes.shouldConvertToBoolean($parameter) - added:
protected method ValidatesAttributes.validatePassword($attribute, $value, $parameters)
- added:
method DatabaseRule.resolveTableName($table)
- changed:
class View implements ArrayAccess, ViewContract → class View implements ArrayAccess, Htmlable, ViewContract - added:
class ViewException extends ErrorException - added:
method View.toHtml() - added:
method ViewException.render($request) - added:
method ViewException.report() - added:
method ViewServiceProvider.registerBladeCompiler()
- added:
protected method BladeCompiler.appendFilePath($contents) - added:
protected method BladeCompiler.storeUncompiledBlocks($value)
- added:
protected method CompilesIncludes.compileIncludeUnless($expression)
- added:
protected static method ManagesLayouts.parentPlaceholderSalt() - added:
protected static property ManagesLayouts.parentPlaceholderSalt
- removed:
function array_add($array, $key, $value) - removed:
function array_collapse($array) - removed:
function array_divide($array) - removed:
function array_dot($array, $prepend = …) - removed:
function array_except($array, $keys) - removed:
function array_first($array, callable $callback = …, $default = …) - removed:
function array_flatten($array, $depth = …) - removed:
function array_forget(&$array, $keys) - removed:
function array_get($array, $key, $default = …) - removed:
function array_has($array, $keys) - removed:
function array_last($array, callable $callback = …, $default = …) - removed:
function array_only($array, $keys) - removed:
function array_pluck($array, $value, $key = …) - removed:
function array_prepend($array, $value, $key = …) - removed:
function array_pull(&$array, $key, $default = …) - removed:
function array_random($array, $num = …) - removed:
function array_set(&$array, $key, $value) - removed:
function array_sort($array, $callback = …) - removed:
function array_sort_recursive($array) - removed:
function array_where($array, callable $callback) - removed:
function array_wrap($value) - removed:
function camel_case($value) - removed:
function ends_with($haystack, $needles) - removed:
function kebab_case($value) - removed:
function snake_case($value, $delimiter = …) - removed:
function starts_with($haystack, $needles) - removed:
function str_after($subject, $search) - removed:
function str_before($subject, $search) - removed:
function str_contains($haystack, $needles) - removed:
function str_finish($value, $cap) - removed:
function str_is($pattern, $value) - removed:
function str_limit($value, $limit = …, $end = …) - removed:
function str_plural($value, $count = …) - removed:
function str_random($length = …) - removed:
function str_replace_array($search, array $replace, $subject) - removed:
function str_replace_first($search, $replace, $subject) - removed:
function str_replace_last($search, $replace, $subject) - removed:
function str_singular($value) - removed:
function str_slug($title, $separator = …, $language = …) - removed:
function str_start($value, $prefix) - removed:
function studly_case($value) - removed:
function title_case($value) - changed:
function __($key, $replace = …, $locale = …) → function __($key = …, $replace = …, $locale = …)