8月 032013
 

PhalconDevToolsを使おう

こんばんは。ファガイです。
今日は、PhalconDevToolsのインストールをやっていきましょう。

PhalconDevToolsの特徴

  • PhalconCommand機能
    これが全てです。
    PhalconCommandには以下のような物があります。

    • Project生成機能(基本的なプロジェクトベースを提供します。)
    • Controller生成機能
    • Model生成機能、Model_ALL生成機能
    • migration生成機能(ここはまだ調べてませんがFuelと同様なものでしょう)
    • scaffold生成機能
    • WebTools機能(今回はここに重点を置きます。)

PhalconDevToolsの導入

では、導入をして行きましょう。
環境ですが、以前と同様

  • CentOS 6.4
  • Apache 2.2くらい
  • PHP 5.4くらい
  • Mysql 5.5くらい

です。

では、インストールをするためにデータを取ってきましょうか。
私は、~(/root/)にて行いました。

git clone git://github.com/phalcon/phalcon-devtools.git

取ってきたら、移動して、インストールをします。

cd phalcon-devtools
. ./phalcon.sh

以下のような感じに出てればOKなはずです。

Phalcon Developer Tools Installer
Make sure phalcon.sh is in the same dir as phalcon.php and that you are running this with sudo or as root.
Installing Devtools...
Working dir is: /root/phalcon-devtools
Generating symlink...
Done. Devtools installed!

ここでおかしくなった場合はsudo等で行いましょう。あくまで自分はローカル環境として行なっているので通常でrootです。

では、インストールがされたはずなので、コマンド一覧を出してみます。

# phalcon commands

Phalcon DevTools (1.2.1)

Available commands:
  commands (alias of: list, enumerate)
  controller (alias of: create-controller)
  model (alias of: create-model)
  all-models (alias of: create-all-models)
  project (alias of: create-project)
  scaffold
  migration
  webtools

と、こんな感じでコマンド一覧がでてきます。

では移動して使ってみましょう。

# cd /var/www/html
# phalcon create-project test_phalcon

すぐに作成がされるかと思います。
プロジェクトを作成すると以下のような状態になります。

test_phalcon
├── app
│   ├── cache・・・・・・・・・・・・・・・キャッシュフォルダ
│   ├── config・・・・・・・・・・・・・・設定フォルダ
│   ├── controllers・・・・・・・・コントローラ
│   ├── models・・・・・・・・・・・・・・モデル
│   └── views・・・・・・・・・・・・・・・ビュー
├── index.html
└── public
    ├── css
    ├── files
    ├── img
    ├── index.php
    ├── js
    └── temp

プロジェクト自体の初期状態を作ることができました。
なのですが、この状態では肝心のWebToolsが使えません。

で、公式の動画では

# phalcon create-project test_phalcon --enable-webtools

このように最初にprojectを作る際に行っておけばwebtoolsが使えるのですが、先にプロジェクトを作ってしまった俺は・・・・。
っとなったわけで。コマンド見てもよく分からないし、とりあえずがさごそとコマンドを打ちまくった。

そして自分は確認した。

# phalcon webtools enable --directory=ディレクトリのPATH

Phalcon DevTools (1.2.1)


  Success: Webtools successfully enabled  

これをやったらwebtoolsが入った。やったー!
因みに、ディレクトリのパスなんですが、何も指定しない場合はrootになってしまうので自分は絶対パスで指定してます。

アクセス

では、アクセスしてみましょうか。

・・・

Volt directory can't be written

ああ、書き込み制限ね。パーミッションか。どうせcacheとかでしょ。っと思ったので

appディレクトリ内のcacheに対してパーミッションをセット

app]# chmod -R 777 cache

アクセスしてみる。(私は仮想環境でやっていますので、各人変えて下さい)
私の場合はhttp://192.168.111.60/test_phalcon/でアクセスしました。

画像のように、Congratulations!が表示されればOK。

コングラッチュレーション

そして肝心のWebToolsにアクセスしてみる。
先程のアドレスにwebtools.phpを付けるだけでアクセスが出来ます。

で。
アクセス出来た人はlocalhostでやってる方でしょう。
自分みたいにipを切り分けてるとエラーになります。

webtoolエラー

エラーに書いてあるとおり、Controller_Baseの_checkAccessというメソッドが問題になっているよう。
で、それがどこにあるかというと、自分と同じようにしていたならば

以下にあります。

/root/phalcon-devtools/scripts/Phalcon/Web/Tools/controllers

ControllerBase.php(わざと改行させてます)

....
protected function _checkAccess()
{                
  if (isset($_SERVER['REMOTE_ADDR']) &&
   ($_SERVER['REMOTE_ADDR']=='127.0.0.1' ||
    $_SERVER['REMOTE_ADDR'] == '192.168.111.3' ||
      $_SERVER['REMOTE_ADDR'] == '::1')) {
                return false;
        } else {
          throw new Phalcon\Exception('WebTools can only be used on the local machine (Your IP: ' . $_SERVER['REMOTE_ADDR'] . ')');
        }
}
....

とりあえず応急処置と言いますか、こういうのはconfigでwhitelistを作っておくようなものじゃないかと思ってたりしてますが一旦はこのように自身のIPをセットしましょう。

これでOK。再度アクセスします。

以下の様に出てれば大丈夫です。

welcome_webtools

modelに飛べないと思うのですが、modelはapp/config/config.phpの方でDBの設定をしておかないと確認出来ないので注意。

まとめ

今回はdevtoolをインストールし、webtoolsを使用できるようにする所までをチュートリアルっぽくしました。
まとめとしては、

  • 超便利そう
  • phalcon commandはまだ良くわかってない
  • 書くの疲れた・・・。

ではではー。

Pocket

 Posted by at 1:21 AM

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


*