开发插件时如何编写classes.php

时间:2019-01-07 03:34:59

标签: laravel octobercms

我正在Windows平台上开发一个October CMS插件,例如author.pluginname。

文件storage / framework / classes.php是使用我的类的链接自动生成的,对吗?

我不确定是否总是这样,我不确定是否需要或如何强制发生。这两种情况是:1)我刚刚创建了一个新类,2)我将插件同步到另一个测试(Linux服务器)。

例如,我只是将插件复制到新的October 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作者storage / framework / classes.php

我必须手动添加它才能使其正常运行,但是我认为这不是我们应该做的。那我应该在Class文件中写些什么,还是在Plugin.php文件夹中“注册”吗?

请注意,此插件不在Marketplace中(显然是因为尚未开发)。

此外,当我使用Builder插件创建一个新类时,它确实出现在classes.php中。当我使用文本编辑器创建它时,通常不会。道歉,如果很明显,但我很困惑....!

1 个答案:

答案 0 :(得分:0)

如果有人遇到这些问题,我已经找到了问题的解决方案。

1)如果使用Windows +另一个操作系统,请确保文件夹/文件名使用正确的大小写。 Windows不区分大小写,因此在您迁移到Linux / OSX之前,输入错误不会导致错误

2)仅当名称空间与文件的目录结构匹配时,才自动生成Classes.php。因此,如果您移动文件(或使用错误的名称空间),将不会生成classes.php,并且您将获得未找到的类。