PHP'yi kullanmaya başlama

Bu eğitici, Google Cloud'a başvururken temel uygulama geliştirme kavramlarını öğrenmek isteyen mühendisler ve web geliştiricileri gibi, bulut ortamında uygulama derlemeye yeni başlayan kişiler için hazırlanmıştır.

Hedefler

Uygulamalarınızı derleme konulu dile özgü diğer eğiticiler için aşağıdaki kılavuzlara bakın:

Maliyetler

This tutorial uses the following billable components of Google Cloud:

The tutorial is designed to keep your resource usage within the limits of Google Cloud's Always Free tier. To generate a cost estimate based on your projected usage, use the pricing calculator. New Google Cloud users might be eligible for a free trial.

When you finish this tutorial, you can avoid continued billing by deleting the resources you created. For more information, see Cleaning up.

Başlamadan önce

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud Console, on the project selector page, select or create a Google Cloud project.

    Go to the project selector page

  3. Projeniz için faturalandırmanın etkinleştirildiğinden emin olun.

    Faturalandırmayı etkinleştirmeyi öğren

  4. Yerel modda bir Firestore veritabanı oluşturmak için aşağıdaki adımları tamamlayın:
    1. Cloud Console'da Firestore görüntüleyici sayfasına gidin.
      Firestore görüntüleyici sayfasına git
    2. Firestore modu seçin ekranında, Yerel Modu Seç'i tıklayın.
    3. Firestore veritabanınız için bir konum seçin. Bu konum ayarı, Cloud projeniz için varsayılan Google Cloud kaynak konumudur. Bu konum, Cloud projenizde konum ayarı gerektiren Google Cloud hizmetleri için, özellikle de varsayılan Cloud Storage paketiniz ve App Engine uygulamanız için kullanılır.
    4. Veritabanı Oluştur'u tıklayın.
  5. Enable the App Engine Admin, Cloud Storage, Cloud Logging, and Error Reporting APIs.

    Enable the APIs

  6. Cloud Shell'de uygulamanın kaynak kodunu açın.
    Cloud Shell'e git

    Cloud Shell, Google Cloud kaynaklarınız için doğrudan tarayıcı üzerinden komut satırı erişimi sağlar.

  7. Örnek kodu indirmek ve uygulama dizinine geçmek için Devam'ı tıklayın.
  8. Cloud Shell'de, yeni Google Cloud projenizi kullanmak için gcloud aracını yapılandırın:

    # Configure gcloud for your project
    gcloud config set project PROJECT_ID
    

    PROJECT_ID kısmını Cloud Console kullanarak oluşturduğunuz Google Cloud projesinin kimliğiyle değiştirin.

    gcloud komut satırı aracı, Google Cloud kaynaklarınızla komut satırından etkileşime geçmenizin temel yoludur. Bu eğiticide, uygulamanızı dağıtmak ve izlemek için gcloud aracı kullanılır.

Uygulamanızı çalıştırma

  1. Uygulama bağımlılarını composer ile yükleyin:

    composer install
    

  2. PHP yerleşik web sunucusunu çalıştırın:
    GOOGLE_CLOUD_PROJECT=PROJECT_ID php -S localhost:8080
    
    PROJECT_ID kısmını oluşturduğunuz Google Cloud projesinin kimliğiyle değiştirin.
  3. Cloud Shell'de Web önizlemesi'ni tıklayın ve 8080 bağlantı noktasında önizle'yi seçin. Bu işlem, çalışan uygulamanızın yer aldığı yeni bir pencere açar.

Uygulamanızı App Engine'e dağıtma

Google Cloud, kodunuzu çalıştırmak için çeşitli seçenekler sunar. Bu örnekte, Google Cloud'a ölçeklendirilebilir bir uygulama dağıtmak için App Engine'i kullanıyorsunuz. Sıfır yapılandırma dağıtımı ve sıfır sunucu yönetimi ile App Engine yalnızca kod yazmaya odaklanmanıza imkan tanır. App Engine ayrıca trafikteki ani artışları desteklemek için otomatik ölçeklendirme yapar.

app.yaml dosyası, App Engine'e dağıtım yapmak için ana yapılandırma dosyanızdır:

runtime: php73

env_variables:
  APP_DEBUG: true
  LOG_CHANNEL: stderr
  APP_STORAGE: /tmp
  1. Terminal pencerenizde, gcloud aracını kullanarak uygulamayı App Engine'e dağıtın:

    # on the command-line
    gcloud app deploy
    

  2. Web tarayıcınızda aşağıdaki URL'yi girin:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Aşağıdakini değiştirin:

    Bookshelf uygulaması ana sayfası

