【发布时间】:2016-04-19 12:22:02
【问题描述】:
我不问很多问题,因为我喜欢自己研究,但这让我很难过。 我有一个现有的 Codeigniter2(CI) 应用程序,并正在尝试为支付系统 (MangoPay) 集成现有的 API。我已将它添加为库并将其预加载到 autoload.php 中,它被包含在内,没有错误。 我的问题是关于设置类结构并从我的应用程序中寻址类。
现在,如果您要从一个普通的旧 PHP 文件中运行它,代码将如下所示(顺便说一句,它可以在我的机器上运行,而普通 php 文件没有问题)
<?php
require_once('../vendor/autoload.php');
$mangoPayApi = new MangoPay\MangoPayApi();
$mangoPayApi->Config->ClientId = 'user_id';
$mangoPayApi->Config->ClientPassword = 'password_here';
$mangoPayApi->Config->TemporaryFolder = 'c:\\wamp\\tmp/';
$User = new MangoPay\UserNatural();
$User->Email = "test_natural@testmangopay.com";
$User->FirstName = "Bob";
$User->LastName = "Briant";
$User->Birthday = 121271;
$User->Nationality = "FR";
$User->CountryOfResidence = "ZA";
$result = $mangoPayApi->Users->Create($User);
var_dump($result);
?>
所以,我在库文件夹中创建了一个新类,如果我要 var_dump() 如下所示的 mangoPayApi 的内容,它会抛出各种证明它正在工作的东西(即没有 PHP 错误)。
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
require_once('/vendor/autoload.php');
class MangoPayService {
private $mangoPayApi;
private $user;
public function __construct()
{
$this->mangoPayApi = new MangoPay\MangoPayApi();
$this->mangoPayApi->Config->ClientId = 'user_id_here';
$this->mangoPayApi->Config->ClientPassword = 'password_here';
$this->mangoPayApi->Config->TemporaryFolder = 'c:\\wamp\\tmp/';
//var_dump($mangoPayApi);
}
我以为我可以像这样在类中编写一个方法
function add_user(){
//CREATE NATURAL USER
$this->user = new user();
$user->Email = 'test_natural@testmangopay.com';
$user->FirstName = "John";
$user->LastName = "Smith";
$user->Birthday = 121271;
$user->Nationality = "FR";
$user->CountryOfResidence = "ZA";
$add_userResult = $this->mangoPayApi->Users->Create($user);
var_dump($add_userResult);
}
并在我的应用程序中访问它,例如
<?php echo $this->mangopayservice->add_user() ?>
但我收到错误致命错误:第 25 行的 C:\wamp\www\mpapp\application\libraries\MangoPayService.php 中找不到类“用户”(即 this->user = new user(); this行)
谁能解释如何正确设置此场景以及如何正确与 API 集成。
如果我可以在打开页面时简单地创建用户,我想我可以使用该解决方案作为路线图从那里开始工作。
一旦我了解如何完成这项工作,我将编写所有集成代码。
提前致谢
【问题讨论】:
标签: php codeigniter class oop libraries