Как автоматически импортировать все классы Stripe в CakePHP
Как импортировать все необходимые классы из Stripe PHP SDK (2.1.0) в CakePHP (2.6.1)?
Я добавил субмодуль для Stripe и клонировал его в приложение /Vendor/Stripe
Мой код выглядит так:
<?php
App::uses('Stripe', 'Vendor/Stripe/lib');
// Secret API Key for Stripe
\Stripe\Stripe::setApiKey('sk_test_xxxxxxxxxxxxxxxxxxx');
class BillingController extends AppController {
// My methods
}
?>
и я получаю:
Fatal Error
Error: Class 'Stripe\Stripe' not found
File: /Projects/Web/admin.example.io/app/Controller/BillingController.php
Line: 6
2 ответа
Вы должны использовать import()
при использовании поставщика, а не uses()
лайк
App::import('Vendor', 'Stripe', array('file' => 'Stripe' . DS .'lib' . DS . 'Stripe.php'));
Здесь DS постоянна для /
,
Вы должны следовать правилам именования CakePHP, как import() Must
использоваться при использовании пакета Vendor. При использовании других классов, таких как контроллер, вы можете использовать use (), но не здесь, в вашей ситуации.
Обновлено:
Теперь шаги, которые вы должны выполнить, поскольку это более конкретно для вашей проблемы:
1. Установите с помощью композитора.
2. Теперь импортируйте установленный пакет / поставщика, используя
App::import('Vendor', 'autoload', array('file' => 'Stripe' . DS .'vendor' . DS . 'autoload.php'));
Вы должны включить файл init.php.
Структура каталогов zip-файла выглядит примерно так:
stripe-php
- libs/
- data/
- test/
- init.php
Вместо того, чтобы включать файлы PHP в папку libs, просто включите init.php.