Cake PHP: обновление с 3.6.x до 4.0 "Отсутствует исключение шаблона" - PullRequest
1 голос
/ 17 февраля 2020

Я следовал руководству по обновлению (после обновления с 3.6 до 3.8), но я получаю эту ошибку:

Ошибка: [Cake \ View \ Exception \ MissingTemplateException] Файл шаблона "Ошибка \ error500.ctp" отсутствует

....

Если вы хотите настроить это сообщение об ошибке, создайте src \ Template \ Error \ fatal_error .ctp

После процедуры обновления мои шаблоны переместились в каталог app_name\templates и переименовали в *.php вместо *.ctp. Я обновил app.php и app.default.php новыми путями:

'App' => [
        'namespace' => 'App',
        'encoding' => env('APP_ENCODING', 'UTF-8'),
        'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'),
        'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'UTC'),
        'base' => false,
        'dir' => 'src',
        'webroot' => 'webroot',
        'wwwRoot' => WWW_ROOT,
        //'baseUrl' => env('SCRIPT_NAME'),
        'fullBaseUrl' => false,
        'imageBaseUrl' => 'img/',
        'cssBaseUrl' => 'css/',
        'jsBaseUrl' => 'js/',
        'paths' => [
            'plugins' => [ROOT . DS . 'plugins' . DS],
            'templates' => [ROOT . DS . 'templates' . DS],
            'locales' => [ROOT . DS  . 'Locale' . DS],
        ],
    ],

Но приложение все еще ищет файлы шаблона с расширением .ctp и значением src\Template\...

Что мне не хватает?

1 Ответ

0 голосов
/ 17 февраля 2020

Из моего опыта:

Обновление торта PHP 3.x до 4.x

  • composer обновление
  • запустите phpstan с --level от 0 до 2 и исправьте свой код или тест в scrutinizer
  • read 4.0 Руководство по миграции: https://book.cakephp.org/4/en/appendices/4-0-migration-guide.html
  • read 4.0 Руководство по обновлению: https://book.cakephp.org/4/en/appendices/4-0-upgrade-guide.html Шаги:
  • Установить инструмент обновления
  • Переименовать файлы локали
  • Переименовать файлы шаблона
  • После того, как вы переименовали свой шаблон и файлы локали, убедитесь, что вы обновляете пути App.paths.locales и App.paths.templates, чтобы они были правильными.
  • Из вашего файла composer приложения удалите все пакеты cakephp / * (cakephp3), также phpstan, Стандарты кода, phpunit, .. run composer update
  • Применение рефакторинга ректора
  • composer require --update-with-dependencies "phpunit/phpunit:^8.0"
  • composer require --update-with-dependencies "cakephp/cakephp:4.0.*"
  • Установка fre sh cakephp4 в папке вашего приложения. Пример: mkdir cakephp4 && cd cakeph4; и запустите composer create-project --prefer-dist cakephp/app:4.* .;
  • сравните ваши старые файлы cake php с файлами из папки cakephp4, обновите все и скопируйте отсутствующие файлы
  • удалите cakephp4 и обновите папки
  • don Не забудьте наверху php файлы добавить <?php declare(strict_types=1);
  • composer cs-check затем composer cs-fix
...