簡體   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