Как Джон объяснил в своем ответе , однофайловая библиотека может быть загружена путем помещения ее в папку библиотеки :
$this->load->library('my_app');
Несколько однофайловых библиотек могут быть загружены аналогично массиву:
$this->load->library(['email', 'table']);
Однако, если у вас есть папка , заполненная классами для загрузки, которые не связаны с CodeIgniter , вы все равно можете поместить их в папку third_party , но не использовать $this->load->add_package_path()
(он ожидает структуру CI внутри нового пакета third_party , т.е. с моделями, конфигами, помощниками и т. Д.).
Я оставляю пример, Stripe API имеет папку lib и init.php , поэтому я сделал следующее:
- обновил init.php ссылки с
dirname(__FILE__) . '/lib/
на dirname(__FILE__) . '/
) и поместил файл в папку third_party / stripe вместе со всем содержимым lib папка;
- Создайте, например, библиотеки / Stripe.php ;
Это будет его конструктор:
public function __construct()
{
$this->CI =& get_instance();
require_once(APPPATH.'third_party/stripe/init.php');
\Stripe\Stripe::setApiKey($this->CI->config->item('stripe_key_secret'));
if(ENVIRONMENT === 'development'){
\Stripe\Stripe::setVerifySslCerts(false);
}
}
Добавьте к нему функции, которые непосредственно вызывают классы Stripe, например ::1010 *
public static function create_customer($email, $token) {
$stripe_result = FALSE;
try {
$stripe_result = \Stripe\Customer::create([
'email' => $email,
'description' => "Customer for $email",
'source' => $token // obtained with Stripe.js
]);
} catch(\Stripe\Error\Card $e) {
return 'Error ' . $e->getHttpStatus() . ': '.
$e->stripeCode . ' -> '.
var_export($e->getJsonBody()['error'], TRUE);
} catch (Exception $e) {
return 'Something else happened, completely unrelated to Stripe -> '.
var_export($e, TRUE);
}
return $stripe_result;
загрузить библиотеку на один из ваших контроллеров и вызвать метод:
$this->load->library('stripe');
Stripe::create_customer($someones_email, $someones_token); // you can use the result
Также оставляем обновленный URL: Документация по классу загрузчика CodeIgniter .