CodeIgniter + omnipay установка

Раньше я пользовался ci-merchant, но из всего видно, что его "V2" теперь omnipay. Я использую codeigniter, и я изо всех сил пытаюсь заставить пример работать.

Я установил omnipay без проблем, и в моем контроллере есть следующее:

use Omnipay\Common\GatewayFactory;
class Homepage extends BC_basecontroller {

public function index()
{
    $gateway = GatewayFactory::create('PayPal_Express');
    $gateway->setUsername('adrian');
    $gateway->setPassword('12345');
}
}

Вот пример здесь: https://github.com/adrianmacneil/omnipay

Однако я получаю ошибку:

PHP Fatal error:  Class 'Omnipay\Common\GatewayFactory' not found in......

Кто-нибудь знает, как заставить его работать в CI?

2 ответа

Я не уверен, как вы установили Omnipay, но вам нужно использовать Composer для загрузки классов, прежде чем вы сможете их использовать.

Поэтому, следуя инструкциям по установке Omnipay, добавьте это в composer.json файл в вашем корневом каталоге:

{
    "require": {
        "omnipay/omnipay": "*"
    }
}

Затем установите файлы:

$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update

Теперь, если вы используете CodeIgniter, вам нужно настроить его на включение автозагрузчика композитора. В основном, просто добавьте эту строку в верхней части вашего index.php файл:

require_once __DIR__.'/vendor/autoload.php';

Здесь также есть руководство по использованию Composer с CodeIgniter, которое может оказаться вам полезным: http://philsturgeon.co.uk/blog/2012/05/composer-with-codeigniter

У меня была такая же ошибка и я исправил ее загрузкой vendor/autoload.php до application/core/CodeIgniter.php

Другие вопросы по тегам