* Add `\\static` as check
For some reason, the `static` keyword as a return type, does not return `isBuiltin()` === true, so a `\\` is added. We need to manually add it to the built in check.
* Update ModelsCommand.php
* Add tests
* Add CHANGELOG.md entry
---------
Co-authored-by: Markus Podar <[email protected]>
Co-authored-by: Barry vd. Heuvel <[email protected]>
In singlestore we define some strings as
$table->char($columnName, 40)->charset('binary')->collation('binary');
In singelstore, this becomes 'BINARY(40)' instead of 'CHAR(40) CHARACTER SET 'binary' COLLATE 'binary'
This change would allow the generated proeperties to be 'string' instead of 'mixed', as using a string is correct in this case.
This snipet was lost in the 2.12.x => 2.13.x change. Needs to be reintroduced to allow those who use fully qualified db+table names. (Eg, `database.table`)
* Support generating helper files for real-time facades
Add changelog entry for real-time facades support
Mention real-time facades support in readme
Fix code style
Import
* Remove useless assertions
We cannot 100% control the output file has only the real-time facades, anything else can be in the final output
* add case when default value is of type enum
* Update CHANGELOG.md
* add tests for enum arguments default values
* ignore psalm issue (built-in `\UnitEnum` class does not exists in PHP7)
* Update run-static-analysis.yml to use PHP8.1
---------
Co-authored-by: Barry vd. Heuvel <[email protected]>
Co-authored-by: Barry vd. Heuvel <[email protected]>
* Add support for nikic/php-parser:^5
- `createForHostVersion` has been added to php-parse 4.18 so code can
run with both versions [1]
- therefore also bumped the minimum required version to it
Note:
The dev dependency vimeo/psalm is **not** compatible with
php-parser:^5 currently. This does not impact usages of this library,
but sometimes cause friction when working on this library.
For our CI this isn't a problem, because we already remove that
dependency before running the test suite.
[1] https://github.com/nikic/PHP-Parser/blob/master/UPGRADE-5.0.md#changes-to-the-parser-factory
* gha: prevent cancelling of all jobs if one fails
* Update CHANGELOG.md
* gha: remove unsupported Laravel / PHP combinations
According to https://laravel.com/docs/10.x/releases
* Add dbal:^4 too
* Add support for protected Attribute accessors
* Fix formatting
* Prevent accessors methods marked as private from being added
* Exclude specific accessors based on trait instead of class
* Add changelog entry
* Add clarifying comment
* Fix accessor attributes not working on PHP < 8.1
* Reintroduce method variable to reduce PR clutter
* Change variable name to reduce PR clutter
* Update CHANGELOG.md
---------
Co-authored-by: Barry vd. Heuvel <[email protected]>
Co-authored-by: Barry vd. Heuvel <[email protected]>
* option to use generics syntax, default to yes in laravel 9
* rename `use_generics_syntax` to `use_generics_annotations`
* update readme and changelog
* remove laravel 9 default override
* include key type in generics annotations
* readme rewording
* set `use_generics_annotations` to `true` by default
* update tests to reflect `use_generics_annotations` being set to `true` by default
* default `use_generics_annotations` setting to true when not set in config
Co-authored-by: Markus Podar <[email protected]>
---------
Co-authored-by: Markus Podar <[email protected]>
* Implement new config to specify return type of custom relations
* Apply suggestions from code review
Co-authored-by: Markus Podar <[email protected]>
* add test for morphed
* fix test output
* add info about how to add custom relationships
* fix wording
Co-authored-by: Markus Podar <[email protected]>
* gha: get more insights when/if logs exist
* Better handle cases when we can receive a concrete instance
The problem with `null` being passed to `ReflectionClass` was always
there but in PHP 8.1+ it triggers a deprecation warnings.
Since having `null` in `$concrete` doesn't make sense to reflect
anything anyway, we just throw a custom exception (which gets caught a
couple lines below) and just carry on.
When using `-v` this can be seen, example:
```
$ ./artisan ide-helper:meta -v
Cannot make 'Faker\Generator': Class 'Faker\Provider\en_US\Barcode' not found.
Cannot make 'Illuminate\Contracts\Auth\Authenticatable': Class does not exist
Cannot make 'cache.psr6': Class 'Symfony\Component\Cache\Adapter\Psr16Adapter' not found.
Cannot make 'csp-nonce': Class 'Wza3Mf4CXIvCkcp9K3boMUGJoK6S9maO' not found.
Cannot make 'env': Class 'local' not found.
Cannot make 'filesystem.cloud': Disk [s3] does not have a configured driver.
Cannot make 'redis.connection': Redis connection [default] not configured.
A new meta file was written to .phpstorm.meta.php
```
* gha: make sure to run meta with -v to see all output
Helps when debugging things
* Add CHANGELOG.md entry