App Engine'e dağıtımla ilgili daha fazla bilgi için PHP 7 çalışma zamanı ortamı'na bakın.

Verilerinizi Firestore ile kalıcı hale getirme

Örnek yeniden başlatıldığında bilgiler kaybolacağından App Engine örneklerinizde bilgi depolayamazsınız ve yeni örnekler oluşturulduğunda herhangi bir bilgi bulunmaz. Bunun yerine, tüm örneklerinizin okuma ve yazma işlemleri yapabileceği bir veritabanı kullanılır.

Google Cloud, verilerinizi depolamak için çeşitli seçenekler sunar. Bu örnekte, her kitaba ait verileri saklamak için Firestore kullanılır. Firestore, verileri saklamanıza ve sorgulamanıza imkan tanıyan, tümüyle yönetilen, sunucusuz bir NoSQL belge veritabanıdır. Firestore uygulamanızın ihtiyaçlarını karşılamak için otomatik ölçeklendirme yapar ve kullanmadığınız zamanlarda sıfıra ölçeklenir. İlk kitabınızı şimdi ekleyin.

  1. Web tarayıcınızda aşağıdaki URL'yi girin:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Aşağıdakini değiştirin:

  2. Dağıtılmış uygulamanızda bir kitap oluşturmak için Kitap ekle'yi tıklayın.

    Bookshelf uygulamasına kitap ekleme
  3. Başlık alanına Moby Dick girin.
  4. Yazar alanına Herman Melville girin.
  5. Kaydet'i tıklayın. Bookshelf uygulamanıza bir kayıt eklenir.

    Moby Dick Bookshelf uygulaması girişi
  6. Cloud Console'da, Firestore sayfasını yenilemek için Yenile'yi tıklayın. Veriler Firestore'da görünür. Bookshelf uygulaması, her bir kitabı benzersiz kimliğe sahip Firestore belgesi olarak depolar ve tüm bu belgeler bir Firestore koleksiyonunda saklanır. Bu eğiticide koleksiyondan "kitaplar" olarak bahsedilir. Firestore belgelerine örnek.

Firestore, kitapları Firestore İstemci Kitaplığı'nı kullanarak depolar. Aşağıda, Firestore belgesi almayı gösteren bir örnek verilmiştir:

// Use the client library to call Firestore
use Google\Cloud\Firestore\FirestoreClient;

$firestore = new FirestoreClient([
    'projectId' => $projectId,
]);
$collection =  $firestore->collection($collectionName);
$bookRef = $collection->document($bookId);
$snapshot = $bookRef->snapshot();

Firestore kullanımı ile ilgili daha fazla bilgi için Firestore'a veri ekleme bölümüne bakın.

Dosya yüklemelerini Cloud Storage'da saklama

Bir kitap eklediğinize göre şimdi sıra kitap kapağı resmi eklemekte. Örneklerinizde dosya depolayamazsınız. Resim dosyaları için veritabanı doğru tercih değildir. Bunun yerine Cloud Storage'ı kullanırsınız.

Cloud Storage, Google Cloud için birincil blob deposudur. Google Cloud genelinde paylaşmak istediğiniz uygulama öğelerini barındırmak için Cloud Storage'ı kullanabilirsiniz. Cloud Storage'ı kullanmak için verilerinizin saklanacağı temel container olacak bir Cloud Storage paketi oluşturmanız gerekir.

  1. Cloud Console'da Cloud Storage Tarayıcısı sayfasına gidin.

    Cloud Storage Tarayıcısı sayfasına gidin

  2. Paket oluştur'u tıklayın.
  3. Paket oluştur penceresinde, Google Cloud projenizin kimliğine _bucket dizesini ekleyerek paketiniz için bir ad girin. Ad, YOUR_PROJECT_ID_bucket şeklinde görünmelidir. Bu ad, paket adı gereksinimlerine tabidir. Diğer tüm alanlar, varsayılan değerleriyle kalabilir.
  4. Oluştur'u tıklayın.
  5. Paketiniz oluşturulduktan sonra nesnelerin kullanıcılar tarafından görünecek şekilde herkesin erişimine açılması gerekir. Nesnelerinizi herkesin erişimine açmak için Verileri Herkese Açık Hale Getirme bölümünü inceleyin.
  6. Kitabı düzenle'yi tıklayın ve kitabınızın kapağı olarak yüklenecek bir resim seçin. Örneğin, bu herkese açık resmi kullanabilirsiniz:
    Moby Dick kitap kapağı
  7. Kaydet'i tıklayın. Ana sayfaya yönlendirilirsiniz. Burada Bookshelf uygulamanızda bir kayıt görünür.
    Moby Dick Bookshelf uygulaması girişi

