Skip to content

Latest commit

 

History

History
847 lines (678 loc) · 77.6 KB

CHANGELOG-5.4.md

File metadata and controls

847 lines (678 loc) · 77.6 KB

Release Notes for 5.4.x

[Unreleased]

Changed

  • Renamed MakeAuthCommand to AuthMakeCommand (#20216)
  • Don't use asset() helper inside mix() (#20197)

Fixed

  • Make sure Model::getDates() returns unique columns (#20193)
  • Fixed pulled doctrine/inflector version (#20227)
  • Fixed issue with chunkById() when orderByRaw() is used (#20236)

v5.4.30 (2017-07-19)

Fixed

  • Handle a non-existing key in ArrayStore (#20156)
  • Fixed bug @guest and @auth directives (#20166, b164e45)

v5.4.29 (2017-07-19)

Added

  • Added ManagesFrequencies::twiceMonthly() method (#19874)
  • Added RouteCollection::getRoutesByName() method (#19901)
  • Added $expiresAt parameter to CallbackEvent::withoutOverlapping() (#19861)
  • Support keeping old files when testing uploads (#19859)
  • Added --force option to make:mail, make:model and make:notification (#19932)
  • Added support for PostgreSQL deletes with USES clauses (#20062, f94fc02)
  • Added support for CC and BBC on mail notifications (#20093)
  • Added Blade @auth and @guest directive (#20087, #20114)
  • Added option to configure MARS on SqlServer connections (#20113, c2c917c)

Changed

  • Support object items in Arr::pluck() (#19838, #19845)
  • MessageBag interface now extends Arrayable (#19849)
  • Made Blueprint macroable (#19862)
  • Improved performance for Arr::crossJoin() (#19864)
  • Use the correct User model namespace for new policies (#19965, a7094c2)
  • Consider scheduled event timezone in inTimeInterval() (#19959)
  • Render exception if handler can't report it (#19977)
  • Made MakesHttpRequests::withServerVariables() public (#20086)
  • Invalidate session instead of regenerating it when logging out (#20107)
  • Improved InvalidPayloadException error message (#20143)

Fixed

  • Don't re-escape a View instance passed as the default value to @yield or @section directives (#19884)
  • Make sure migration file is loaded before trying to rollback (#19922)
  • Fixed caching issue in mix() (#19968)
  • Signal alarm after timeout passes (#19978)

v5.4.28 (2017-06-30)

Added

  • Added avg() and average() as higher order proxies (#19628)
  • Added fresh() method to Eloquent collection (#19616, #19671)
  • Added ability to remove a global scope with another global scope (#19657)
  • Added Collection::intersectKey() method (#19683)
  • Support setting queue name via broadcastQueue() method (#19703, #19708)
  • Support default return on BelongsTo relations (#19733, #19788, 1137d86, ed0182b)
  • Added unless() method to query builder and collection (#19738, #19740)
  • Added array_random() helper (#19741, #19818, #19826)
  • Support multiple manifest files on mix() (#19764)

Changed

  • Escape default value passed to @yield directive (#19643)
  • Support passing multiple fields to different validation rule (#19637)
  • Only dispatch the MessageSent event if mails should be sent (#19690)
  • Removed duplicate / from public_path() (#19731)
  • Made ThrottlesLogins more customizable (#19787)
  • Support PostgreSQL insert statements with DEFAULT VALUES (#19804)

Fixed

  • Fixed BelongsTo bug with incrementing keys (#19631)
  • Fixed PDO return value bug in unprepared() (#19667)
  • Don't use event() helper in Http\Kernel (#19688)
  • Detect lock wait timeout as deadlock (#19749)
  • Improved escaping special characters in MySQL comments (#19798)
  • Fixed passing email as string to Event::emailOutputTo() (#19802)
  • Fixed withoutOverlapping() not creating mutex (#19834)

Removed

  • Removed role attribute from forms in stubs (#19792)

v5.4.27 (2017-06-15)

Added

  • Added Collection::diffAssoc() method (#19604)

Changed

  • Updated PHPUnit whitelist (#19609)

Fixed

  • Update timestamps on soft delete only when they are used (#19627)

v5.4.26 (2017-06-13)

Added

  • Added Event::nextRunDate() method (#19537, 09dd336)
  • Added null safe operator <=> to query builder operators list (#19539)
  • Added Macroable trait to RequestGuard (#19569)

Changed

  • Touch updated_at timestamp when soft deleting (#19538)
  • Accept argument list in Rule::in() and Rule::notIn() (#19555)
  • Support checking for strings job names using QueueFake (#19575)
  • Improved image ratio validation precision (#19542)

Fixed

  • Resume scheduled task if an error occurs (#19419)
  • Decode HTML entities in plain text emails (#19518)
  • Added missing locales to MessageSelector::getPluralIndex() (#19562)
  • Use strict check when object is passed to Collection::contains() (#19568)
  • Fixed jobs with a timeout of 0 (#19586)
  • Never pass Throwable to stopWorkerIfLostConnection() (#19591)

v5.4.25 (2017-06-07)

Added

  • Added Macroable trait to FactoryBuilder (#19425)
  • Allow a plain text alternative view when using markdown within Mailables (#19436, ad2eaf7)
  • Added nested transactions support for SqlServer (#19439)

Changed

  • Moved env() helper to Support component (#19409)
  • Prevent BadMethodCallException in RedirectResponse::withErrors() (#19426)
  • Suppress error if calling Str::replaceFirst() with an empty search (#19427)
  • Removed the callable type hint for array_sort() (#19483)
  • Return the used traits from TestCase::setUpTraits() (#19486)

Fixed

  • Fixes and optimizations for Str::after() (#19428)
  • Fixed queue size when using Beanstalkd driver (#19465)
  • Check if a mutex can be created before running the callback task in CallbackEvent::run() (#19466)
  • Flip expected and actual value on TestResponse::assertCookie() (#19495)
  • Fixed undefined variable error in Mailable class (#19504)
  • Prevent error notice when database.collation is not set (#19507)

v5.4.24 (2017-05-30)

Added

  • Support magic controller methods (#19168)
  • Added Gate resources (#19124)
  • Added Request::routeIs() method (#19202, 26681eb)
  • Route Route::isName() shorthand method (#19227)
  • Added support for custom columns in softDeletes() method (#19203)
  • Added ManagesLayouts::getSection() method (#19213)
  • Added Model::refresh() shorthand (#19174)
  • Added Container::forgetExtenders() method (#19269, 7c17bf5)
  • Added Filesystem::hash() method (#19256)
  • Added TestResponse::assertViewIs() method (#19291)
  • Added path to Paginator (#19314)
  • Added Collection::concat() method (#19318, 0f5337f)
  • Added make() method to HasOneOrMany and MorphOneOrMany relations (#19307)
  • Added str_after() helper function (#19357)
  • Added Router::apiResource() method (#19347)

Changed

  • Move $sizeRules and $numericRules properties from FormatsMessages to Validator (dc7e7cb)
  • Allows calls to Collection::times() without the $callback parameter (#19278)
  • Don't ignore jobs with a timeout of 0 (#19266)
  • Resolve database paginators from the container (#19328)
  • Added news to Pluralizer::$uncountable() (#19353)
  • Switched to using app()->getLocale() in app.stub (#19405)

Fixed

  • Fixed Container::makeWith() not using parameters when resolving interfaces (#19178)
  • Stop validating Memcached connection (#19192)
  • Fixed the position of bound() in Container::instance() (#19207)
  • Prevent applying global scopes on the factory while setting the connection (#19258)
  • Fixed database connection issue in queue worker (#19263)
  • Don't use HTML comments in notification email template (#19289)
  • Fire rebinding callback when using bind() method to bind abstract (#19288)
  • Return 0 from callScope() if $query->wheres is null (#19381)

v5.4.23 (2017-05-11)

Added

  • Added Gate::abilities() accessor (#19143, e9e34b5)
  • Added ability to eager load counts via $withCount property (#19154)

Fixed

  • Fixed inversion of expected and actual on assertHeader (#19110)
  • Fixed filesystem bug in Filesystem::files() method on Windows (#19157)
  • Fixed bug in Container::build() (#19161, bf669e1)

Removed

  • Removed window.Laravel object (#19135)

v5.4.22 (2017-05-08)

Added

  • Support dynamic number of keys in MessageBag::hasAny() (#19002)
  • Added Seeder::callSilent() method (#19007)
  • Add make() method to Eloquent query builder (#19015)
  • Support Arrayable on Eloquent's find() method (#19019)
  • Added SendsPasswordResetEmails::validateEmail() method (#19042)
  • Allow factory attributes to be factory instances themselves (#19055)
  • Implemented until() method on EventFake (#19062)
  • Added $encoding parameter to Str::length() (#19047, #19079)

Changed

  • Throw exception when invalid first argument is passed to cache() helper (d9459b2)
  • Use getAuthIdentifierName() in Authenticatable::getAuthIdentifier() (#19038)
  • Clone queries without order by for aggregates (#19064)
  • Force host on password reset notification (cef1055)

Fixed

  • Set data key when testing file uploads in nested array (#18954)
  • Fixed a bug related to sub select queries and extra select statements (#19013)
  • Resolve aliases from container when using parameters (#19071)
  • Stop worker if database disconnect occurred (#19080, 583b1b8)
  • Fixed internal call to assertJson() in assertJsonStructure() (#19090)

v5.4.21 (2017-04-28)

Added

Fixed

  • Reverted queue prefix option #18860 (#18987)
  • Return null if key is not found from RedisStore:many() (#18984)

v5.4.20 (2017-04-27)

Added

  • Added higher order tap (3abc4fb)
  • Added Collection::mapToGroups() (#18949)
  • Added FactoryBuilder::lazy() method (#18823)
  • Support Redis Sentinel configuration (#18850)
  • Added queue.prefix option (#18860, 8510bf9)
  • Allow getDisplayableAttribute() to be used in custom replacers (#18895)
  • Added resourceMethodsWithoutModels() method to AuthorizesRequests (#18916, #18964)
  • Added name to home route (#18942)

Changed

  • Return PendingDispatch for Kernel::queue() (51647eb)
  • Made RedisManager::resolve() public (#18830, eb9b99d)
  • Changed email body color to match wrapper color (#18824)
  • Break and hyphenate long words in emails (#18827)
  • Force database migration to use the write PDO (#18898)
  • Support JSON_PARTIAL_OUTPUT_ON_ERROR on JsonResponse (#18917, db5f011)

Fixed

  • Set connection on model factory (#18846, 95a0663)
  • Fixed route parameter binding for routes with leading slashes (#18855)
  • Don't call cleanParameterBag() twice during JSON request (#18840)
  • Prevent exception in getActualClassNameForMorph() when morph map is null (#18921)
  • Use protocol-relative URL in mix() helper (#18943)
  • Cast $viaChannels to array (#18960)

v5.4.19 (2017-04-16)

Added

  • Added ability to send link_names parameter in Slack notification (#18765)
  • Added Mailable::hasFrom() method (#18790)

Changed

  • Made Mailer macroable (#18763)
  • Made SessionGuard macroable (#18796)
  • Improved queue worker output (#18773)
  • Added newModelInstance() method to Eloquent Builder (#18775)
  • Use assertions instead of exceptions in MocksApplicationServices (#18774)

Fixed

  • Fixed memory issue in Container (#18812)
  • Set database connection while retrieving models (#18769)

v5.4.18 (2017-04-10)

Added

  • Added assertSuccessful() and assertRedirect() to TestResponse (#18629)
  • Added assertSeeText() and assertDontSeeText() to TestResponse (#18690)
  • Added assertJsonMissing() to TestResponse (#18721, 786b782)
  • Added support for attaching an image to Slack attachments $attachment->image($url)(#18664)
  • Added Validator::extendDependent() to allow adding custom rules that depend on other fields (#18654)
  • Added support for --parent option on make:controller (#18606)
  • Added MessageSent event to Mailer (#18744, 6c5f3a4)

Changed

  • Don't trim leading slashes on local filesystem base URLs (acd66fe)
  • Accept variable on @empty() directive (#18738)
  • Added string validation rules to AuthenticatesUsers (#18746)

Fixed

  • Fixed an issue with Collection::groupBy() when the provided value is a boolean (#18674)
  • Bring back an old behaviour in resolving controller method dependencies (#18646)
  • Fixed job release when exception occurs (#18737)
  • Fixed eloquent increment() and decrement() update attributes (#18739, 1728a88)

v5.4.17 (2017-04-03)

Added

  • Added getManager() and setManager() to queue worker (#18452)
  • Added support for Pheanstalk's $timeout and $persistent options (#18448)
  • Added Collection::times() method (#18457)
  • Added PostgreSQL's REAL data type (#18513)
  • Added flatMap to collection higher order proxies (#18529)
  • Support multiple --path parameters with migrate:reset (#18540)
  • Store SparkPost Transmission-ID in the header after sending message (#18594)

Changed

  • Check for Htmlable instead of HtmlString in Mailer::renderView() (#18459, da7b006)
  • Added mutex for schedule events (#18295, ae2eb1f)
  • Don't use helper functions in service providers (#18506, #18521)
  • Change user_id to unsigned integer in database session stub (#18557)
  • Improved performance of UrlGenerator::isValidUrl() (#18566)

Fixed

  • Handle missing or malformed config/app.php file (#18466, 92931cf)
  • Only call up and down on migration if the method exists (d27d94e)
  • Fixed overwriting of routes with identical path and method (#18475, 5aee967)
  • Fixing model/route binding with identical name (#18476)
  • Allow rollbackMigrations() path to be with string (#18535)
  • Use getStatusCode() in TestResponse::assertRedirect() (#18559)
  • Case parseIds() to array in InteractsWithPivotTable::sync() (#18547)
  • Preserve route parameter names (#18604)

v5.4.16 (2017-03-21)

Added

  • Added PHPDBG detection to runningInConsole() (#18198)
  • Added Arr:wrap() method (#18216)
  • Allow scheduling of queued jobs (#18235, 7bb67e2)
  • Allow skipping mail sending if a listener to MessageSending returns false (#18245)
  • Added BcryptHasher::cost() method (#18266)
  • Added Command::alert() method (#18272)
  • Added tap() method to query builder (#18284)
  • Added orderByDesc() methods to query builder (#18292)
  • Added Container::makeWith() method (#18271, #18320)
  • Added InteractsWithDatabase::assertSoftDeleted() (#18328, 2d4e1f0, f89f917)
  • Added ability to set queue parameters inside queued listeners (#18375, cf461e2)
  • Added Model::setKeyType() (#18354)
  • Output migration name before starting a migration or rollback (#18379, e47e8b1)
  • Added pipeline(), transaction(), and executeRaw() to PhpRedisConnection (#18421)
  • Added @isset() directive (#18425)
  • Added tinyIncrements() database schema method (#18424)

Changed

  • Throw exception when bootstrap/cache directory is not writable (#18188, b4f0005)
  • Use resource_path() helper in MakeAuthCommand (#18215)
  • Added file_exists() check to Event::emailOutput() (c8eafa8)
  • Allow wildcards in MIME type validations (#18243)
  • Only push existing jobs back into the queue using queue:retry (#18279, e874a56)
  • Support file uploads in nested array (#18276)
  • Don't use config() helper in Mail component (#18290)
  • Return the insert ID from DatabaseJob::release() (#18288, #18291)
  • Changed id in failed jobs migration stub to bigIncrements() (#18300)
  • Prevent make:auth from overwriting existing views (#18319, bef8f35)
  • Ensure Mailable view data is not overridden by order of operations (#18322)
  • Use getAuthIdentifier() method in broadcasters (#18351)
  • Use atomic cache operation when checking for event overlaps (8ebb5b8)
  • Return pretty JSON response from HasInDatabase::failureDescription() (#18377)
  • Allow Validator extension to use array-style callable (#18399)
  • Pass the condition value to query builder's when() method (#18419)
  • Don't require returning the query from when() method (#18422)

Fixed

  • Fixed an issue with slots when passed content equals null (#18246)
  • Do require Closure in orWhereHas() (#18277)
  • Let PHP parse @includeWhen directive (#18285)
  • Only include .php files when loading database factories (#18336)
  • Fixed PHP 5.6 issue in FileFactory::generateImage() (#18345)
  • Allow ImplicitRouteBinding to match camelcase method parameter names (#18307, 4ae31a1)
  • Fixing weird behaviour of Connection::getConfig() when null was passed (#18356)
  • Attempt to solve an issue with using required_* rules while the ConvertEmptyStringToNull middleware is applied (#18376)
  • Fixed faking of model events (d6cb75c)
  • Prevent model event result from firing observable events (#18401, 0607db0)
  • Fix issue in authorizeResource() with compound names (#18435)

v5.4.15 (2017-03-02)

Added

  • Added any() method to ViewErrorBag (#18176)
  • Added Storage and File fakes (#18178, #18180)

Changed

  • Made queue worker properties $shouldQuit and $paused public (e40c0e7)

Fixed

  • Proxy isset() checks on TestResponse (#18182)

v5.4.14 (2017-03-01)

Added

  • Added Str::kebab() and kebab_case() helper (#18084)
  • Added Route::getActionMethod() (#18105)
  • Support granular $tries and $timeout on Mailable (#18103)
  • Added context to the assertJson() response (#18166, da2c892)
  • Add whereNotIn() and whereNotInStrict() to Collection (#18157)

Changed

  • Create TestResponse using composition instead of inheritance (#18089)
  • Changed visibility of Pivot::$parent from protected to public (#18096)
  • Catch Sqlite3 deadlocks in DetectsDeadlocks (#18107)
  • Use fromRawAttributes() when in Model::newPivot() (#18127, 063e5ae)
  • Use default connection in DatabaseManager::purge() when no connection name is provided (#18128)
  • Convert rule objects only once to string (#18141)
  • Respect ShouldQueue contract in Mailer::send() (#18144, 717f1f6, #18160)

Fixed

  • Don't use value() helper in BoundMethod class (#18075)
  • Don't require manifest file when running npm run hot (#18088)
  • Fixed injection placement of dependencies for routing method parameters (#17973)
  • Return false from Model::fireModelEvent() if custom model event returns false (c5a6290)
  • Fixed firstOrFail() on relation setting the wrong model on ModelNotFoundException (#18138)
  • Fixed RateLimiter setting initial attempts count to 2 (#18139)
  • Fixed compiled DELETE query when using JOIN with aliases (#18156, e09b9eb)
  • Fixed validating present in combination with nullable (#18173)

v5.4.13 (2017-02-22)

Added

  • Add $default parameter to Collection::when() method (#17941)
  • Support --resource argument on make:model command (#17955)
  • Added replaceDimensions() for validator messages (#17946, b219058)
  • Allow Slack notifications to use image urls (#18011)
  • Added @includeWhen($condition, $view, $data) directive (#18047)

Changed

  • Prevent Blade from compiling statements inside comments (#17952)
  • Don't flash empty array to session, if withInput() is given empty array (#17979)
  • Use the pagination translation strings in paginator templates (#18009)
  • Use getAuthPassword() method in AuthenticateSession middleware (#17965)
  • Return null from Gate::getPolicyFor() if given class is not a string (#17972)
  • Add missing methods to the Job interface (#18034)
  • Improved PostgreSQL table existence check (#18041)
  • Allow getActualClassNameForMorph() used by morphInstanceTo() to be overridden (#18058)

Fixed

  • Fixed @lang directive when used with JSON file (#17919, 2bd35c1)
  • Improved image dimensions validation rule (#17943, #17944, #17963, #17980)
  • Fixed $willBeAvailableAt having the wrong time if using $retryAfter in MaintenanceModeException (#17991)
  • Trim spaces while collecting section name (#18012)
  • Fixed implementation of SqsQueue::size() (#18037)
  • Fixed bug in PasswordBroker::deleteToken() (#18045)
  • Fixed route parameters binding (#17973)

v5.4.12 (2017-02-15)

Added

  • Allow configuration of Faker locale through app.faker_locale config (#17895)
  • Added when() method to Collection class (#17917)
  • Check for files in request() helper (e08714d, 18d1648)
  • Added TestResponse::assertSessionHasErrors() method (dbaf3b1)

Changed

  • Prevent duplication of embedded files in Mail\Message (#17877)
  • Only unserialize data if needed in CallQueuedListener (964fb7f)
  • Made a couple of properties public (614b94a)
  • Handle Model instances in Authorize middleware (#17898)
  • Use asset() helper in app.stub (#17896)
  • Test PhpRedis connection if extension is loaded (#17882, #17910)
  • Use Carbon::setTestNow() in all tests (#17937)

Fixed

  • Make sub select union queries work with SQLite (#17890)
  • Fix zRangeByScore() options syntax for PhpRedis (#17912)

v5.4.11 (2017-02-10)

Added

  • Support Encrypt and TrustServerCertificate options on SqlServer connections (#17841)
  • Support custom pivot models in MorphToMany::newPivot() (#17862)
  • Support Arrayable objects in Eloquent's whereKey() method (#17812)

Changed

  • Use app.locale lang attribute in app.stub (#17827)
  • Throw JsonEncodingException when JSON encoder fails to encode eloquent attribute (#17804, 11e89f3)
  • Ensure file hashName() is unique (#17879, 830f194)

Fixed

  • Added missing Str class import to TestResponse (#17835)
  • Fixed PhpRedis’ zadd() method signature (#17832)

v5.4.10 (2017-02-08)

Added

  • Added Blade @prepend directive (#17696)
  • Added Collection::tap() method (#17756)
  • Allow multiple manifest files for mix() helper (#17759)
  • Adding facility to Log:useSyslog() (#17789)
  • Added macros to Eloquent builder (#17719)
  • Added TestResponse::assertJsonFragment() method (#17809)

Changed

  • Use route() helper instead of url() in authentication component (#17718)
  • Ensure that the map() method exists before calling in RouteServiceProvider::loadRoutes() (#17784)
  • Clean up how events are dispatched (8c90e7f, c9e8854)
  • Changed job name to displayName (4e85a9a, d033626)
  • Made plain string job payloads more similar to object based payloads (bd49288)
  • Bring back pluralization rules for translations (#17826)

Fixed

  • Apply overrides in factory()->raw() method (#17763)

v5.4.9 (2017-02-03)

Added

  • Added Macroable trait to TestResponse (#17726)
  • Added container alias for the Redis connection instance (#17722)
  • Added raw() method to FactoryBuilder (#17734)
  • Added json() as alias for decodeResponseJson method on TestResponse (#17735)

Changed

  • Use route() helper instead of url() in authentication component (#17718)
  • Added Jedi to uncountable list for pluralization (#17729)
  • Return relative URL from mix() helper (#17727)
  • Sort foreign keys on eloquent relations (#17730)
  • Properly set the JSON payload of FormRequests instead of re-building it (#17760, 2d725c2)
  • Use isset() instead of array_key_exists() in HasAttributes::getAttributeFromArray() (#17739)

Fixed

  • Added missing sleep option to queue:listen (59ef5bf)
  • Switched to strict comparison TrimStrings middleware (#17741)

v5.4.8 (2017-02-01)

Added

  • Added TestResponse::assertJsonStructure() (#17700)
  • Added Macroable trait to Eloquent Relation class (#17707)

Changed

  • Move shouldKill() check from daemon() to stopIfNecessary() (8403b34)
  • Removed isset() check from validateSame() (#17708)

Fixed

  • Added force option to queue:listen signature (#17716)
  • Fixed missing return in HasManyThrough::find() and HasManyThrough::findMany() (#17717)

v5.4.7 (2017-01-31)

Added

  • Added Illuminate\Support\Facades\Schema to notifications.stub (#17664)
  • Added support for numeric arguments to @break and @continue (#17603)

Changed

  • Use usesTimestamps() in Eloquent traits (#17612)
  • Default to null if amount isn't set in factory() helper (#17614)
  • Normalize PhpRedis GET/MGET results (#17196)
  • Changed visibility of Validator::addRules() from protected to public (#17654)
  • Gracefully handle SIGTERM signal in queue worker (b38ba01, 819888c)
  • Support inspecting multiple events of same type using Event fake (55be2ea)
  • Replaced hard-coded year in plain-text markdown emails (#17684)
  • Made button component in plain-text markdown emails easier to read (#17683)

Fixed

  • Set Command::$name in Command::configureUsingFluentDefinition() (#17610)
  • Support post size 0 (unlimited) in ValidatePostSize (#17607)
  • Fixed method signature issues in PhpRedisConnection (#17627)
  • Fixed BelongsTo not accepting id of 0 in foreign relations (#17668)
  • Support double quotes with @section() (#17677)
  • Fixed parsing explicit validator rules (#17681)
  • Fixed SessionGuard::recaller() when request is null (#17688, 565456d)
  • Added missing force and tries options for queue:listen (#17687)
  • Fixed how reservation works when queue is paused (9d348c5)

v5.4.6 (2017-01-27)

Added

  • Generate non-existent models with make:controller (#17587, 382b78c)
  • Added TestResponse::dump() method (#17600)

Changed

  • Switch to ViewFactory contract in Mail/Markdown (#17591)
  • Use implicit binding when generating controllers with make:model (#17588)
  • Made PhpRedis method signatures compatibility with Predis (#17488)
  • Use config('app.name') in markdown/message.blade.php (#17604)
  • Use getStatusCode() instead of status() in TestResponse::fromBaseResponse() (#17590)

Fixed

  • Fixed loading of .env.testing when running PHPUnit (#17596)

v5.4.5 (2017-01-26)

Fixed

  • Fixed database session data not persisting (#17584)

v5.4.4 (2017-01-26)

Added

  • Add hasMiddlewareGroup() and getMiddlewareGroups() method to Router (#17576)

Fixed

  • Fixed --database option on migrate commands (#17574)
  • Fixed $sequence being always overwritten in PostgresGrammar::compileInsertGetId() (#17570)

Removed

  • Removed various unused parameters from view compilers (#17554)
  • Removed superfluous ForceDelete extension from SoftDeletingScope (#17552)

v5.4.3 (2017-01-25)

Added

  • Mock dispatch() method in MocksApplicationServices (#17543, d974a88)

Changed

  • Moved $forElseCounter property from BladeCompiler to CompilesLoops (#17538)

Fixed

  • Fixed bug in Router::pushMiddlewareToGroup() (1054fd2)
  • Fixed indentation in Notifications/resources/views/email.blade.php (0435cfc)

v5.4.2 (2017-01-25)

Fixed

  • Fixed removal of reset tokens after password reset (#17524)

v5.4.1 (2017-01-24)

Fixed

  • Fixed view parent placeholding (64f7e9c)

v5.4.0 (2017-01-24)

General

  • Added real-time facades 😈 (feb52bf)
  • Added retry() helper (e3bd359, 52e9381)
  • Added array_wrap() helper function (0f76617)
  • Added default 503 error page into framework (855a8aa, #16848)
  • Added Encrypter::encryptString() to bypass serialization (9725a8e)
  • Removed compiled class file generation and deprecated ServiceProvider::compiles() (#17003, 733d829)
  • Renamed DetectEnvironment to LoadEnvironmentVariables (c36874d)
  • Switched to ::class notation across the codebase (#17357)

Authentication

  • Secured password reset tokens against timing attacks and compromised databases (#16850, 9d674b0)
  • Refactored authentication component (7b48bfc, 5c4541b)
  • Added names to password reset routes (#16988)
  • Stopped touching the user timestamp when updating the remember_token (#17135)

Authorization

  • Consider interfaces and extended classes in Gate::resolvePolicyCallback() (#15757)

Blade

  • Added Blade components and slots (e8d2a45, a00a201)
  • Refactored Blade component (7cdb6a6, 5e394bb)
  • Refactored View component (#17018, bb998dc)
  • Refactored Blade @parent compilation (#16033, 16f72a5)
  • Added support for translation blocks in Blade templates (7179935)
  • Don't reverse the order of @pushed data (#16325)
  • Allow view data to be passed Paginator methods (#17331)
  • Add mix() helper method (6ea4997)
  • Escape inline sections content (#17453)

Broadcasting

  • Added model binding in broadcasting channel definitions (#16120, 515d97c)
  • Added Dispatchable::broadcast() 0fd8f8d
  • Switched to broadcasting events using new style jobs (#17433)

Cache

  • Added RedisStore::add() to store an item in the cache if the key doesn't exist (#15877)
  • Added cache:forget command (#16201, 7644977)
  • Refactored cache events (b7454f0, #17120)
  • Cache::flush() now returns boolean (#15831, 057492d)

Collections

  • Added higher-order messages for the collections (#16267, e276b3d, 2b7ab30, #16274, 724950a, #17000)
  • Allow collection macros to be proxied (#16749)
  • Added operator support to Collection::contains() method (#16791)
  • Renamed every() method to nth() and added new every() to determine if all items pass the given test (#16777)
  • Allow passing an array to Collection::find() (#16849)
  • Always return a collection when calling Collection::random() with a parameter (#16865)
  • Don't renumber the keys and keep the input array order in mapWithKeys() (#16564)

Console

  • Added --model to make:controller command to generate resource controller with type-hinted model (#16787)
  • Require confirmation for key:generate command in production (#16804)
  • Added ManagesFrequencies trait (e238299)
  • Added Queueable to queued listener stub (dcd64b6)
  • Switched from file to cache based Schedule overlap locking (#16196, 5973f6c)
  • Changed namespace generation in GeneratorCommand (de9e03d)
  • Added Command::$hidden and ScheduleFinishCommand (#16806)
  • Moved all framework command registrations into ArtisanServiceProvider (954a333, baa6054, 87bd2a9)
  • Support passing output buffer to Artisan::call() (#16930)
  • Moved tinker into an external package (#17002)
  • Refactored queue commands (07a9402, a82a25f, f2beb2b)
  • Allow tasks to be scheduled on weekends (#17085)
  • Allow console events to be macroable (#17107)

Container

  • Added Container::factory() method to the Container contract (#15430)
  • Added support for binding methods to the container (#16800, 1fa8ea0)
  • Trigger callback when binding an extension or resolving callback to an alias (c99098f)
  • Support contextual binding with aliases (c99098f)
  • Removed $parameters from Application::make() and app()/resolve() helpers (#17071, #17060)
  • Removed Container::share() (1a1969b)
  • Removed Container::normalize() (ff993b8)

DB

  • Refactored all database components (too many commits, sorry)
  • Allow rolling back to a given transaction save-point (#15876)
  • Added $values parameter to Builder::firstOrNew() (#15567)
  • Allow dependency injection on database seeders run() method (#15959)
  • Added support for joins when deleting deleting records using SqlServer (#16618)
  • Added collation support to SQLServerGrammar (#16227)
  • Don't rollback to save-points on deadlock (nested transaction) (#15932)
  • Improve Connection::selectOne() performance by switching to array_shift() (#16188)
  • Added having() shortcut (#17160)
  • Added customer connection resolver (#17248)
  • Support aliasing database names with spaces (#17312)
  • Support column aliases using chunkById() (#17034)
  • Execute queries with locks only on write connection (#17386)
  • Added compileLock() method to SqlServerGrammar (#17424)

Eloquent

  • Refactored Eloquent (too many commits, sorry)
  • Added support for object-based events for native Eloquent events (e7a724d, 9770d1a)
  • Added custom class support for pivot models (#14293, 5459777)
  • Use the model's primary key instead of id in Model::getForeignKey() (#16396)
  • Made date and datetime cast difference more explicit (#16799)
  • Use getKeyType() instead of $keyType in Model (#16608)
  • Only detach all associations if no parameter is passed to BelongsToMany::detach() (#16144)
  • Return a database collection from HasOneOrMany::createMany() (#15944)
  • Throw JsonEncodingException when Model::toJson() fails (#16159, 0bda866)
  • Default foreign key for belongsTo() relationship is now dynamic (#16847)
  • Added whereKey() method (#16558)
  • Use parent connection if related model doesn't specify one (#16103)
  • Enforce an orderBy clause for chunk() (#16283, #16513)
  • Added $connection parameter to create() and forceCreate() (#17392)

Events

  • Removed event priorities (dbbfc62, #17245, f83edc1)
  • Allow queued handlers to specify their queue and connection (fedd4cd)
  • Converted locale.changed event into LocaleUpdated class (3385fdc)
  • Unified wording (2dcde69)
  • Allow chaining queueable methods onto trait dispatch (9fde549)
  • Removed Queueable trait from event listeners subs (2a90ef4)

Filesystem

  • Use UUID instead of md5() for generating file names in FileHelpers (#16193)
  • Allow array of options on Filesystem operations (481f760)

HTTP

  • Refactored session component (66976ba, d9e0a6a)
  • Added Illuminate\Http\Request\Concerns traits (4810e9d)
  • Use variable-length method signature for CookieJar::queue() (#16290, ddabaaa)
  • Added FormRequestServiceProvider (b892805)
  • Renamed Http/Exception namespace to Http/Exceptions (#17398)
  • Renamed getJsonOptions() to getEncodingOptions() on JsonResponse (e689b2a)
  • Renamed VerifyPostSize middleware to ValidatePostSize (893a044)
  • Converted kernel.handled event into RequestHandled class (43a5e5f)
  • Throw AuthorizationException in FormRequest (1a75409)
  • Use Str::random instead of UUID in FileHelpers (#17046)
  • Moved getOriginalContent() to ResponseTrait (#17137)
  • Added JSON responses to the AuthenticatesUsers and ThrottlesLogins (#17369)
  • Added middleware to trim strings and convert empty strings to null (f578bbc)

Logging

  • Added LogServiceProvider to defer loading of logging code (#15451, 6550153, #15794)
  • The Log facade now uses LoggerInterface instead of the log writer (#15855)
  • Converted illuminate.log event into MessageLogged class (57c82d0)

Mail

  • Added support for Markdown emails and notifications (#16768, b876759, cd569f0, 5325385)
  • Refactored Mail component and removed SuperClosure dependency (50ab994, 5dace8f)
  • Allow Mailer to email HtmlString objects (882ea28)
  • Added hasTo(), hasCc() and hasBcc() to Mailable (fb29b38)

Notifications

  • Added NotificationSender class (5f93133)
  • Removed to and cc from mail MailMessage (ff68549)
  • Add salutation option to SimpleMessage notification (#17429)

Queue

Redis

Routing

Testing

Translations

  • Added JSON loader for translations and __() helper (#16424, #16470, 9437244)
  • Replaced Symfony's translator (#15563)
  • Added namespaces() method to translation loaders (#16664, fe7bbf7)
  • Switched to trans() helper in AuthenticatesUsers (#17202)

Validation

  • Refactored Validation component (#17005, 9e98e7a, 9b817f1)
  • Removed files hydration in Validator (#16017)
  • Added IPv4 and IPv6 validators (#16545)
  • Made date_format validation more precise (#16858)
  • Add place-holder replacers for *_or_equal rules (#17030)
  • Made sometimes() chainable (#17241)
  • Support wildcards in MessageBag::first() (#15217)
  • Support implicit keys in MessageBag::first() and MessageBag::first() (#17001)
  • Support arrays with empty string as key (#17427)
  • Add type check to validateUrl() (#17504)