Problem
Related issue https://stackoverflow.com/questions/28585399/prestashop-1-6-get-instance-of-module-class,我一直在尝试将相关解决方案应用于我的项目,但是我无法执行
Module::getInstanceByName('modulename');
我什至无法访问Module
类,这使得我很难访问应用程序上下文和我自己的模块上下文
class_exists('Module')
Returns false
.
我还提供了我尝试访问的模块的目录结构Module
.
├── mymodule.php
├── config.xml
└── somedirectory
└── index.php
Where mymodule.php
遵循模块类指导方针 http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-Themainclass and index.php
只是我尝试访问其他模块的 php 文件。对我来说最重要的是访问我自己的模块的上下文,以便我可以检索例如它的版本和其他设置。
示例来源
的例子index.php
从我的testmodule
,这个例子是为了1.4
但我也愿意让它为之工作1.5
and 1.6
require('../../../config/settings.inc.php');
require('../../../classes/Module.php');
$instance = Module::getInstanceByName('mymodule');
这会崩溃,当我使用时
require('../../../config/settings.inc.php');
require('../../../classes/Module.php');
if (class_exists('Module')) {
echo "class exists";
} else {
echo "class does not exists";
}
它输出class does not exists
.
我要求的理由../../../config/settings.inc.php
是为了证明我可以要求一些课程并且它有效。我能够访问内部定义的常量settings.inc.php
所以文件位于相对路径../../../classes/Module.php
存在并且它包含
...
public static function getInstanceByName($moduleName)
...
问题
- 如何正确访问
Module
按照建议访问特定模块实例的类here https://stackoverflow.com/questions/28585399/prestashop-1-6-get-instance-of-module-class。从自定义模块的任意文件中加载 Prestashop 类的正确方法是什么?
- 为什么我可以导入
../../../config/settings.inc.php
using require
它不适用于../../../classes/Module.php
?
- 此问题涉及 Prestashop
1.4
,但是我想知道这是否也适用于1.5
and 1.6
,我注意到对于那些版本classes/module.php
不存在而是存在classes/module/Module.php
。通用解决方案将是最好的。