Sqale で Zend Framework 2 を利用する

このマニュアルは、 Sqale で Zend Framework 2 のスケルトンプロジェクトである ZendSkeletonApplication を利用する方法を説明します。

Zend Framework 2 公式サイト

このマニュアルを進めるには、Composer でライブラリをインストールするので、PHPの実行環境が必要です。

Composer は、PHPの依存管理ツールです。プロジェクト内の依存関係を composer.json ファイルに書いてシンプルなコマンドを使えば、 Composer が自動的にライブラリファイルをダウンロードし、 autoload の設定もしてくれます。

以下の順序で説明をします。

  • 1. GitHub から ZendSkeltonApplication リポジトリを Clone
  • 2. Composer でライブラリをインストール
  • 3. データベース設定ファイルを作成
  • 4. データベース設定ファイルと、composer でインストールしたライブラリを、Git 管理の対象にする
  • 5. Sqale にデプロイ
  • 6. ブラウザで確認する

1. GitHub から ZendSkeletonApplication リポジトリを Clone

GitHub の ZendSkeletonApplication リポジトリからファイルを Clone でダウンロードします。

$ git clone https://github.com/zendframework/ZendSkeletonApplication.git
$ cd ZendSkeletonApplication  # 以降 ZendSkeletonApplication フォルダで作業します

2. Composer でライブラリをインストール

Composer を使い、ライブラリをインストールします。

$ php composer.phar self-update
Updating to version c54de4b72fccf355dd3788bb19bf4e623ab5f81d.
    Downloading: 100%

$ php composer.phar install
Loading composer repositories with package information
Installing dependencies
  - Installing zendframework/zendframework (2.1.3)
    Loading from cache

zendframework/zendframework suggests installing doctrine/common (Doctrine\Common >=2.1 for annotation features)
zendframework/zendframework suggests installing ext-intl (ext/intl for i18n features)
zendframework/zendframework suggests installing pecl-weakref (Implementation of weak references for Zend\Stdlib\CallbackHandler)
zendframework/zendframework suggests installing zendframework/zendpdf (ZendPdf for creating PDF representations of barcodes)
zendframework/zendframework suggests installing zendframework/zendservice-recaptcha (ZendService\ReCaptcha for rendering ReCaptchas in Zend\Captcha and/or Zend\Form)
Writing lock file
Generating autoload files

3. データベース設定ファイルを作成

Sqale のアプリケーション詳細ページより、【データベース接続情報】をクリックします。 データベース接続情報が表示されますので、【User】、【Password】、【Name】、【Host】をメモします。

Zend Framework 2 データベース接続情報画面

config/autoload/global.php をエディタで編集します。さきほどメモした【Name】と【Host】を使います。

<?php
return array(
    'db' => array(
        'driver'         => 'Pdo',
        'dsn'            => 'mysql:dbname=【Name】;host=【Host】',
        'driver_options' => array(
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
        ),
    ),
    'service_manager' => array(
        'factories' => array(
            'Zend\Db\Adapter\Adapter'
                    => 'Zend\Db\Adapter\AdapterServiceFactory',
        ),
    ),
);

config/autoload/local.php.distconfig/autoload/local.php にリネームします。

$ git mv config/autoload/local.php.dist config/autoload/local.php

config/autoload/local.php をエディタで編集します。さきほどメモした【User】と【Password】を使います。

<?php
return array(
    'db' => array(
        'username' => '【User】',
        'password' => '【Password】',
    ),
);

4. データベース設定ファイルと、composer でインストールしたライブラリを、Git 管理の対象にする

データベースの設定ファイルと Composer でインストールしたライブラリファイルは、デフォルトで Git 管理の対象にならないよう、.gitignore に無視する設定が記述されているのでコメントにして無視しないようにします。

config/autoload/.gitignore をエディタで編集します。

# データベースの設定を Push したいので無視しない
# local.php
# *.local.php

vendor/.gitignore をエディタで編集します。

!.gitignore
# composer でインストールしたライブラリを Push したいので無視しない
#.composer
#composer
#zendframework
#autoload.php

5. Sqale にデプロイ

まず、Sqale でアプリケーションを作成します。

Sqale のダッシュボードにログインし、【新しいアプリケーションを作成】からアプリケーション名を入力し、アプリケーションタイプに【PHP】を選択し【アプリケーションを作成】ボタンから作成します。

次に、Git を使ってデプロイします。(あらかじめ、公開鍵の登録が必要です。)

Sqale のアカウント設定ページでデプロイ設定が、【Git】 になっていることを確認してください。

Zend Framework 2 デプロイタイプで Git を選択している画面

Git になっていることを確認したら、以下のコマンドで Push 先として Sqale を登録します。

$ git remote add sqale ssh://sqale@gateway.sqale.jp:2222/【ユーザー名】/【アプリケーション名】.git

リモートのアドレスは、アプリケーション詳細ページで確認することができます。

Zend Framework 2 Git リモートアドレス画面

リモートを追加したら、 Push して Sqale にデプロイします。

$ git add .
$ git commit -m 'Add database config'
$ git push -f sqale master

6. ブラウザで確認する

アクセスして Welcome to Zend Framework 2 と表示されていれば、デプロイ完了です。

Zend Framwork 2 Sekeleton Application Welcome 画面

以下の URL でマニュアル通りに作成したアプリケーションを見ることができます。

http://zend-skeleton-app-sqale01.sqale.jp/