[英]PrestaShop module classes not found (namespaces)
這是我的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時,它將引發致命錯誤,因為autoload初始化了不應在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
我不想將所有的鈎子邏輯放在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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.