Now PHP developers can take advantage of the scale, reliability and security features of App Engine. In addition, PHP runs well with other parts of Google Cloud Platform. Lets look at how this works.
Connecting to Google Cloud SQL from App Engine for PHP
Many PHP developers start with MySQL when choosing a database to store critical information, and a wide variety of products and frameworks such as WordPress make extensive use of MySQL’s rich feature set. Google Cloud SQL provides a reliable, managed database service that is MySQL 5.5 compatible and works well with App Engine.
To set up a Cloud SQL database, sign into Google Cloud Console - create a new project, choose Cloud SQL and create a new instance.
After you create the instance, its automatically associated with your App Engine app.
You will notice Cloud SQL instances don’t need an IP address. Instead they can be accessed via a compound identifier made up of their project name and instance name, such as hello-php-gae:my-cloudsql-instance.
From within PHP, you can access Cloud SQL directly using the standard PHP MySQL libraries - mysql, mysqli or PDO_MySQL. Just specify your Cloud SQL database with its identifier, such as:
<?phpMethods such as query() work just as you’d expect with any MySQL database. This example uses the popular PDO library, although other libraries such as mysql and mysqli work just as well.
$db = new PDO(
mysql:unix_socket=/cloudsql/hello-php-gae:my-cloudsql-instance;dbname=demo_db;charset=utf8,
demo_user,
demo_password
);
foreach($db->query(SELECT * FROM users) as $row) {
echo $row[username]. .$row[first_name]; //etc...
}
Storing files with PHP and Google Cloud Storage
Reading and writing files is a common task in many PHP projects, whether you are reading stored application state, or generating formatted output (e.g., writing PDF files). The challenge is to find a storage system that is as scalable and secure as Google App Engine itself. Fortunately, we have exactly this in Google Cloud Storage (GCS).
The first step in setting up Google Cloud Storage is to create a bucket:
With the PHP runtime, we’ve implemented native support for GCS. In particular, we’ve made it possible for PHP’s native filesystem functions to read and write to a GCS bucket.
This code writes all prime numbers less than 2000 into a file on GCS:
<?phpThe same fopen() and fwrite() commands are used just as if you were writing to a local file. The difference is we’ve specified a Google Cloud Storage URL instead of a local filepath.
$handle = fopen(gs://hello-php-gae-files/prime_numbers.txt,w);
fwrite($handle, "2");
for($i = 3; $i <= 2000; $i = $i + 2) {
$j = 2;
while($i % $j != 0) {
if($j > sqrt($i)) {
fwrite($handle, ", ".$i);
break;
}
$j++;
}
}
fclose($handle);
And this code reads the same file back into memory and pulls out the 100th prime number, using file_get_contents():
<?php
$primes = explode(",",
file_get_contents(gs://hello-php-gae-files/prime_numbers.txt)
);
if(isset($primes[100]))
echo "The 100th prime number is ".$primes[100];
And more features supported in PHP
Many of our most popular App Engine APIs are now supported in PHP, including our zero-configuration Memcache, Task Queues for asynchronous processing, Users API, Mail API and more. The standard features you’d expect from App Engine, including SSL support, Page Speed Service, versioning and traffic splitting are all available as well.
Open today in Limited Preview
Today we’re making App Engine for PHP available in Limited Preview. Read more about the runtime in our online documentation, download an early developer SDK, and sign up to deploy applications at https://cloud.google.com/appengine/php.
- Posted by Andrew Jessup, Product Manager
0 comments:
Post a Comment