2013-08-28 3 views
1

Я пытаюсь добавить элементы в merchant.php (файл конфигурации библиотеки CI-Merchant, который, как я полагаю, автоматически загружается CodeIgniter). Я хочу иметь возможность устанавливать параметры для шлюза оплаты (драйвера), который я выбираю в настройках, поэтому мне не нужно записывать его в каждом контроллере, который вызывает библиотеку/драйвер, и я не хочу жестко указывать настройки в драйвере.Как правильно использовать конфигурационный файл библиотеки CI-Merchant

Эти настройки я пытаюсь сохранить, но я мог бы другим с различными шлюзами:

$config['authorize_net']['api_login_id'] = '***'; 
$config['authorize_net']['transaction_key'] = '***'; 
$config['authorize_net']['test_mode'] = TRUE; 
$config['authorize_net']['developer_mode'] = TRUE; 

Однако это вызывает 2 предупреждения. Первый:

A PHP Error was encountered 
Severity: Warning 
Message: stripos() expects parameter 1 to be string, array given 
Filename: libraries/merchant.php 
Line Number: 97 

И второе:

A PHP Error was encountered 
Severity: Warning 
Message: strtolower() expects parameter 1 to be string, array given 
Filename: libraries/merchant.php 
Line Number: 103 

Так что, мне кажется, что CodeIgniter автоматически передавая файл merchant.php конфигурации в библиотеку, но он не ожидал (что тоже меня смущает, потому что в загрузке CI-Merchant он поставляется с конфигурационным файлом).

Моим худшим сценарием будет изменение «настроек по умолчанию» в merchant_authorize_net.php, но я действительно хочу этого избежать, ниже показано, как выглядит эта функция настроек по умолчанию.

public function default_settings() 
{ 
    return array(
     'api_login_id' => '', 
     'transaction_key' => '', 
     'test_mode' => FALSE, 
     'developer_mode' => FALSE, 
    ); 
} 

Мои вопросы:

  • Есть ли надлежащим образом использовать конфигурационный файл в CI-Торговца?
  • Если нет, есть ли способ иметь файлы конфигурации, специфичные для драйвера, в CodeIgniter?

ответ

1

Конфигурационный файл фактически находится там как шаблонный код, который, вероятно, должен быть удален. Сам CI-купец не имеет никакой логики для автоматического чтения конфигурационного файла для вас.

Как правило, рекомендуется использовать настройки в вашем собственном файле конфигурации (или переменных среды), а затем использовать эти параметры в контроллере для инициализации библиотеки. Вы правы, что лучше всего попробовать и не редактировать что-либо внутри папки библиотеки.

Если вы начинаете новый проект, я также рекомендую вам ознакомиться с Omnipay, преемником CI-Merchant, поскольку CI-Merchant не получит никакой дальнейшей разработки.

+0

Спасибо Adrian. Я закончил тем, что вместо этого использовал библиотеку CIMM Authorize.net. Я видел Omnipay раньше и как это, но я не знал, насколько хорошо он интегрирован с CodeIgniter, поскольку информации об этом не было. Я вижу, что вы являетесь вкладчиком Omnipay, планируете ли вы создать библиотеку для CI для тех из нас, кто не знаком с Composer. – doitlikejustin

+0

Я являюсь автором обеих библиотек :). Очень просто использовать композитор с помощью codeigniter, я бы рекомендовал просто использовать это вместо написания кода, специфичного для CI. Композитор сделает вашу жизнь намного лучше :) –

+0

Я проверю это на своем следующем проекте. Благодаря! – doitlikejustin