Bookshelf uygulaması, yüklenen dosyaları Cloud Storage İstemci Kitaplığı'nı kullanarak Cloud Storage'a gönderir.

// Use the client library to call Cloud Storage
use Google\Cloud\Storage\StorageClient;

$storage = new StorageClient([
    'projectId' => $projectId,
]);
$bucketId = $projectId . '_bucket';
$gcsBucket = $storage->bucket($bucketId);

Cloud Storage kullanımıyla ilgili daha fazla bilgi için "nasıl yapılır" kılavuzları listesine bakın.

Google Cloud'un işlem paketini kullanarak uygulamanızı izleme

Uygulamanızı dağıttınız ve kitaplar oluşturup değiştirdiniz. Uygulama Performansı Yönetimini kullanarak bu etkinlikleri kullanıcılarınız için izleyebilirsiniz.

Cloud Logging ile günlük izleme

Cloud Console

  1. Tarayıcınızdan uygulamanızın /logs URL'sine gidin:

    https://PROJECT_ID.REGION_ID.r.appspot.com/logs

    Bu işlem, Cloud Logging'e özel bir giriş gönderir. Girişin günlük kaydı önem düzeyi NOTICE şeklindedir ve şu mesajı içerir: "Özel bir günlük girişini tetiklediniz. Tebrikler!"

  2. Günlük Görüntüleyici'ye gidin. Burada uygulamanızı gerçek zamanlı olarak izleyebilirsiniz. Bir sorun olduğunda ilk bakmanız gereken yerlerden biri burasıdır.
    Cloud Logging Günlük Görüntüleyici
  3. Aşağı açılır kaynak listesinde GAE Application öğesini seçin.
  4. Aşağı açılır günlükler listesinde Tüm günlükler öğesini seçin.

    Özel günlük girişiniz için bir satır vardır.

    Günlük Görüntüleyici Girişi

gcloud

  1. Terminal pencerenizde, yeni günlük girişlerini bekleyerek uygulama günlüklerinizi izlemek için gcloud komut satırı aracını kullanın:

    gcloud app logs tail

  2. Tarayıcınızdan uygulamanızın /logs URL'sine gidin:

    https://PROJECT_ID.REGION_ID.r.appspot.com/logs

    Bu işlem, Cloud Logging'e özel bir giriş gönderir. Girişin günlük kaydı önem düzeyi NOTICE şeklindedir ve şu mesajı içerir: "Özel bir günlük girişini tetiklediniz. Tebrikler!"

    gcloud komutunun çıktısı, yeni günlük girişini görüntüler:

    Waiting for new log entries...
    2019-03-27 22:17:01 default[20190327t151430]  "Hey, you triggered a custom log entry. Good job!"
    

Error Reporting ile hata izleme

  1. Cloud Console'da Error Reporting sayfasına gidin.
    Error Reporting sayfasına git
    Error Reporting, uygulamanızdaki hataları ve istisnaları vurgulayarak bunlarla ilgili uyarılar belirlemenizi sağlar.
  2. Tarayıcınızdan uygulamanızın /errors URL'sine gidin.
    https://PROJECT_ID.REGION_ID.r.appspot.com/errors

    Bu işlemle yeni bir test istisnası oluşturulur ve istisna Google Cloud işlem paketine gönderilir.

  3. Cloud Console'da Error Reporting sayfasına dönün. Çok geçmeden yeni hata görünür olacaktır. Sayfayı manuel olarak yenilemeniz gerekmemesi için Otomatik Yeniden Yükle'yi tıklayın.

    Error Reporting'den hata mesajı.

Temizleme

Bu eğiticide kullanılan kaynaklar için Google Cloud Platform hesabınızın ücretlendirilmesini istemiyorsanız şunları yapın:

Projeyi silme

  1. In the Cloud Console, go to the Manage resources page.

    Go to the Manage resources page

  2. In the project list, select the project that you want to delete and then click Delete .
  3. In the dialog, type the project ID and then click Shut down to delete the project.

Sonraki adım