Symfony2 and Google API integration

11,383

Solution 1

It's probably too late, but there is no need to use forked git repos, you can refer to Google's "native" svn directly.

Add the following section to your composer.json:

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "project/google-api-php-client",
            "version": "1.0.0",
            "source": {
                "type": "svn",
                "url": "http://google-api-php-client.googlecode.com/svn",
                "reference": "trunk"
            }
        }
    }
]

Notes:

  • "project/google-api-php-client" name there can be any of your choice
  • If you need a particular revision, use "trunk@revision-number-here" format in "reference" entry

Then add the following line to your "require" section:

"require": {
    ...
    "project/google-api-php-client": "1.0.0"
}

That'll make composer to checkout the repo on the next update/install.

If you want Google API classes to be autoloaded, add the following line to your "autoload" section:

"autoload": {
    ...
    "classmap": ["vendor/project/google-api-php-client/src"]
}

It doesn't seem very neat to put the full path into the global "autoload" section, but I didn't manage to make it work with "autoload" section under `repository/package" yet :(

Solution 2

Google have now started using github and have added a composer.json file.

Github: https://github.com/google/google-api-php-client

Packagist: https://packagist.org/packages/google/apiclient

"require": {
    ...
    "google/apiclient": "dev-master"
}

It's a shame there is no namespaces, but they are closer than before by having a composer file.

Solution 3

There is a Symfony2 bundle wrapping the official Google API library published by Google on Github in 2014. That way, the API client is available as a service and you can store your configuration in the Symfony2 config file.

Symfony2 Bundle: https://github.com/Happyr/GoogleApiBundle

$ composer require happyr/google-api-bundle
<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new HappyR\Google\ApiBundle\HappyRGoogleApiBundle(),
    );
}
Share:
11,383

Related videos on Youtube

hsz
Author by

hsz

IntelliJ SDK, Kotlin, Java, TypeScript, NodeJS, security, ...

Updated on September 15, 2022

Comments