How to add a third party library to a package using Composer in 5.7
Here is an example of downloading the Stripe PHP library with Composer
https://github.com/stripe/stripe-php
Install Composer.
OSX/Linux/Unix
https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx
Windows
https://getcomposer.org/doc/00-intro.md#installation-windowsCreate a composer.json file in your package root.
Open composer.json and paste this code into it to declare your dependencies. The Composer dependencies will be listed on the GitHub project site, Packagist, or main project website.
{ "require": { "stripe/stripe-php": "2.*" } }
Run Composer to download the dependencies.
https://getcomposer.org/doc/00-intro.md#using-composerOnce Composer finishes downloading, you will see a new folder called vendor and a new file called composer.lock.
In your package controller, require the Composer autoloader inside the
on_start()
method, using$this->getPackagePath()
for the path.public function on_start() { require $this->getPackagePath() . '/vendor/autoload.php'; }
Now you should be able to create a new Stripe\Stripe object in local scope and \Stripe\Stripe object in global scope. Optionally, Composer can be used again in the future to update the dependencies to the current version.
composer.lock
This file locks the dependencies of your project to a known state. It is a list of the exact versions of the dependencies it installed in the vendor file.
vendor
The vendor folder contains all your dependencies, an autoload.php file, and a composer folder that contains additional autoload files.