Я пытаюсь развернуть проект laravel на forge, и я получаю следующее исключение:
Symfony\Component\Debug\Exception\FatalErrorException] Class 'Faker\Factory' not found
У меня есть ссылка faker в require-dev в composer.json!
файл composer.json
{ "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "type": "project", "require": { "php": ">=5.5.9", "laravel/framework": "5.1.*", "tymon/jwt-auth": "0.5.*", "dingo/api": "1.0.x@dev" }, "require-dev": { "fzaninotto/faker": "~1.5", "mockery/mockery": "0.9.*", "phpunit/phpunit": "~4.0", "phpspec/phpspec": "~2.1", "laracasts/testdummy": "1.*", "laracasts/generators": "^1.1" }, "autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/" } }, "autoload-dev": { "classmap": [ "tests/TestCase.php" ] }, "scripts": { "post-install-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "pre-update-cmd": [ "php artisan clear-compiled" ], "post-update-cmd": [ "php artisan optimize" ], "post-root-package-install": [ "php -r \"copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "php artisan key:generate" ] }, "config": { "preferred-install": "dist" }
}
Скрипт развертывания в Forge:
git pull origin master composer install --no-interaction --no-dev --prefer-dist php artisan migrate --force php artisan db:seed --class="StaticDataSeeder"
Я смог развернуть один и тот же проект локально без каких-либо проблем, и обновление компоновщика на forge также успешно выполняется, и я вижу, как пакет faker загружается.
Пожалуйста, дайте мне знать, если я что-то упустил.
Существует четкий конфликт, который объясняет вашу проблему:
Вы добавили "fzaninotto/faker"
в раздел require-dev
.
Вы используете команду composer install
--no-dev
развертывания с опцией --no-dev
которая явно запрещает установку пакетов, перечисленных в require-dev
.
Таким образом, решение состоит в том, чтобы переместить пакет в раздел require
или удалить параметр --no-dev
при развертывании.