Я столкнулся с сотней проблем с laravel. Недавно я обновил веб-сайт laravel 3 до laravel 4 и сохранил весь свой проект в репозиторий на Github. Поскольку у меня постоянно возникают проблемы со случайным редактированием файлов из неправильной папки, я просто создал локальный репозиторий git в своем рабочем каталоге, поэтому у меня есть ровно один каталог, с которым нужно иметь дело.
Все работало нормально, пока я не попытался установить некоторые пакеты laravel, которые мне удалось установить раньше. Всякий раз, когда я запускаю обновление композитора, ВСЕ мои ремесленные сценарии возвращают ошибку. Само сообщение об ошибке (предположительно ошибка PHP) не отображается, даже после того, как я убедился, что использую файл разработки PHP.ini.
fatal: No names found, cannot describe anything.
* master [KEY REMOVED] Remove mPDF Library
Script php artisan clear-compiled handling the pre-update-cmd event returned with an error
Status for device CON:
----------------------
Lines: 300
Columns: 80
Keyboard rate: 31
Keyboard delay: 1
Code page: 437
Status for device CON:
----------------------
Lines: 300
Columns: 80
Keyboard rate: 31
Keyboard delay: 1
Code page: 437
[RuntimeException]
Error Output:
update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [packages1] ... [packagesN]
Вот мой composer.json (одно предложение, которое я прочитал, заключалось в том, чтобы поместить «php artisan clear-compiled» в «pre-update-cmd»):
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.1.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev",
"require": {
"laravelbook/ardent" : "dev-master",
"loic-sharma/profiler" : "dev-master",
"prologue/alerts" : "dev-master",
"mpdf/mpdf" : "dev-master"
}
}
Еще одна странность, которую я заметил, заключалась в следующем:
fatal: No names found, cannot describe anything.
* master [KEY REMOVED] Remove mPDF Library
Это ссылка на последний коммит в моем репозитории git. Почему упоминает об этом? Я думал, что это может быть частью проблемы, пока не понял, что это не так даже при новой установке.
Да, я пытался удалить скрипты или запустить --no-scripts. Я думаю, что именно здесь начинаются мои проблемы, потому что даже когда я запускаю --no-scripts, я получаю следующую ошибку:
Fatal error: Class 'Patchwork\Utf8\Bootup' not found in [ROOT PATH REMOVED]/bootstrap/autoload.php on line 46
Я читал, что некоторые файлы могли отсутствовать, так как я обновился до 4.1. Итак, я заполнил все недостающие файлы и получил чистую белую страницу.
Основываясь на том, что я читаю, совершенно новая установка laravel должна иметь возможность запускать artisan или, по крайней мере, после запуска composer install
. Я даже не могу заставить это работать на СОВЕРШЕННО НОВОЙ УСТАНОВКЕ. Поэтому я обновил свою установку xampp до последней версии.
Я также читал, что есть способ проверить, был ли установлен mcrypt: php -i | grep "mcrypt support"
Там говорилось, что если ничего не возвращается, то mcrypt не установлен, но определенно что-то возвращает.
mcrypt
mcrypt support => enabled
mcrypt support => enabledmcrypt_filter support =>
enabled
Version => 2.5.8
Api No => 20021217
Supported ciphers => cast-128 gost rijndael-128 twofish cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes arcfour
Supported modes => cbc cfb ctr ecb ncfb nofb ofb stream
Directive => Local Value => Master Value
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
обновление композитора не возвращает ошибок, ремесленник не работает, он не работает, когда я использую --no-scripts, и все еще не компилируется после того, как я использовал --no-scripts... PHP не возвращает никаких ошибок или также регистрируйте любые ошибки. Я не знаю, что еще делать. Я пробовал все, что мог придумать, и все, что мог найти в Интернете. Все, что я хотел, это установить простой пакет, а не столкнуться с этим огромным беспорядком.
Я не решаюсь продолжать работу над этим проектом, пока не решу эту проблему, но мне нужно вернуться к работе над ним, используя мою все еще работающую версию laravel (к счастью, у меня были резервные копии файлов /vendor; они не были добавляется в мой репозиторий github).
Но любая помощь в этом будет очень признательна, потому что мне действительно нужно использовать эти пакеты, и я знаю, что у меня будут проблемы в будущем, если я попытаюсь обновить снова.
РЕДАКТИРОВАТЬ: И следует отметить, что один общий ответ, который я видел на множество вопросов, — это удалить bootstrap/compiled.php. Ну я ни разу даже не видел сгенерированный файл, не говоря уже о возможности его удалить.
Я даже пытался запустить команды ремесленника вручную (что вернуло пустой результат), но файл так и не был сгенерирован.