【发布时间】:2019-01-07 03:34:58
【问题描述】:
我正在 Windows 平台上开发一个十月 CMS 插件,比如 author.pluginname。
文件 storage/framework/classes.php 是用来自动生成我的类的链接的,对吗?
我不确定是否总是这样,我不知道我是否需要或如何强制它发生。这两种情况是:1)我刚刚创建了一个新类,2)我将我的插件同步到另一个测试(linux服务器)。
例如,我刚刚将我的插件复制到新的 10 月 CMS 安装中,但是在使用 plugin:refresh 安装插件后,它没有出现在 classes.php 文件中。
我访问了一个正在使用组件的页面,但我收到了一个找不到类的错误:
"Class 'author\plugin\Models\modelx' not found" on line 653 of /pathtowww/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php
当我 grep 我的作者时,它会找到一些类,但不是全部: grep -i author storage/framework/classes.php
我不得不手动添加它以使其工作,但我认为这不是我们应该做的。那么我应该在 Class 文件中写入什么内容或在 Plugin.php 文件夹中“注册”吗?
请注意,此插件不在 Marketplace 中(显然因为它尚未开发)。
另外,当我使用 Builder 插件创建一个新类时,它确实出现在 classes.php 中。当我用我的文本编辑器创建它时,它通常不会。抱歉,如果这很明显,但我很困惑....!
【问题讨论】:
-
附注我应该说我已经在我的 Plugin.php 中添加了我的 registerComponents 但没有关于任何模型。我的 register() 是空的... ``` public function registerComponents() { return [ 'author\plugin\Components\SoftwareUser' => 'software_user', ]; } ```
-
我发现了问题案例 2(将我的软件部署到 Linux)的解决方案:Windows 不区分大小写,所以直到我部署在 Linux 上才发现我的错字。在创建新类(在我的情况下是队列的作业)时,仍然不确定如何(或者如果我需要)重新生成 class.php...
-
storage/framework/classes.php你不需要生成它,它由CMS自己自动生成。如果它没有生成可能是它对storage文件夹的权限问题,给它适当的write权限,它将自动生成。 -
谢谢@HardikSatasiya。权限正确。
标签: laravel octobercms