如何从PrestaShop中的钩子调用控制器中的函数

如何从PrestaShop中的钩子调用控制器中的函数,prestashop,Prestashop,我有同样的钩在下面 public function hookActionProductAdd($params){ // how to call function from Admincontroller } 我想从$params获取参数,我有控制器,我想在添加产品时调用hookActionProductAdd中的Processproduct函数 class GetProductController extends ModuleAdminController{ public function P

我有同样的钩在下面

public function hookActionProductAdd($params){
// how to call function from Admincontroller
}
我想从$params获取参数,我有控制器,我想在添加产品时调用hookActionProductAdd中的Processproduct函数

class GetProductController extends ModuleAdminController{
public function Processproduct(){
    self::$slimit = ( int ) Configuration::get ( 'PS_COMMIT_ITEM' );
    //do something
    }
}
但是我不知道怎么做。

您可以通过静态功能获得任何控制器:

AdminController::getController($class_name)

与“Controller”和“ModuleFrontController”类相同

我想调用名为“example”的函数,但AdminController::getController($solrCall)我想调用这个类的函数。我只是不明白你想在这里做什么,但我想这更可能是一个POO问题,而不是一个prestashop问题。我发现,$class\u名为AdminController::getController($class\u名),必须在缓存文件夹的class\u索引文件中声明,但我的自定义控制器不在其中,因为我无法使用AdminController::getController(),它get error找不到类。。。。。。对不起我的英语!好的,我终于明白了。自定义模块未在自动加载中定义。在使用此函数调用此文件之前,您需要自己包含此文件。您可以在模块构造函数中添加这些行:$autoload=autoload::getInstance()$自动加载->索引[“AdminmycustomController”]=dirname(文件)。/folderofmycontroller/AdminmycustomController.php';然后您可以在模块中的任何位置调用控制器:$thecontroller=AdminControllerCore::getController(“AdminmycustomController”);非常感谢你!