蛋糕PHP3插件单元丢失



My Process

  1. 制作插件单元格

    $ bin/cake bake plugin Abc
    $ bin/cake bake cell Abc.New
    

上进程制作 3 个文件

    plugins/Abc/src/View/Cell/NewCell.php
    plugins/Abc/src/Template/Cell/Menu/display.php

和测试文件。

  1. 插入布局/默认.ctp 下一个代码

     <?php $cell = $this->cell('Abc.New'); ?>
    
  2. 错误

缺少单元格类 Abc.New。

蛋糕\视图\异常

\缺少单元格异常

我找不到解决方案。 请帮帮我!!

帖子有点旧,但万一其他人偶然发现了这个线程......

单元格依赖于命名空间来加载和呈现正确的 [cell].ctp 文件。换句话说,即使您已经在 bootstrap.php 文件中完成了所需的Plugin::loadAll();,您仍然需要修改 composer.json 文件并添加插件。例如,我的插件称为"Metronic",请注意autoloadautolaod-dev中额外的 2 行

  "autoload": {
    "psr-4": {
      "App\": "src",
      "Metronic\": "./plugins/Metronic/src"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "App\Test\": "tests",
      "Cake\Test\": "./vendor/cakephp/cakephp/tests",
      "Metronic\Test\": "./plugins/Metronic/tests"
    }
  },

http://book.cakephp.org/3.0/en/plugins.html#autoloading-plugin-classes,请参阅CakePHP手册。

我的建议是您将来使用 Bake 命令创建插件。手册没有明确说明这一点,但这是使用 Bake 命令时发生的情况:

  • 它为插件创建基本的目录结构
  • 它在引导中插入一行.php例如Plugin::load('Metronic', ['bootstrap' => false, 'routes' => true]);
  • 它在 composer.json 文件中插入 2 行(根据我上面的例子(

然后您唯一需要做的就是告诉 Composer 刷新其自动加载缓存

$ bincake bake plugin Metronic
$ php composer.phar dumpautoload

希望这有帮助..

最新更新