라라벨 7.x 는 처음부터 버그가 있다.
처음 프로젝트를 생성했을 때부터 버그가 있었다.
Z:\blog7>php artisan route:cache
Route cache cleared!
LogicException
Unable to prepare route [api/user] for serialization. Uses Closure.
at Z:\blog7\vendor\laravel\framework\src\Illuminate\Routing\Route.php:1150
1146| */
1147| public function prepareForSerialization()
1148| {
1149| if ($this->action['uses'] instanceof Closure) {
> 1150| throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure.");
1151| }
1152|
1153| $this->compileRoute();
1154|
1 Z:\blog7\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteCacheCommand.php:62
Illuminate\Routing\Route::prepareForSerialization()
2 Z:\blog7\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36
Illuminate\Foundation\Console\RouteCacheCommand::handle()
Z:\blog7>
Z:\>composer create-project --prefer-dist laravel/laravel blog7 "7.*"
Creating a "laravel/laravel" project at "./blog7"
Installing laravel/laravel (v7.30.1)
- Downloading laravel/laravel (v7.30.1)
- Installing laravel/laravel (v7.30.1): Extracting archive
Created project in Z:\\blog7
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Lock file operations: 103 installs, 0 updates, 0 removals
- Locking asm89/stack-cors (v2.1.1)
- Locking brick/math (0.9.3)
- Locking doctrine/inflector (2.0.4)
- Locking doctrine/instantiator (1.4.1)
- Locking doctrine/lexer (1.2.3)
- Locking dragonmantank/cron-expression (v2.3.1)
- Locking egulias/email-validator (2.1.25)
- Locking facade/flare-client-php (1.9.1)
- Locking facade/ignition (2.17.5)
- Locking facade/ignition-contracts (1.0.2)
- Locking fakerphp/faker (v1.19.0)
- Locking fideloper/proxy (4.4.1)
- Locking filp/whoops (2.14.5)
- Locking fruitcake/laravel-cors (v2.2.0)
- Locking guzzlehttp/guzzle (7.4.2)
- Locking guzzlehttp/promises (1.5.1)
- Locking guzzlehttp/psr7 (2.2.1)
- Locking hamcrest/hamcrest-php (v2.0.1)
- Locking laravel/framework (v7.30.6)
- Locking laravel/tinker (v2.7.2)
- Locking league/commonmark (1.6.7)
- Locking league/flysystem (1.1.9)
- Locking league/mime-type-detection (1.9.0)
- Locking mockery/mockery (1.5.0)
- Locking monolog/monolog (2.4.0)
- Locking myclabs/deep-copy (1.11.0)
- Locking nesbot/carbon (2.57.0)
- Locking nikic/php-parser (v4.13.2)
- Locking nunomaduro/collision (v4.3.0)
- Locking opis/closure (3.6.3)
- Locking phar-io/manifest (2.0.3)
- Locking phar-io/version (3.2.1)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.3.0)
- Locking phpdocumentor/type-resolver (1.6.1)
- Locking phpoption/phpoption (1.8.1)
- Locking phpspec/prophecy (v1.15.0)
- Locking phpunit/php-code-coverage (9.2.15)
- Locking phpunit/php-file-iterator (3.0.6)
- Locking phpunit/php-invoker (3.1.1)
- Locking phpunit/php-text-template (2.0.4)
- Locking phpunit/php-timer (5.0.3)
- Locking phpunit/phpunit (9.5.20)
- Locking psr/container (1.1.2)
- Locking psr/event-dispatcher (1.0.0)
- Locking psr/http-client (1.0.1)
- Locking psr/http-factory (1.0.1)
- Locking psr/http-message (1.0.1)
- Locking psr/log (1.1.4)
- Locking psr/simple-cache (1.0.1)
- Locking psy/psysh (v0.11.2)
- Locking ralouphie/getallheaders (3.0.3)
- Locking ramsey/collection (1.2.2)
- Locking ramsey/uuid (4.2.3)
- Locking sebastian/cli-parser (1.0.1)
- Locking sebastian/code-unit (1.0.8)
- Locking sebastian/code-unit-reverse-lookup (2.0.3)
- Locking sebastian/comparator (4.0.6)
- Locking sebastian/complexity (2.0.2)
- Locking sebastian/diff (4.0.4)
- Locking sebastian/environment (5.1.4)
- Locking sebastian/exporter (4.0.4)
- Locking sebastian/global-state (5.0.5)
- Locking sebastian/lines-of-code (1.0.3)
- Locking sebastian/object-enumerator (4.0.4)
- Locking sebastian/object-reflector (2.0.4)
- Locking sebastian/recursion-context (4.0.4)
- Locking sebastian/resource-operations (3.0.3)
- Locking sebastian/type (3.0.0)
- Locking sebastian/version (3.0.2)
- Locking swiftmailer/swiftmailer (v6.3.0)
- Locking symfony/console (v5.4.7)
- Locking symfony/css-selector (v5.4.3)
- Locking symfony/deprecation-contracts (v2.5.0)
- Locking symfony/error-handler (v5.4.7)
- Locking symfony/event-dispatcher (v5.4.3)
- Locking symfony/event-dispatcher-contracts (v2.5.0)
- Locking symfony/finder (v5.4.3)
- Locking symfony/http-foundation (v5.4.6)
- Locking symfony/http-kernel (v5.4.7)
- Locking symfony/mime (v5.4.7)
- Locking symfony/polyfill-ctype (v1.25.0)
- Locking symfony/polyfill-iconv (v1.25.0)
- Locking symfony/polyfill-intl-grapheme (v1.25.0)
- Locking symfony/polyfill-intl-idn (v1.25.0)
- Locking symfony/polyfill-intl-normalizer (v1.25.0)
- Locking symfony/polyfill-mbstring (v1.25.0)
- Locking symfony/polyfill-php72 (v1.25.0)
- Locking symfony/polyfill-php73 (v1.25.0)
- Locking symfony/polyfill-php80 (v1.25.0)
- Locking symfony/polyfill-php81 (v1.25.0)
- Locking symfony/process (v5.4.7)
- Locking symfony/routing (v5.4.3)
- Locking symfony/service-contracts (v2.5.0)
- Locking symfony/string (v5.4.3)
- Locking symfony/translation (v5.4.7)
- Locking symfony/translation-contracts (v2.5.0)
- Locking symfony/var-dumper (v5.4.6)
- Locking theseer/tokenizer (1.2.1)
- Locking tijsverkoyen/css-to-inline-styles (2.2.4)
- Locking vlucas/phpdotenv (v4.2.2)
- Locking voku/portable-ascii (1.6.1)
- Locking webmozart/assert (1.10.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 103 installs, 0 updates, 0 removals
- Installing doctrine/inflector (2.0.4): Extracting archive
- Installing doctrine/lexer (1.2.3): Extracting archive
- Installing dragonmantank/cron-expression (v2.3.1): Extracting archive
- Installing symfony/polyfill-php80 (v1.25.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.25.0): Extracting archive
- Installing symfony/var-dumper (v5.4.6): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.25.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.25.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.25.0): Extracting archive
- Installing symfony/string (v5.4.3): Extracting archive
- Installing symfony/deprecation-contracts (v2.5.0): Extracting archive
- Installing psr/container (1.1.2): Extracting archive
- Installing symfony/service-contracts (v2.5.0): Extracting archive
- Installing symfony/polyfill-php73 (v1.25.0): Extracting archive
- Installing symfony/console (v5.4.7): Extracting archive
- Installing psr/log (1.1.4): Extracting archive
- Installing monolog/monolog (2.4.0): Extracting archive
- Installing voku/portable-ascii (1.6.1): Extracting archive
- Installing phpoption/phpoption (1.8.1): Extracting archive
- Installing vlucas/phpdotenv (v4.2.2): Extracting archive
- Installing symfony/css-selector (v5.4.3): Extracting archive
- Installing tijsverkoyen/css-to-inline-styles (2.2.4): Extracting archive
- Installing symfony/routing (v5.4.3): Extracting archive
- Installing symfony/process (v5.4.7): Extracting archive
- Installing symfony/polyfill-php72 (v1.25.0): Extracting archive
- Installing symfony/polyfill-intl-idn (v1.25.0): Extracting archive
- Installing symfony/mime (v5.4.7): Extracting archive
- Installing symfony/http-foundation (v5.4.6): Extracting archive
- Installing psr/event-dispatcher (1.0.0): Extracting archive
- Installing symfony/event-dispatcher-contracts (v2.5.0): Extracting archive
- Installing symfony/event-dispatcher (v5.4.3): Extracting archive
- Installing symfony/error-handler (v5.4.7): Extracting archive
- Installing symfony/http-kernel (v5.4.7): Extracting archive
- Installing symfony/finder (v5.4.3): Extracting archive
- Installing symfony/polyfill-iconv (v1.25.0): Extracting archive
- Installing egulias/email-validator (2.1.25): Extracting archive
- Installing swiftmailer/swiftmailer (v6.3.0): Extracting archive
- Installing symfony/polyfill-php81 (v1.25.0): Extracting archive
- Installing ramsey/collection (1.2.2): Extracting archive
- Installing brick/math (0.9.3): Extracting archive
- Installing ramsey/uuid (4.2.3): Extracting archive
- Installing psr/simple-cache (1.0.1): Extracting archive
- Installing opis/closure (3.6.3): Extracting archive
- Installing symfony/translation-contracts (v2.5.0): Extracting archive
- Installing symfony/translation (v5.4.7): Extracting archive
- Installing nesbot/carbon (2.57.0): Extracting archive
- Installing league/mime-type-detection (1.9.0): Extracting archive
- Installing league/flysystem (1.1.9): Extracting archive
- Installing league/commonmark (1.6.7): Extracting archive
- Installing laravel/framework (v7.30.6): Extracting archive
- Installing facade/ignition-contracts (1.0.2): Extracting archive
- Installing facade/flare-client-php (1.9.1): Extracting archive
- Installing facade/ignition (2.17.5): Extracting archive
- Installing fakerphp/faker (v1.19.0): Extracting archive
- Installing fideloper/proxy (4.4.1): Extracting archive
- Installing asm89/stack-cors (v2.1.1): Extracting archive
- Installing fruitcake/laravel-cors (v2.2.0): Extracting archive
- Installing psr/http-message (1.0.1): Extracting archive
- Installing psr/http-client (1.0.1): Extracting archive
- Installing ralouphie/getallheaders (3.0.3): Extracting archive
- Installing psr/http-factory (1.0.1): Extracting archive
- Installing guzzlehttp/psr7 (2.2.1): Extracting archive
- Installing guzzlehttp/promises (1.5.1): Extracting archive
- Installing guzzlehttp/guzzle (7.4.2): Extracting archive
- Installing nikic/php-parser (v4.13.2): Extracting archive
- Installing psy/psysh (v0.11.2): Extracting archive
- Installing laravel/tinker (v2.7.2): Extracting archive
- Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive
- Installing mockery/mockery (1.5.0): Extracting archive
- Installing filp/whoops (2.14.5): Extracting archive
- Installing nunomaduro/collision (v4.3.0): Extracting archive
- Installing webmozart/assert (1.10.0): Extracting archive
- Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
- Installing phpdocumentor/type-resolver (1.6.1): Extracting archive
- Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive
- Installing sebastian/version (3.0.2): Extracting archive
- Installing sebastian/type (3.0.0): Extracting archive
- Installing sebastian/resource-operations (3.0.3): Extracting archive
- Installing sebastian/recursion-context (4.0.4): Extracting archive
- Installing sebastian/object-reflector (2.0.4): Extracting archive
- Installing sebastian/object-enumerator (4.0.4): Extracting archive
- Installing sebastian/global-state (5.0.5): Extracting archive
- Installing sebastian/exporter (4.0.4): Extracting archive
- Installing sebastian/environment (5.1.4): Extracting archive
- Installing sebastian/diff (4.0.4): Extracting archive
- Installing sebastian/comparator (4.0.6): Extracting archive
- Installing sebastian/code-unit (1.0.8): Extracting archive
- Installing sebastian/cli-parser (1.0.1): Extracting archive
- Installing phpunit/php-timer (5.0.3): Extracting archive
- Installing phpunit/php-text-template (2.0.4): Extracting archive
- Installing phpunit/php-invoker (3.1.1): Extracting archive
- Installing phpunit/php-file-iterator (3.0.6): Extracting archive
- Installing theseer/tokenizer (1.2.1): Extracting archive
- Installing sebastian/lines-of-code (1.0.3): Extracting archive
- Installing sebastian/complexity (2.0.2): Extracting archive
- Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
- Installing phpunit/php-code-coverage (9.2.15): Extracting archive
- Installing doctrine/instantiator (1.4.1): Extracting archive
- Installing phpspec/prophecy (v1.15.0): Extracting archive
- Installing phar-io/version (3.2.1): Extracting archive
- Installing phar-io/manifest (2.0.3): Extracting archive
- Installing myclabs/deep-copy (1.11.0): Extracting archive
- Installing phpunit/phpunit (9.5.20): Extracting archive
69 package suggestions were added by new dependencies, use `composer suggest` to see details.
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
75 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan key:generate --ansi
Application key set successfully.
Z:\>php artisan migrate
Could not open input file: artisan
Z:\>cd blog7
Z:\blog7>php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (0.07 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (0.07 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (0.04 seconds)
Z:\blog7>php artisan route:cache
Route cache cleared!
LogicException
Unable to prepare route [api/user] for serialization. Uses Closure.
at Z:\blog7\vendor\laravel\framework\src\Illuminate\Routing\Route.php:1150
1146| */
1147| public function prepareForSerialization()
1148| {
1149| if ($this->action['uses'] instanceof Closure) {
> 1150| throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure.");
1151| }
1152|
1153| $this->compileRoute();
1154|
1 Z:\blog7\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteCacheCommand.php:62
Illuminate\Routing\Route::prepareForSerialization()
2 Z:\blog7\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36
Illuminate\Foundation\Console\RouteCacheCommand::handle()
Z:\blog7>