Prestashop中的Autoload模块类

时间:2015-03-17 22:20:08

标签: prestashop prestashop-1.6

我创建了一个模块,它覆盖FrontControllerCore类以添加额外的Smarty变量。

我遇到的问题是尝试自动加载在我的模块中的控制器中引用的类。该类未加载,我不知道如何将其添加到自动加载器。

3 个答案:

答案 0 :(得分:3)

安装模块时,FrontController.php文件应位于: 覆盖\类\控制器\

所以从FrontController.php你可以"包括"手动该文件,如:

require_once(dirname(__FILE__).'/../../../modules/servicecharges/classes/ServiceCharge.php');

此类包含没有自动加载。

答案 1 :(得分:1)

此外,您可以使用这个覆盖Prestashop自动加载的免费小模块。之后,所有模块自定义类都将自动加载。

例句路径: /modules/my_module/libs/classes/MyClass.php

Extended Api

答案 2 :(得分:1)

我已经能够使用Composer的自动加载解决类似的问题。 Way to require an autoload in one file on a Prestashop module?

您可以调用钩子 moduleRoutes ,而不是覆盖控制器(导致与已使用相同覆盖的Prestashop的其他插件或安装发生冲突)。

这样,您可以在控制器之前始终调用自动加载程序:

<?php

public function hookModuleRoutes() {
  require_once __DIR__.'/vendor/autoload.php'; // And the autoload here to make our Composer classes available everywhere!
}