繁体   English   中英

CakePHP:从 3.6.x 升级到 4.0“缺少模板异常”

[英]CakePHP: upgrade from 3.6.x to 4.0 "Missing Template Exception"

我遵循了升级指南(在我从3.6升级到3.8 )但我收到了这个错误:

错误:[Cake\\View\\Exception\\MissingTemplateException] 模板文件“Error\\error500.ctp”丢失

....

如果要自定义此错误消息,请创建 src\\Template\\Error\\fatal_error.ctp

升级过程后,我的模板移动到app_name\\templates目录*.ctp命名为*.php而不是*.ctp 我用新路径更新了app.phpapp.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\\...下的模板文件src\\Template\\...

我错过了什么?

根据我的经验:

将 CakePHP 3.x 升级到 4.x

  • 作曲家更新
  • 从 --level 0 到 2 运行 phpstan 并修复您的代码或在 scrutinizer 中进行测试
  • 阅读 4.0 迁移指南: https : //book.cakephp.org/4/en/appendices/4-0-migration-guide.html
  • 阅读 4.0 升级指南:https ://book.cakephp.org/4/en/appendices/4-0-upgrade-guide.html步骤:
  • 安装升级工具
  • 重命名语言环境文件
  • 重命名模板文件
  • 重命名模板和区域设置文件后,请确保将 App.paths.locales 和 App.paths.templates 路径更新为正确。
  • 从您的应用程序作曲家文件中删除所有 cakephp/* (cakephp3) 包,还有 phpstan、代码标准、phpunit、.. 运行composer update
  • 应用 Rector 重构
  • composer require --update-with-dependencies "phpunit/phpunit:^8.0"
  • composer require --update-with-dependencies "cakephp/cakephp:4.0.*"
  • 在您的应用程序文件夹中安装新的 cakephp4。 示例: mkdir cakephp4 && cd cakeph4 ; 并运行composer create-project --prefer-dist cakephp/app:4.* . ;
  • 将旧的 cakephp 文件与 cakephp4 文件夹中的文件进行比较,更新所有文件并复制丢失的文件
  • 删除 cakephp4 并升级文件夹
  • 不要忘记在你的 php 文件顶部添加<?php declare(strict_types=1);
  • composer cs-check然后composer cs-fix

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM