Skip to content

Upgrading laravel/framework 5 to 6

Breakingv5.8.38 → v6.20.45Breaking4Security15Platform3Deprecated1New113Changed119Fixed205Other14

BreakingUpgrade verdict

4 breaking changes and 3 platform requirement changes and 15 security fixes.

  • 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.
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.

Breaking4
Removes strval from Illuminate/Validation/ValidationRuleParser::explodeWildcardRules().
Illuminate/Validation/ValidationRuleParser::explodeWildcardRules()strval
Removes 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\RouteNotFoundExceptionInvalidArgumentException
Security15
Laravel environment manipulation via query string
High · CVSS 0.0
Laravel Framework Deserialization Vulnerability
Critical · CVSS 9.8
Laravel Framework XSS in Blade templating engine
Moderate · CVSS 6.1
laravel framework SQL Injection via limit and offset functions
High
SQL Server LIMIT / OFFSET SQL Injection in laravel/framework and illuminate/database
High
laravel framework Unexpected database bindings via requests
High
Unexpected database bindings
High · CVSS 7.2
Query Binding Exploitation
High · CVSS 7.2
Improper Input Validation in Laravel
High · CVSS 7.5
Laravel Guard bypass in Eloquent models
Moderate
Updates cookie encryption in the framework.
Laravel RCE vulnerability in "cookie" session driver
Critical · CVSS 9.9
Updates 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.
Deprecated1
Deprecates PendingMail::sendNow() and removes an unneeded check.
PendingMail::sendNow()

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