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



我正在windows平台上开发一个十月CMS插件,比如author.pluginname。

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

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

例如,我刚刚将我的插件复制到一个新的十月CMS安装中,但在使用plugin:refresh安装插件后,它不会出现在classes.php文件中。

我访问了一个正在使用组件的页面,我得到了一个未找到类的错误:

"Class 'authorpluginModelsmodelx' 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文件夹中"注册"一些东西吗?

请注意,这个插件不在市场上(很明显,因为它还没有开发出来)。

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

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

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

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

最新更新