Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CodeIgniter - How to load stripe-php library in project?

I'm using Stripe's php library. DL link: https://code.stripe.com/stripe-php-latest.zip

I have tried codeigniters load library method, but still a server error. I tried putting the library in application/libraries and then load my library with $this->load->libraries('Stripe.php');

I've change all capitals to lowercases, still getting the error.

Following is the code of Stripe.php

<?php

// Tested on PHP 5.2, 5.3

// This snippet (and some of the curl code) due to the Facebook SDK.
if (!function_exists('curl_init')) {
  throw new Exception('Stripe needs the CURL PHP extension.');
}
if (!function_exists('json_decode')) {
  throw new Exception('Stripe needs the JSON PHP extension.');
}
if (!function_exists('mb_detect_encoding')) {
  throw new Exception('Stripe needs the Multibyte String PHP extension.');
}

// Stripe singleton
require(dirname(__FILE__) . '/Stripe/Stripe.php');

// Utilities
require(dirname(__FILE__) . '/Stripe/Util.php');
require(dirname(__FILE__) . '/Stripe/Util/Set.php');

// Errors
require(dirname(__FILE__) . '/Stripe/Error.php');
require(dirname(__FILE__) . '/Stripe/ApiError.php');
require(dirname(__FILE__) . '/Stripe/ApiConnectionError.php');
require(dirname(__FILE__) . '/Stripe/AuthenticationError.php');
require(dirname(__FILE__) . '/Stripe/CardError.php');
require(dirname(__FILE__) . '/Stripe/InvalidRequestError.php');
require(dirname(__FILE__) . '/Stripe/RateLimitError.php');

// Plumbing
require(dirname(__FILE__) . '/Stripe/Object.php');
require(dirname(__FILE__) . '/Stripe/ApiRequestor.php');
require(dirname(__FILE__) . '/Stripe/ApiResource.php');
require(dirname(__FILE__) . '/Stripe/SingletonApiResource.php');
require(dirname(__FILE__) . '/Stripe/AttachedObject.php');
require(dirname(__FILE__) . '/Stripe/List.php');

// Stripe API Resources
require(dirname(__FILE__) . '/Stripe/Account.php');
require(dirname(__FILE__) . '/Stripe/Card.php');
require(dirname(__FILE__) . '/Stripe/Balance.php');
require(dirname(__FILE__) . '/Stripe/BalanceTransaction.php');
require(dirname(__FILE__) . '/Stripe/Charge.php');
require(dirname(__FILE__) . '/Stripe/Customer.php');
require(dirname(__FILE__) . '/Stripe/Invoice.php');
require(dirname(__FILE__) . '/Stripe/InvoiceItem.php');
require(dirname(__FILE__) . '/Stripe/Plan.php');
require(dirname(__FILE__) . '/Stripe/Subscription.php');
require(dirname(__FILE__) . '/Stripe/Token.php');
require(dirname(__FILE__) . '/Stripe/Coupon.php');
require(dirname(__FILE__) . '/Stripe/Event.php');
require(dirname(__FILE__) . '/Stripe/Transfer.php');
require(dirname(__FILE__) . '/Stripe/Recipient.php');
require(dirname(__FILE__) . '/Stripe/ApplicationFee.php');

Now how to add this file in codeigniter. All other files included in this file are in subdirectory Stripe

like image 998
geek2geek_AWS Avatar asked May 27 '14 07:05

geek2geek_AWS


1 Answers

When loading a library, the first parameter is the class name, not the file name. If the file contained a class called Stripe, then you could load it by calling:

$this->load->libraries('stripe');

Note, if the file is in an subdirectory, then you would need to include the path relative to the libraries directory.

If the file doesn't have a class, but a set of functions instead, then it's considered to be a helper, not a library. You can load a helper by calling this function, passing the file name without its extension as the first parameter:

$this->load->helper('file_name')

Looking at the library you want to use, you'll likely need to adapt it to the form of a CodeIgniter library.

If you don't want to adapt it to function as a CodeIgniter library, there's nothing stopping you including it using PHP, rather than loading it as a library:

require_once(APPPATH.'libraries/Stripe/lib/Stripe.php'); // Your path may be different
like image 158
jleft Avatar answered Nov 09 '22 10:11

jleft