php - 未找到 PrestaShop 模块类(命名空间)

标签 php namespaces prestashop webhooks

这是我的 PrestaShop 模块文件结构:

-mymodule/
--src/
--mymodule.php
---Presta/
---Webhooks.php
----Controller/
-----MyPrestaController.php

mymodule.php 找不到 Webhooks.php 类,我尝试在 mymodule.php 中使用,但它仍然提供错误:
ClassNotFoundException in mymodule.php line 55:
Attempted to load class "Webhooks" from namespace "src\Presta".
Did you forget a "use" statement for another namespace?

当我尝试在 mymodule.php 中使用 autoload/include/require 时,它​​会抛出 fatal error ,因为自动加载初始化了不应在 mymodule.php 中初始化的内容(来自我的模块供应商)。 GuzzleClient 在浏览网站时变得疯狂:
Catchable Fatal Error: Argument 3 passed to 
GuzzleHttp\Client::request() must be of the type array, string given, 
called in /usr/local/ampps/www/presta/modules/mymodule/vendor/guzzlehttp/guzzle/src/Client.php on line 89 and defined

我不想将所有钩子(Hook)逻辑放在 mymodule.php 中,而且我还有其他类需要在 webhook 方法中实现。有没有办法在主模块文件(mymodule.php)中使用其他类?我错过了什么吗?

最佳答案

您需要使用完整路径调用您的类或声明 use在你的模块文件之上。我不知道确切的命名空间 Webhooks是下,但像这样:

public function hookActionAuthentication($params) 
{ 
    \src\Presta\Webhooks::myStaticWebhooksMethod($params);
}

或者
use src\Presta\Webhooks; // before module class declaration

public function hookActionAuthentication($params) 
{ 
    Webhooks::myStaticWebhooksMethod($params);
}

关于php - 未找到 PrestaShop 模块类(命名空间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50236670/

相关文章:

php - Prestashop PHP 包含在 .tpl 中不起作用

javascript - JS-onClick 多个事物

php - 为什么使用嵌套特征会改变 PHP 行为?

javascript - jQuery 在 smarty 代码上抛出 Uncaught Error

C#:为什么尽管使用了完全限定名称?

c# - 以编程方式检查 Http 命名空间保留

module - Prestashop 1.6 - 后台 - Smarty - 创建一个制作简单空白页面的模块?

java - Volley 的 JsonObjectRequest 给出 "org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject"异常

Esse3 的 PHP Curl 登录 https

c# - 如何判断给定的类属于哪个命名空间?