こんにちは。サイオステクノロジー技術部の武井です。
Azure App Service + CakePHP + Visual Studio Onlineによって、超高速にWebアプリケーション開発することができます。今回はこちらについて色々書きたいと思います。
Azure App Service、CakePHPとは
Azure App Serviceとは、アプリケーションを動作するためのPaaS環境です。アプリケーションをgitやOneDirveからデプロイするだけで、簡単にアプリケーションが動作します。パッチ当てなどの面倒なメンテナンスは不要です。
CakePHPとは、PHPのフレームワークで、データベースのスキーマをもとに、追加・検索・編集・削除を行うためのコードを自動生成することが特徴です。
通常であれば、アプリケーションの開発には以下のステップが必要です。
※基本設計や詳細設計は終了していると仮定します。
- サーバー構築
- データベース構築
- スキーマ作成
- フレームワークのインストール・設定
- コーディング
Azureならば、これらの全ての工程を全自動化することができます。
その効果を実感頂くために、今回、以下のアプリケーションをAzureで作成してみます。
今回作成するアプリケーション
- 掲示板の機能を持つ
- 入力項目はタイトルと本文とする
- 投稿の追加・一覧表示・編集・削除(CRUD)ができる
オンプレミスの環境であれば、通常は1ヶ月程度かかるところを、30分で構築します。
構築手順
App Service作成
1.以下のURLのAzureポータルにアクセスします。
2.画面左部のメニューから「参照」→「Marketplace」の順にクリックします。
3.検索用のテキストボックスに「cakephp」と入力してエンターを押します。
4.「CakePHP」をクリックします。
5.「作成」をクリックします。
6.アプリ名に任意の値(Azure上で一意である必要があります)、リソースグループに任意の値を入力します。指定したリソースグループ配下にMySQLなど全てのリソースが作成されます。「法律条項(ClearDB)」をクリックして下さい。
7.「OK」をクリックして下さい。
8.「同意済み」になったことを確認して、「作成」をクリックして下さい。
9.左部メニューの「App Service」をクリックして、先ほど作成したApp Serviceが表示されることを確認します。
10.Visual Studio Onlineを使えるようにします。先ほど表示されたApp Serviceを右クリックして「ツール」をクリックして下さい。
11.「Visual Studio Online」をクリックして、「オン」をクリックして下さい。これでVisual Studio Onlineが使えるようになります。
12.「移動」をクリックして下さい。
13.Visual Studio Onlineが起動します。CakePHPでコードを生成するためには、まず、テーブルを作成する必要があります。そのためにMySQLへの接続情報を取得します。「WWWROOT」→「app」→「Config」の順にクリックして、「database.php」を開いて下さい。ソースコードの以下の行の部分にMySQLの接続情報が書いてあります。それをメモして下さい。
CakePHPの設定
14.先ほどメモしたMySQLへの接続情報をもとに、MySQLへ接続をして、以下のSQL文を実行することにより、テーブルを作成して下さい。このテーブルは、今回作成する掲示板アプリケーションの投稿情報を格納するテーブルになります。
CREATE TABLE posts ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, title VARCHAR(50), body TEXT, created DATETIME DEFAULT NULL, modified DATETIME DEFAULT NULL );
15.CakePHPはPHP用の単体テストツール「PHPUnit」を利用することを前提としております。PHP用のパッケージ管理ツール「Compser」を使ってPHPUnitをインストールします。まず、Visual Studio Onlineの下図赤枠のアイコンをクリックして、コンソールを開いて下さい。
16.Composerをインストールします。以下のコマンドを実行して下さい。
cd app/Vendor curl https://getcomposer.org/installer | php
17.PHPUnitをインストールします。以下のコマンドを実行して下さい。
php composer.phar require phpunit/phpunit=3.7.*
18.CakePHP で PHPUnit を組み込むには、上記コマンドで作成された vendor/autoload.php (つまり、今回の場合、app/Vendor/vendor/autoload.php) を CakePHP に読み込ませます。このため、CakePHP の app/Config/core.php に以下の 1 行を追記してください。
require_once dirname(__DIR__) . '\Vendor\vendor\autoload.php';
19.CakePHPでアプリケーション実行するために必要な「Model」「Controller」」「View」のクラスを作成します。コンソールで以下のコマンドを実行して下さい。
cd / lib/Cake/Console/cake.bat bake all Post
20.これで掲示板アプリケーションを動作するためのソースコードが全て自動生成されました。以下のURLにアクセスして下さい。
https://cakephptestapp.azurewebsites.net/Posts
動作確認
21.以下の画面が表示されます。掲示板に投稿した記事の一覧画面です。「New Post」をクリックすると、新規投稿画面が表示されます。その他にも編集・削除機能もあります。
最後に
いかがでしたでしょうか?Azureを使えば、驚くほど短時間でアプリケーションを開発できることを実感頂けたと思います。ぜひともアプリケーション開発にApp Serviceをご利用下さい。