2016-07-19 54 views
0

我想補充/var/www/html/prestashop/webs/modules/rootpay/override/Rootpay/Client/Service/EcomCheckoutFormServiceClient.php class to /var/www/html/prestashop/webs/modules/rootpay/rootpay.php如何導入PHP類rootpay.php類的Prestashop

我用進口的rootpay.php類像

require_once _PS_MODULE_DIR_ . 'rootpay/override/Rootpay/Client/Service/EcomCheckoutFormServiceClient.php'; 

EcomCheckoutFormServiceClient.php類:

<?php 

namespace Rootpay\Client\Service; 

use Rootpay\Client\Configuration\ClientConfiguration; 
use Rootpay\Client\HttpClientTemplate; 

class EcomCheckoutFormServiceClient extends BasePaymentServiceClient 
{ 
    public static function fromConfiguration(ClientConfiguration $configuration) 
    { 
     return new EcomCheckoutFormServiceClient($configuration, new HttpClientTemplate()); 
    } 
} 
?> 

,當我在管理頁面打開的模塊頁面。我看到這個錯誤:

[PrestaShop] Fatal error in module file :/var/www/html/prestashop/webs/modules/rootpay/override/Rootpay/Client/Service/EcomCheckoutFormServiceClient.php: Class 'Rootpay\Client\Service\BasePaymentServiceClient' not found.

BasePaymentServiceClient使用EcomCheckoutFormServiceClient相同的命名空間。

回答

0

不幸的是,Prestashop中的自動加載器對名稱空間沒有任何線索。
您必須在rootpay.php的頂部包含所有依賴關係。

我假設你試圖包含一個不是Prestashop兼容的「模塊」。

所以在rootpay.php頂部,你就必須包括:如果你的整個「模塊」是基於命名空間

<?php 
require_once _PS_MODULE_DIR_ . 'rootpay/override/Rootpay/Client/Configuration/ClientConfiguration.php'; 
require_once _PS_MODULE_DIR_ . 'rootpay/override/Rootpay/Client/HttpClientTemplate.php'; 
require_once _PS_MODULE_DIR_ . 'rootpay/override/Rootpay/Client/Service/BasePaymentServiceClient.php'; 
require_once _PS_MODULE_DIR_ . 'rootpay/override/Rootpay/Client/Service/EcomCheckoutFormServiceClient.php'; 

,恐怕你就得重寫大部分。