首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >CakePHP3插件单元丢失

CakePHP3插件单元丢失
EN

Stack Overflow用户
提问于 2016-02-04 10:49:58
回答 1查看 617关注 0票数 0

我的过程

  1. 制作插件单元 $bin/蛋糕烘焙插件Abc $bin/蛋糕烘焙单元Abc.New

高级进程生成3个文件

代码语言:javascript
代码运行次数:0
运行
复制
    plugins/Abc/src/View/Cell/NewCell.php

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

还有测试文件。

  1. 插入布局/default.ctp下一个代码
  2. 误差

单元格类Abc.New丢失。 蛋糕\视图\异常\MissingCellException

我找不到解决办法。请救救我!

EN

回答 1

Stack Overflow用户

发布于 2016-07-06 06:46:34

Post有点老了,但万一有人在这条线上绊倒了.

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

代码语言:javascript
代码运行次数:0
运行
复制
  "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"
    }
  },

参见CakePHP手册,这里是http://book.cakephp.org/3.0/en/plugins.html#autoloading-plugin-classes

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

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

然后,您唯一需要做的就是告诉Composer刷新它的自动缓存。

代码语言:javascript
代码运行次数:0
运行
复制
$ bin\cake bake plugin Metronic
$ php composer.phar dumpautoload

希望这有帮助..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35199046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档