php - Prestashop,不能要求模块类

标签 php module prestashop autoload

问题

相关issue ,我一直在尝试将相关解决方案应用到我的项目中,但是我无法执行

Module::getInstanceByName('modulename');

我什至无法访问 Module 类,这让我很难访问应用程序上下文和我自己的模块上下文

class_exists('Module')

返回 false

我还提供了我试图从中访问 Module 的模块的目录结构。

├── mymodule.php
├── config.xml
└── somedirectory
    └── index.php

mymodule.php 跟在模块类 guidelines 之后index.php 只是我尝试访问其他模块的 php 文件。对我来说最重要的是访问我自己的模块的上下文,这样我就可以检索它的版本和其他设置。

例子来源

我的 testmodule 中的 index.php 示例,此示例适用于 1.4 但我也愿意让它为 1.51.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";
}

它输出类不存在

我需要 ../../../config/settings.inc.php 的原因是为了证明我可以需要一些类并且它可以工作。我能够访问 settings.inc.php

中定义的常量

因此相对路径../../../classes/Module.php 中的文件存在并且它包含

...
public static function getInstanceByName($moduleName)
...

问题

  1. 如何按照建议正确访问 Module 类以访问特定模块的实例 here .从自定义模块的任意文件中加载 Prestashop 类的正确方法是什么。
  2. 为什么我可以使用 require 导入 ../../../config/settings.inc.php 而它不适用于 。 ./../../classes/Module.php?
  3. 这个问题涉及 Prestashop 1.4,但是我想知道这是否也适用于 1.51.6,我注意到对于那些版本,classes/module.php 不存在,而是存在 classes/module/Module.php。通用解决方案是最好的。

最佳答案

如果你直接调用你的 index.php 文件 (http://www.example.com/modules/mymodule/somedirectory/index.php) 你是不使用 Prestashop 内部调度程序。这意味着当您的 index.php 脚本被执行时,Prestashop 不会被加载。

如果你想加载 Prestashop,你首先需要包含 /config/config.inc.php:

require('../../../config/config.inc.php');
if (class_exists('Module')) {
    echo "class exists";
} else {
    echo "class does not exists";
}

如果您想使用 Prestashop 标准 Dispatcher 进程,您将必须创建一个 ModuleFrontController .

关于php - Prestashop,不能要求模块类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38303955/

相关文章:

Python - 访问和修改多个模块中的列表

php - Prestashop 1.6.1.11 (500) 内部服务器错误(关联)字节耗尽

comparison - Prestashop 与 Zen-Cart 和 osCommerce 相比

php - PhP 中具有 DB 文件夹结构的 s3 Web 文件管理器

php - 如何从多维数组中删除空数组?

php - 在一列中存储另一个表中的多个 ID?

php - 字符串到 PHP 中的字节/二进制数组

php - Pimcore:如何覆盖内置 Controller

ruby - 是否可以为子模块赋予与顶级类相同的名称?

jquery - 如何显示加载直到所有图像完全加载?