如何在 prestashop 中将 php class 导入到 rootpay.php class
How can I import php class to rootpay.php class in prestashop
我正在尝试将 /var/www/html/prestashop/webs/modules/rootpay/override/Rootpay/Client/Service/EcomCheckoutFormServiceClient.php class 添加到 /var/www/html/prestashop/webs/modules/rootpay/rootpay.php.
我在 rootpay.php class 中使用 import 就是这样
require_once _PS_MODULE_DIR_ . 'rootpay/override/Rootpay/Client/Service/EcomCheckoutFormServiceClient.php';
EcomCheckoutFormServiceClient.php class:
<?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 相同的命名空间。
不幸的是,Prestashop 中的自动加载器对命名空间一无所知。
您必须在 rootpay.php
.
的顶部包含所有依赖项
我假设您正试图包含一个与 Prestashop 不兼容的 "module"。
因此,在 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';
如果你的整个 "module" 都是基于命名空间的,恐怕你将不得不重写其中的大部分内容。
我正在尝试将 /var/www/html/prestashop/webs/modules/rootpay/override/Rootpay/Client/Service/EcomCheckoutFormServiceClient.php class 添加到 /var/www/html/prestashop/webs/modules/rootpay/rootpay.php.
我在 rootpay.php class 中使用 import 就是这样
require_once _PS_MODULE_DIR_ . 'rootpay/override/Rootpay/Client/Service/EcomCheckoutFormServiceClient.php';
EcomCheckoutFormServiceClient.php class:
<?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 相同的命名空间。
不幸的是,Prestashop 中的自动加载器对命名空间一无所知。
您必须在 rootpay.php
.
我假设您正试图包含一个与 Prestashop 不兼容的 "module"。
因此,在 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';
如果你的整个 "module" 都是基于命名空间的,恐怕你将不得不重写其中的大部分内容。