Specify dependencies in PHP
You use Composer to manage dependencies in PHP.
Installing Composer
If you don't already have Composer installed, you can do so as follows:
Download Composer to any location you desire.
Once it is downloaded, move the
composer.phar
file to a directory that is in your system path, for example:mv composer.phar /usr/local/bin/composer
Creating a composer.json
file
The composer.json
file lists your function's dependencies. You can either
create it by hand, or you can run the following command:
composer init
When you run this command, it interactively asks you to fill in the fields, while offering some smart defaults.
Declaring dependencies
To declare dependencies, add a composer.json
file containing dependencies to your
function code directory. In this example, we require the
Functions Framework
and add a start
script:
Note that scripts defined in your
composer.json
file
will not run when Composer can use a cached result.
Add Functions Framework as a dependency
The Cloud Run functions PHP runtime requires the Functions Framework to be an
explicit dependency. To add Functions Framework as a dependency, run the
following command in the directory containing your function code (this directory
must also contain the composer.json
file):
composer require google/cloud-functions-framework
This adds the Functions Framework to your composer.json
and installs the
package in the vendor/
directory.
autoload.php
file
One of the files contained in your vendor/
directory is autoload.php
.
Add the following line to the top of your PHP scripts to require the
autoload.php
file, which automatically require
s your function's other
dependencies:
require_once __DIR__ . '/vendor/autoload.php';
By default, the vendor/
directory is ignored in the generated
.gcloudignore
file to reduce the
number of files sent in deployment.
Updating dependencies
To update your function's dependencies and the composer.lock
file, use the
update
command:
composer update
This resolves all dependencies of the project and writes their exact versions into
composer.lock
.