schulzefelix / laravel-bigquery by schulzefelix

262,847
33
4
Package Data
Maintainer Username: schulzefelix
Maintainer Contact: github@schulze.co (Felix Schulze)
Package Create Date: 2017-07-28
Package Last Update: 2024-05-09
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-12-23 03:06:44
Package Statistics
Total Downloads: 262,847
Monthly Downloads: 3,447
Daily Downloads: 37
Total Stars: 33
Total Watchers: 4
Total Forks: 19
Total Open Issues: 2

Laravel BigQuery

Latest Version Software License Build Status Quality Score StyleCI Latest Version on Packagist Total Downloads

Using this package you can easily interact with the Google BigQuery API.

Install

This package can be installed through Composer.

$ composer require schulzefelix/laravel-bigquery

In Laravel 5.5 the package will autoregister the service provider. In Laravel 5.4 you must install this service provider.

// config/app.php
'providers' => [
    ...
    SchulzeFelix\BigQuery\BigQueryServiceProvider::class,
    ...
];

In Laravel 5.5 the package will autoregister the facade. In Laravel 5.4 you must install the facade manually.

// config/app.php
'aliases' => [
    ...
    'BigQuery' => SchulzeFelix\BigQuery\BigQueryFacade::class,
    ...
];

Optionally, you can publish the config file of this package with this command:

php artisan vendor:publish --provider="SchulzeFelix\BigQuery\BigQueryServiceProvider"

The following config file will be published in config/bigquery.php

return [
 
    /*
    |--------------------------------------------------------------------------
    | Application Credentials
    |--------------------------------------------------------------------------
    |
    | Path to the Service Account Credentials JSON File
    |
    | https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/v0.35.0/guides/authentication
    |
    */
 
    'application_credentials' => env('GOOGLE_CLOUD_APPLICATION_CREDENTIALS'),
 
    /*
    |--------------------------------------------------------------------------
    | Project ID
    |--------------------------------------------------------------------------
    |
    | The Project Name is a user-friendly name,
    | while the Project ID is required by the Google Cloud client libraries to authenticate API requests.
    |
    */
 
    'project_id' => env('GOOGLE_CLOUD_PROJECT_ID'),
 
    /*
    |--------------------------------------------------------------------------
    | Client Auth Cache Store
    |--------------------------------------------------------------------------
    |
    | This option controls the auth cache connection that gets used.
    |
    | Supported: "apc", "array", "database", "file", "memcached", "redis"
    |
    */
 
    'auth_cache_store' => 'file',
 
    /*
    |--------------------------------------------------------------------------
    | Client Options
    |--------------------------------------------------------------------------
    |
    | Here you may configure additional parameters that
    | the underlying BigQueryClient will use.
    |
    | Optional parameters: "authCacheOptions", "authHttpHandler", "httpHandler", "retries", "scopes", "returnInt64AsObject"
    */
 
    'client_options' => [
        'retries' => 3, // Default
    ],
];

Usage

This package just initialize the BigQuery connection, you can use every method like in Google's API. You can use the provided Facade or retrieve the it from the IoC Container.

BigQuery::apiMethod();
 
app('bigquery')->apiMethod();

Here are two basic example to create a dataset and check for existence of a table

Create Dataset

$dataset = BigQuery::createDataset('myNewDataSet');

Check Existence Of A Table

BigQuery::dataset(myNewDataSet)->table('aTable')->exists());

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ vendor/bin/phpunit

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email githubissues@schulze.co instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.