Idiomatic PHP client for Google Cloud Platform services.
This client supports the following Google Cloud Platform services:
- Google BigQuery
- Google Stackdriver Logging
- Google Translate
- Google Cloud Datastore
- Google Cloud Natural Language
- Google Cloud Pub/Sub
- Google Cloud Speech
- Google Cloud Storage
- Google Cloud Vision
If you need support for other Google APIs, please check out the Google APIs Client Library for PHP.
$ composer require google/cloud
<?php
require 'vendor/autoload.php';
use Google\Cloud\BigQuery\BigQueryClient;
$bigQuery = new BigQueryClient([
'projectId' => 'my_project'
]);
// Get an instance of a previously created table.
$dataset = $bigQuery->dataset('my_dataset');
$table = $dataset->table('my_table');
// Begin a job to import data from a CSV file into the table.
$job = $table->load(
fopen('/data/my_data.csv', 'r')
);
// Run a query and inspect the results.
$queryResults = $bigQuery->runQuery('SELECT * FROM [my_project:my_dataset.my_table]');
foreach ($queryResults->rows() as $row) {
print_r($row);
}
<?php
require 'vendor/autoload.php';
use Google\Cloud\Logging\LoggingClient;
$logging = new LoggingClient([
'projectId' => 'my_project'
]);
// Get a logger instance.
$logger = $logging->logger('my_log');
// Write a log entry.
$entry = $logger->entry('my message', [
'type' => 'gcs_bucket',
'labels' => [
'bucket_name' => 'my_bucket'
]
]);
$logger->write($entry);
// List log entries from a specific log.
$entries = $logging->entries([
'filter' => 'logName = projects/my_project/logs/my_log'
]);
foreach ($entries as $entry) {
echo $entry->info()['textPayload'] . "\n";
}
<?php
require 'vendor/autoload.php';
use Google\Cloud\Translate\TranslateClient;
$translate = new TranslateClient([
'key' => 'your_key'
]);
// Translate text from english to french.
$translation = $translate->translate('Hello world!', [
'target' => 'fr'
]);
echo $translation['text'] . "\n";
// Detect the language of a string.
$result = $translate->detectLanguage('Greetings from Michigan!');
echo $result['languageCode'] . "\n";
// Get the languages supported for translation specifically for your target language.
$languages = $translate->localizedLanguages([
'target' => 'en'
]);
foreach ($languages as $language) {
echo $language['name'] . "\n";
echo $language['code'] . "\n";
}
// Get all languages supported for translation.
$languages = $translate->languages();
foreach ($languages as $language) {
echo $language . "\n";
}
require 'vendor/autoload.php';
use Google\Cloud\Datastore\DatastoreClient;
$datastore = new DatastoreClient([
'projectId' => 'my_project'
]);
// Create an entity
$bob = $datastore->entity('Person');
$bob['firstName'] = 'Bob';
$bob['email'] = '[email protected]';
$datastore->insert($bob);
// Fetch an entity
$key = $datastore->key('Person', 'Bob');
$bob = $datastore->lookup($key);
// Update an entity
$bob['email'] = '[email protected]';
$datastore->update($bob);
require 'vendor/autoload.php';
use Google\Cloud\NaturalLanguage\NaturalLanguageClient;
$language = new NaturalLanguageClient([
'projectId' => 'my_project'
]);
// Analyze a sentence.
$annotation = $language->annotateText('Greetings from Michigan!');
// Check the sentiment.
if ($annotation->sentiment() > 0) {
echo "This is a positive message.\n";
}
// Detect entities.
$entities = $annotation->entitiesByType('LOCATION');
foreach ($entities as $entity) {
echo $entity['name'] . "\n";
}
// Parse the syntax.
$tokens = $annotation->tokensByTag('NOUN');
foreach ($tokens as $token) {
echo $token['text']['content'] . "\n";
}
require 'vendor/autoload.php';
use Google\Cloud\PubSub\PubSubClient;
$pubSub = new PubSubClient([
'projectId' => 'my_project'
]);
// Get an instance of a previously created topic.
$topic = $pubSub->topic('my_topic');
// Publish a message to the topic.
$topic->publish([
'data' => 'My new message.',
'attributes' => [
'location' => 'Detroit'
]
]);
// Get an instance of a previously created subscription.
$subscription = $pubSub->subscription('my_subscription');
// Pull all available messages.
$messages = $subscription->pull();
foreach ($messages as $message) {
echo $message['message']['data'] . "\n";
}
require 'vendor/autoload.php';
use Google\Cloud\Speech\SpeechClient;
$speech = new SpeechClient([
'projectId' => 'my_project'
]);
// Recognize the speech in an audio file.
$results = $speech->recognize(
fopen('/data/audio_sample.flac', 'r')
);
foreach ($results as $result) {
echo $result['transcript'] . "\n";
echo $result['confidence'] . "\n";
}
require 'vendor/autoload.php';
use Google\Cloud\Storage\StorageClient;
$storage = new StorageClient([
'projectId' => 'my_project'
]);
$bucket = $storage->bucket('my_bucket');
// Upload a file to the bucket.
$bucket->upload(
fopen('/data/file.txt', 'r')
);
// Download and store an object from the bucket locally.
$object = $bucket->object('file_backup.txt');
$object->downloadToFile('/data/file_backup.txt');
require 'vendor/autoload.php';
use Google\Cloud\Vision\VisionClient;
$vision = new VisionClient([
'projectId' => 'my_project'
]);
// Annotate an image, detecting faces.
$image = $vision->image(
fopen('/data/family_photo.jpg', 'r'),
['faces']
);
$annotation = $vision->annotate($image);
// Determine if the detected faces have headwear.
foreach ($annotation->faces() as $key => $face) {
if ($face->hasHeadwear()) {
echo "Face $key has headwear.\n";
}
}
This library follows Semantic Versioning
Please note it is currently under active development. Any release versioned 0.x.y is subject to backwards incompatible changes at any time.
Contributions to this library are always welcome and highly encouraged.
See CONTRIBUTING for more information on how to get started.
Apache 2.0 - See LICENSE for more information.