こちらのページでも紹介していますが、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配下にダウンロードされます。
続きはまた別途。