こちらのページでも紹介していますが、Twilioを使ったアプリケーション(Webクライアント+コールフロー)を作成しました。
以下の本を読みまして、PHPマイクロフレームワークSlim、テンプレートエンジンTwig、ORマッパーilluminate/Eloquentを使って開発しています。入力値検証用にRespect/Validationも試用しています。
あとはフロントエンドにJQueryとBootstrap/Bootswatchを使っています。もちろん、Twilio-phpも使っています。
フォルダ構造は以下の通りとしました。詳細は別途。ルートは/var/www/html/runa-cca/というフォルダとします。
/var/www/html/runa-cca/ |-composer.json ... Composer定義ファイル |-composer.lock ... Composerバージョンロックファイル |-create_table_for_Runa-CCA.sql ...テーブル定義・初期データ投入SQLファイル | |-htdocs ... 公開用ディレクトリ | |-vendor ... 外部のライブラリ | |-bootstrap ... bootstrap | |-lib ... 作成したクラスライブラリ | |-Base ... 設定クラス置き場 | | | |-Controller ... コントローラクラス置き場 | | |-CallFlow ... コールフロー毎のコントローラクラス置き場 | | | |-Model ... モデルクラス置き場 | | |-CallFlow ... コールフロー毎のモデルクラス置き場 | | | |-Model ... ビュークラス置き場 | |-templates ... 作成したテンプレートファイル | |-vendor ... ライブラリ(Composerでインストール)
まずは環境設定です。
そもそもの環境ですが、Macbook Pro Retina ME865J/AでMAMPを動かしています。バージョンは3.0.3を使いました。なので、Apacheは2.2.26、PHPは5.5.10、MySQLは5.5.34になります。
その上で、PHPのパッケージマネージャであるComposerを使って、必要なライブラリをインストールします。
Composerの定義ファイルcomposer.jsonは以下の通り。
{
"require": {
"slim/slim" : "2.*",
"slim/views" : "0.1.*",
"slim/extras" : "2.0.*",
"twig/twig" : "1.*",
"illuminate/database" : "4.0.*",
"Respect/Validation" : "0.5.*",
"twilio/sdk": "dev-master"
},
"autoload": {
"psr-0": {"": "lib/"}
}
}
参照書籍の記載の通り、以下のようにしてComposerをダウンロードします。
$ cd /var/www/html/runa-cca/
$ php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
#!/usr/bin/env php
All settings correct for using Composer
Downloading...
Composer successfully installed to: /var/www/html/runa-cca/composer.phar
Use it: php composer.phar
composer.jsonをアップロードしておきます。Runa-CCAをディレクトリごとアップしておけばよいかと。
で、以下のコマンドを実行します。
composer.lockがある場合は、引数をinstallにすると、lockの内容を再現するようにインストールされます。
$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing respect/validation (0.5.0)
Downloading: 100%
- Installing slim/slim (2.4.3)
Downloading: 100%
- Installing slim/views (0.1.2)
Downloading: 100%
- Installing slim/extras (2.0.3)
Downloading: 100%
- Installing twig/twig (v1.15.1)
Downloading: 100%
- Installing nesbot/carbon (1.8.0)
Downloading: 100%
- Installing illuminate/support (v4.0.10)
Downloading: 100%
- Installing illuminate/container (v4.0.10)
Downloading: 100%
- Installing illuminate/events (v4.0.10)
Downloading: 100%
- Installing illuminate/database (v4.0.10)
Downloading: 100%
slim/slim suggests installing ext-mcrypt (Required for HTTP cookie encryption)
slim/views suggests installing smarty/smarty (Smarty templating system)
Writing lock file
Generating autoload files
#twilio/sdkは省略
これで、ライブラリがvendor配下にダウンロードされます。
続きはまた別途。
