Commit Graph
809 Commits
Author SHA1 Message Date
Markus Podar 9baf93a502 Add github issue/PR templates (#1041) 2020-09-07 19:02:38 +02:00
Markus PodarandBarry vd. Heuvel affa55122f [TESTS] Running in CI should not create but rather fail on missing snapshots (#1039)
* tests: running in CI should not create but rather fail on missing snapshots

Otherwise they get created on the CI infrastructure but that's it, the
build won't fail although it was forgotten to add the snapshot.

* Bump minimum phpunit version which correctly accepts the `-d` parameter

The `prefer-lowest` version we get with L6 is 8.0.0 which throws this error:
```
PHP Fatal error:  Uncaught TypeError: ini_set() expects parameter 2 to be string, bool given in /home/runner/work/laravel-ide-helper/laravel-ide-helper/vendor/phpunit/phpunit/src/TextUI/Command.php:379
```

* Update composer.json

Co-authored-by: Barry vd. Heuvel <[email protected]>
v2.8.1
2020-09-07 09:36:37 +02:00
Barry vd. HeuvelandMarkus Podar b7d84785b1 GHA Composer v2 (#968)
* Update run-tests.yml

* Update run-tests.yml

* Update run-tests.yml

* Update run-tests.yml

* Update run-tests.yml

* Update run-tests.yml

* Update run-tests.yml

* gha: no need for self-update, setup-php `composer:v2` already gives the version we want

Co-authored-by: Markus Podar <[email protected]>
2020-09-07 09:26:20 +02:00
Daniel Mendes 4df96b5e62 Change $this->app->environment() !== 'production' to $this->app->isLocal() (#886)
* README.md: $this->app->environment() !== 'production' to $this->app->isLocal()

* Renamed to README.md

* Remove unrelated changes
2020-09-06 07:58:51 +02:00
domkrmandDominik Krämer 3a22b8daf6 Add better support for macros and mixins (#1006)
Co-authored-by: Dominik Krämer <[email protected]>
2020-09-06 07:58:13 +02:00
edcorewebandMarkus Podar 24596b67f1 New --write-mixin option. (#764)
* New --write-mixin option.

* Keep all tags from the existing docblock.

* Update argument description to be more descriptive

Co-authored-by: Markus Podar <[email protected]>

* Add the new --write-mixin option to the docs

* Add test for the new --write-mixin option

* Update README.md

* composer fix-style

* Adapt test after refactoring recently done

Co-authored-by: Markus Podar <[email protected]>
2020-09-06 07:57:00 +02:00
Markus Podar d978986523 Remove GrumPHP (#1036)
* composer remove --dev phpro/grumphp

* Remove remains of grumphp
2020-09-04 19:05:00 +02:00
Markus Podar 3ea232dc3a Add initial changelog (#1035)
At least until 2.6.6; quite a chore ;)

The idea is to keep it updated; ideally each PR updates the changelog
otherwise we/I will keep track of the "notable" changes.

The goal would be that once the next release is about to happen, the
changes collected here so far can just be copy-pasted to the release
notes and the top link has to be bumped.

I would define "notable" as user-facing, thus many internal changes
(readme, test suite, etc.) have not been added to give end-users a
clearer focus what may have changed/improved _for them_.
2020-09-03 06:00:59 +02:00
Markus Podar 007d3adb68 Run composer fix-style and vendor/bin/phpunit -d --update-snapshots to solve failed build (#1032) 2020-09-01 19:50:05 +02:00
Markus PodarandBarry vd. Heuvel 764bc02b84 [CODESTYLE] Replace phpcs with php-cs-fixer (#1030)
* composer require --dev friendsofphp/php-cs-fixer:^2

* php-cs-fixer: ignore cache and custom local config file

* php-cs-fixer: initial config

* php-cs-fixer: replace commands in composer

* php-cs-fixer: add PSR12 "as good as it currently gets"

* php-cs-fixer: apply PSR12 to codebase

* tests: add workaround to keep unused imports for snapshot testing

* php-cs-fixer: apply no_unused_imports

* php-cs-fixer: apply array_syntax short

* php-cs-fixer: apply single_quote

* php-cs-fixer: switch ordered_imports sort_algorithm to alpha

Let's be opinionated here for consistency

* php-cs-fixer: split between non-tests and tests and share config

* php-cs-fixer: apply declare_strict_types for tests

* php-cs-fixer: apply fully_qualified_strict_types

* php-cs-fixer: apply space_after_semicolon

* php-cs-fixer: apply trailing_comma_in_multiline_array

* php-cs-fixer: apply trim_array_spaces

* php-cs-fixer: apply unary_operator_spaces

* php-cs-fixer: apply whitespace_after_comma_in_array

* php-cs-fixer: apply native_function_invocation

* php-cs-fixer: apply concat_space

* grumphp: reflect we're using phpcsfixer now

* composer remove --dev squizlabs/php_codesniffer

* gha: simplify fix-style approach

Not really necessary to remove packages and then manually prevent
unrelated commits creeping in

Co-authored-by: Barry vd. Heuvel <[email protected]>
2020-09-01 11:32:31 +02:00
edvordo a96add6981 update(config/model command): add option to force usage of FQN + tests (#1031) 2020-09-01 09:11:12 +02:00
Markus Podar 4a6d127440 Improve gitignore a bit (#1029)
- build isn't used AFAIK?
- add `/` prefix were we know they're only expected to be in the root anyway
  except `.phpunit.result.cache` which may appear anywhere it's run from
2020-08-31 20:33:07 +02:00
Markus Podar 1ca875fbca Make createLocalViewFactory compatible with Laravel 8 (#1026)
* Make createLocalViewFactory compatible with Laravel 8

Fixes https://github.com/barryvdh/laravel-ide-helper/issues/1024

* tests: move up mockFilesystem so it get be re-used in other tests

Note: removed `$this->mockOutput = '';` as it was a no-op, that property
doesn't exist (it was probably a typo, but I guess we don't need it
anyway)

* tests: show basic features for ide-helper:meta working
2020-08-31 06:20:02 +02:00
Markus Podar 462989abd5 Fix type for new meta command 🤷‍♀️ (#997) 2020-08-30 21:33:19 +02:00
Markus Podar bd5b6ecee7 Remove unused use vars (#1027) 2020-08-30 21:32:47 +02:00
Markus Podar 3b66fea925 tests: no need for < 6 check, as we don't test < L6 anymore (#1025) 2020-08-30 21:32:15 +02:00
Markus Podar 707ec990e7 tests: remove L5.5 workaround (#1023) 2020-08-29 08:12:11 +02:00
Barry vd. Heuvelandbarryvdh a49cb46fdf Bump Laravel versions (#1022)
* Bump Laravel versions

* Test Laravel 8

* Update composer.json

* Update composer.json

* normalize composer.json

* Tweak MethodTest for Laravel 8

Co-authored-by: barryvdh <[email protected]>
2020-08-28 22:26:05 +02:00
Barry vd. Heuvel a12f902b33 Avoid duplicate tests (#1021) 2020-08-28 16:12:41 +02:00
Danny van der Sluijs 8287f02afa Fix typos; Optimise if-else branches (#1009) 2020-08-28 09:15:43 +02:00
David 1d9e82f2b7 Update README.md (#1020) 2020-08-28 09:13:34 +02:00
Barry vd. Heuvel 9599cfbbc9 Simplify test by mocking filesystem always (#1019) 2020-08-25 17:43:39 +02:00
Barry vd. Heuvel c852650d7e Test dynamic relationships (#1017)
* Test dynamic

* Try/catch relationships

* Update snapshot

* Test output
2020-08-25 08:01:16 +02:00
Markus Podar ac6fbffac3 tests: ensure output mocking is disabled so we can actually catch the output (#1018)
Discovered via https://github.com/barryvdh/laravel-ide-helper/pull/1017#issuecomment-679318764

This only happens if you run an artisan command _before_ `runCommand`,
but since every of these tests performs migrations, using artisan,
the mocked output instance is left behind and also affected us.

The call added in `runCommand` explicitly unregisters
`\Illuminate\Console\OutputStyle` and thus also throwing away possibly
mocked versions.
2020-08-25 06:29:44 +02:00
Markus Podar 1ad23fd14c gha: use separate workflow file only on push for fixing the code style (#1013) 2020-08-21 06:49:24 +02:00
Markus Podar 444325205e getDoctrineSchemaManager doesn't take an argument (#1011)
AFAIK never had.

See https://github.com/laravel/framework/blob/c1ec18723e763120aa4e816072beca396d298db1/src/Illuminate/Database/Connection.php#L892
2020-08-20 21:58:36 +02:00
Markus Podar c760c9aa0c readme: be clear that models require FQN (#1012)
I've tested this and yes, it *always* requires a FQN.

Therefore I removed the extra note regarding namespace/wrapping because
even by default Laravel has the `App\` namesapce, which requires this.

Fixes https://github.com/barryvdh/laravel-ide-helper/issues/995
2020-08-20 21:57:11 +02:00
Danny van der Sluijs ce4186c1c7 Migrate PHPUnit configuration (#1010) 2020-08-19 21:45:21 +02:00
Markus Podar ba95d18ef5 [PHPCS] Extend to check/fix all source code and turn GHA into auto-commit fixer (#1003)
* phpcs: enable also for config, resources and tests

* composer fix-style

* vendor/bin/phpunit -d --update-snapshots

* gha: instead of checking the style, fix and auto-commit it 💪
v2.8.0
2020-08-10 10:22:48 +02:00
Barry vd. Heuvel 4b459d3e82 Update stale.yml 2020-07-30 11:34:53 +02:00
Barry vd. Heuvel 9e5c7e0887 Create stale.yml 2020-07-28 21:34:40 +02:00
Markus Podar ead6d4f89b Remove timestamps in generated files (#1000)
In https://github.com/barryvdh/laravel-ide-helper/pull/990#issuecomment-664590457 it was agreed upon to just remove them.
2020-07-27 21:42:55 +02:00
Markus Podar 1b5881c1e2 Add more methods able to resolve container instances (#996)
Some years ago the Laravel container was made PSR compliant and this
attributes to the fact that `->get()` is a valid resolve call too.
2020-07-21 07:53:35 +02:00
Gabriel Langer e8044dc920 [Models] Fixed wrong imported name (#993)
* Fixes 992 (class names in phpdoc where using imported names incorrectly when writing to external file).
Disabled using imported name in external file, except for the models own name.

* Added missing declare strict types
2020-07-17 08:07:09 +02:00
Markus Podar 4ffda148ce composer.json: bump branch-alias as 2.7 has already been released (#991) 2020-07-16 22:02:19 +02:00
Markus Podar 6cb0201476 Remove unnecessary version checks due to unsupported old Laravel/Lumen versions (#983)
- support for < L5.5 was dropped, so no need to check if it's >= Laravel 5.2
- for the same reason, the Lumen 5.0/5.1 check isn't necessary because only supporting Laravel 5.5 means we only support the Laravel 5.5 _components_ which means the minimum supported Lumen version is also 5.5 (per https://lumen.laravel.com/docs/master/releases#5.5.0 )
2020-06-28 22:14:44 +02:00
Markus Podar f3d841c0a3 Sort models found in file system (#982)
Ensures they're always ordered / processed independent of the
environment. `ClassMapGenerator::createMap` uses symfony/finder which
itself supports sorting but this isn't used from the `ClassMapGenerator`.

Fixes https://github.com/barryvdh/laravel-ide-helper/issues/885
2020-06-28 11:21:36 +02:00
Markus Podar 9562bf59d9 Improve readme in certain areas (#980)
* readme: sublime command has been removed

Was removed in https://github.com/barryvdh/laravel-ide-helper/pull/976
as it was already deprecated for 7 years.

* readme: old link only redirects, use the destination link directly

* readme: mention that the default _ide_helper.php name can be changed

* readme: document `meta_filename` and hint it can be written into a special subdirectory

* readme: remove hint about \Eloquent or `@mixin`, as the latter is automatically added nowadays

* readme: update how the current phpdoc looks like

* readme: document `write_model_magic_where`

* readme: document `write_model_relation_count_properties`

* readme: document `custom_db_types`

* readme: clarify installation regarding auto-discovery vs. manual

* readme: mention to avoid caching the config in dev

Inspired by https://github.com/barryvdh/laravel-ide-helper/issues/832
2020-06-28 08:57:22 +02:00
Markus Podar e2547b8596 Removed old/outdated gists from readme (#977) 2020-06-27 17:56:54 +02:00
Markus Podar eaf4a00eae composer: reduce constraints for testbench (#975)
We only support L5.5 which is satisfied by testbench 3.5 already
2020-06-26 07:08:14 +02:00
Markus Podar e1940c25bc Remove deprecated sublime option (#976)
It has been marked as deprecated for 7 years (!) and the option isn't
used in the current code, i.e it does nothing.
2020-06-26 07:05:20 +02:00
Markus Podar 0531a58d24 tests: convert recently created tests to snapshots (#973)
They were created slightly before the snapshot PR was merged.
2020-06-24 15:29:19 +02:00
07d45d2d7a switch tests to snapshot assertions (#958)
* install spatie/phpunit-snapshot-assertions

* switch GenerateBasicPhpdocFinal test to snapshot assertion

* use v3 of spatie/phpunit-snapshot-assertions to be PHP7.2 compatible

* add txt snapshot driver

* fix EloquentCommandTest

* replace all heredocs by snapshots

* make test compatible with old/deprecated versions

* Update composer.json

* normalize composer.json

* fix merge conflict

* Allow older snapshot versions

* normalize composer.json

Co-authored-by: Barry vd. Heuvel <[email protected]>
Co-authored-by: barryvdh <[email protected]>
2020-06-24 11:11:35 +02:00
Luka Schäfer cca99b6d25 Make writing relation count properties optional (#969)
* Make writing relation count properties optional

* Clean up description

* Add test for write_model_magic_where=false

* Add test for write_model_relation_count_properties=false
2020-06-23 22:27:43 +02:00
Markus Podar 6ec4f7baf9 gha: drop non-supported Laravel versions and simplify matrix (#970)
- also drop dedicated testbench version, composer can figure it out itself

https://laravel.com/docs/7.x/releases#support-policy

Only 5.5 receives security fixes until 2020-08-30,
everything else < 6 isn't supported anymore.
Therefore I dropped all versions not officially
supported.

I also find the change in the matrix more readable without having to
mentally parse a set of a lot "includes",
I think this clarifies the intent better.

This also results in more jobs are more (correctly allowed) variations are now covered.
2020-06-23 17:39:14 +02:00
Barry vd. Heuvel 7298d6e965 Update run-tests.yml 2020-06-23 09:27:46 +02:00
Barry vd. Heuvel dbd98fdca3 Cache Composer 2020-06-23 09:20:24 +02:00
feekandBarry vd. Heuvel 3e02746778 chore: use composer scripts in grumphp (#965)
Co-authored-by: Barry vd. Heuvel <[email protected]>
2020-06-23 09:05:37 +02:00
Markus Podar 3197aab841 gha: add timeouts (#967) 2020-06-23 08:25:12 +02:00
Markus Podar bbf329b995 readme: add gha badge for tests (#966) 2020-06-23 08:13:16 +02:00