Как автоматически импортировать все классы 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.

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