All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Added
dd
to list of early terminating functions (#710)
- Support to PHP 8 (#701)
- Corrected return type for some QueryBuilder methods (#702)
0.6.8 - 2020-10-23
- Dynamic return type support for
$request->file()
method call.
- Fixed an issue with running tests on Windows (#696) Thanks @kwebble
- Fixed autoloading of autoload-dev classes during bootstrap. (#696) Thanks @kwebble
0.6.7 - 2020-10-21
SoftDeletes
methods on relations are no longer marked as undefined (#692) Thanks @jdrieghe- Generic model type is preserved when
with
method is used on a model instance.
0.6.6 - 2020-10-17
- Support for checking model properties on dynamic wheres (#686)
0.6.5 - 2020-10-15
This release introduces a new rule that can check the arguments of methods that expects a model property name, and can warn you if the passed argument is not actually a property of the model. You can read the details about the rule here.
NOTE: This rule is currently in beta! If you want to improve it's analysis, you can check out the issue here and contribute!
- Add a new
view-string
PHPDoc type (#654) - Stubs for Eloquent builder
value
andorWhere
methods
- Parameter type of the query builder's
where
,orWhere
andaddArrayOfWheres
(#651). - Fix callback parameters for
retry
(#663). - Using Reflection to initiate a model in
ModelPropertyExtension
to avoid errors caused by using Model constructor. (#666)
- Made improvements to database migrations scanning. (#670)
- Improved running test suite commands and Windows compatibility (#682)
0.6.4 - 2020-09-02
- Update
orchestra/testbench
version to allow Laravel 8 installations (#646)
- Return type of
firstWhere
method on model, builder and relations (#649)
0.6.3 - 2020-08-31
- Return type extension for
validator
helper (#641)
- Return type of
associate
,dissociate
andgetChild
methods ofBelongsTo
relations (#633)
0.6.2 - 2020-07-30
- Fix false positive for NoUnnecessaryCollectionCallRule when statically calling hydrate on a Model class. (#609)
- Fixed slightly incorrect stubs for accepted $values for
whereBetween
/orWhereBetween
andwhereRowValues
/orWhereRowValues
(#626) - Check if facade fake exists (852c131)
- Correct query builder stub (d8d8b41)
- Dont override return type when eloquent builder returns a query builder instance (b5f96b4)
- Handle the case when a custom query builder does not have generic annotations (c54b517)
- Soft delete trait methods should return generic Eloquent builder with model (023043b)
- Support for Redis facade (#615) (a42b2f6)
- Auth guard with multiple dynamic auth models (#605) (63a3934)
- Use latest version of Composer in travis (#599) (29a9023)
0.6.1 - 2020-06-20
- Support for dynamic auth model loading from config. Thanks @0xb4lint (#602)
- Support for Laravel 8
- Fix false positive when calling
tap($this)
(#601)
0.6.0 - 2020-06-10
- Document common errors for users to ignore (#564)
- Add
abort
toearlyTerminatingFunctionCalls
config option (#567) - Support for
tap
helper. (#575) - Bumped minimum PHPStan version to 0.12.28
- Avoid false-positive when calling static builder methods such as
::find()
on Model classes where the concrete subclass is not yet known (#565) - Use correct argument order for
Str::startsWith
(#570)
- Do not overwrite PHPStan's default for
reportUnmatchedIgnoredErrors
(#564)
- Stop ignoring errors (#564)
0.5.8 - 2020-05-06
- Support for custom Eloquent collections. Thanks @timacdonald (#537)
- Added issue and PR templates for new contributors. Thanks @spawnia (#560)
- Fixed some of the collection methods in stub files. Thanks @Daanra (#556)
- Fixed a bug with Composer autoloading. Thanks @ondrejmirtes (#561)
0.5.7 - 2020-04-28
- Fixed incorrect stubs for model creation methods. (85716a5)
- Fixed false positives on NoUnnecessaryCollectionCallRule rule. Thanks @Daanra (#546)
- Added more methods to collection stubs. Thanks @Daanra (#547)
0.5.6 - 2020-04-26
- Fixed relation methods with custom builders always returning custom builder. (#520)
- Fixed reading
boolean
columns from migrations. (#514, #513, 692fcd1, d1f1861) - Annotations for model properties have higher order than migration files. (ec22906)
- Improved support for Eloquent relationships. (#533)
- Eloquent relations are now also generic. (#518)
- Support for Composer 2. Thanks @GrahamCampbell (#528)
- Support for
abort_unless
,throw_if
andthrow_unless
functions. Thanks @Daanra (#542) - Support for
retry
helper return type. Thanks @Daanra (#543) - A rule for detecting expensive calls on a Collection. Thanks @Daanra (#538)
- Support for
value
helper function return type. Thanks @Daanra (#545)
0.5.5 - 2020-03-26
- Assume id property exists only when it is not found. (#510)
- Fixed an issue with generics in BuilderModelFindExtension. (#511)
0.5.4 - 2020-03-22
- Support for return type inference of
find*
methods on Builder class depending on passed arguments. (#503)
0.5.3 - 2020-03-21
- Support for Eloquent resources. Thanks @mr-feek (#470)
- Treat Laravel ide-helper generated relationship properties as generic Collections. Thanks @mr-feek (#479)
- Treat Laravel ide-helper generated builder typehints as generic Builders. (#497)
id
property on any model class will be recognized as integer type. (#499)
- Corrected parameter type of builder dynamic wheres. Thanks @mr-feek (#482)
- Added a check to see if migrations directory exists. Thanks @deleugpn (#498)
- Added
Carbon/Carbon
to possible types for a date properties in models. Thanks @arxeiss (#500) - Fixed issue with scanning the migrations. (#501)
0.5.2 - 2020-02-10
- Model scopes returns the builder, if return type is
void
(#450) - Fix return type of calling query builder methods on custom builders (#453)
- Fix return type of
all
on model. Thanks @BertvanHoekelen (#454) - Any query builder method should return the generic query builder (#457)
- Don't throw exception when unknown column type is encountered while scanning the migrations (#451)
0.5.1 - 2020-02-04
- Support for model accessors (#401)
- Handle Builder method calls, model scope calls and dynamic where calls on relations. Thanks @BertvanHoekelen (#410, #419, #423)
- Support for custom Eloquent builders (#432)
- Infer Eloquent model property types. Thanks @muglug (#435)
- Support for app and resolve helper functions return type. Thanks @troelsselch (#431)
- Add generic stubs for Eloquent collection and Support collection. (#439)
- Better return type support for find* methods (#400)
- Don't register abstract service providers. Thanks @CyberiaResurrection (#440)
0.5.0 - 2019-12-25
Blogpost: nunomaduro.com/larastan-0-5-is-out Upgrade guide: UPGRADE.md
- Support to PHPStan
0.12
#378 - Support to Laravel 7 #377
- Support for Facade fakes #347
- Support for model relations accessed as properties #361
- Support for custom Eloquent builders #364
- Support for return types of
spy
,mock
andpartialMock
methods ofTestCase
#362
- Fixed a bug about handling method calls that starts with
find
on model instances #360
- The artisan
code:analyse
command. 391
0.4.3 - 2019-10-22
0.4.2 - 2019-10-16
getProjectClasses
method to use Composer data to get the classes (#318)- Return type of calling scope on relation (#322)
0.4.1 - 2019-10-07
- Better return type inference in relation methods (#319)
- Better return type inference for auth guard method calls on auth helper and facade (#317)
- Support to phpstan extension plugin (#314)
0.4.0 - 2019-08-28
- Support to
Carbon
macros (#301)
- Support to
laravel/framework:^6.0
withoutlaravel/helpers
package (#311)
- Dependency of
orchestra/testbench
in Laravel projects (#305)
0.3.21 - 2019-08-17
- Macro method detector class implements MethodReflection instead of BuiltinMethodReflection (#299)
0.3.20 - 2019-08-17
- Macro method detector class implements MethodReflection instead of BuiltinMethodReflection (#298)
0.3.19 - 2019-08-16
- Partial support to
auth
helper (#254)
- Compatibility with PHPStan 0.11.13 (#294)
0.3.18 - 2019-08-04
- Support to Laravel 6 (2be403c)
0.3.17 - 2019-05-29
- Issue with PHPStan 0.11.8 because of MethodReflectionFactory signature change (#270)
0.3.16 - 2019-03-30
- Support to Lumen (Put commit here)
- Void return type on Models (Put commit here)
0.3.15 - 2019-01-23
- Support to Laravel 5.8 (0949fa5)
0.3.14 - 2019-01-22
- Bumps PHPStan version to > 0.11.1 (#229)
0.3.13 - 2018-12-21
- Support to
trans
helper (#220)
0.3.12 - 2018-12-03
- Support to paginators (c29af44)
0.3.11 - 2018-11-26
- Null return type in
Auth::user()
(#211)
0.3.10 - 2018-11-22
- Support to return type of
$this
from Eloquent builder
0.3.9 - 2018-11-21
- Support to return type of
Auth::user()
0.3.8 - 2018-11-01
- Auto detects configuration
phpstan.neon
(#194)
0.3.7 - 2018-10-31
- Fixes while resolving application with invalid php files (7dd69ad)
0.3.6 - 2018-10-30
- Support to return type of
url
helper (#179)
0.3.5 - 2018-10-29
- Internal error caused by non-existing provider name (#170)
- Issue when project name have spaces (#186)
0.3.4 - 2018-10-09
- Issue while calling soft deletes macros staticly
0.3.3 - 2018-10-09
- Support for Soft Deletes
0.3.2 - 2018-10-05
- Support to return type of
redirect
&view
helpers (#157)
0.3.1 - 2018-10-04
- Usage with Laravel 5.6 (2d13d9a)
0.3.0 - 2018-10-04
- Support for static analysis in Laravel Packages
0.2.12 - 2018-09-27
- Support to return type of
request
helper (#145)
0.2.11 - 2018-09-21
- Support to return type of
response
helper - Support to return type of
\Illuminate\Http\Response::input
method
- False positives when performing long Eloquent queries
- Issue when there is recursive mixins
- When container got used twice using the
ArrayAccess
interface
0.2.10 - 2018-09-12
- Issue while using invalid mixins (#137)
0.2.9 - 2018-09-01
- Usage of spaces with the option
--paths
0.2.8 - 2018-09-01
- Issue while resolving implementations from container
0.2.7 - 2018-08-27
- Issue on Windows with the default path param (#128)
- Issue with exit code (#115)
- While running Larastan on CI envs (#113)
0.2.6 - 2018-08-27
- Support to Laravel 5.7
0.2.5 - 2018-08-17
- Issue with option
errorFormat
(#121)
0.2.4 - 2018-07-24
- Issue while resolving implementations that don't exist on the container
0.2.3 - 2018-07-23
- Common laravel false positives on trusted proxies and app exception handler
0.2.2 - 2018-07-23
- Resolved null type from container
0.2.1 - 2018-07-23
- Error - "internal error: * product does not exist"
0.2.0 - 2018-07-22
- Issues while using Lumen
0.1.9 - 2018-07-22
- Support to Lumen and Laravel Zero
0.1.8 - 2018-07-22
- Support to builder dynamic wheres
0.1.7 - 2018-07-22
- Support to "object" return type
- Bug on macro extension
0.1.6 - 2018-07-22
- Allows array access on objects that respects container's contract
0.1.5 - 2018-07-22
- Removes unused
dd
0.1.4 - 2018-07-22
- Issue when
static
is missing was return type hint on Illuminate Model mixins
0.1.3 - 2018-07-20
- Usage on Windows + Laravel Homestead (#55)
0.1.2 - 2018-07-20
Illuminate\Contracts
property extension
0.1.1 - 2018-07-18
- Infinite recursion in mixins middleware (b5a4317)
- Adds first alpha version