Phalcon(php)
うわさの爆速PHPFramework, Phalconを試してみる
環境
- os : ubuntu-13.04-server (virtualBox上に構築)
- xamp : ubuntuインストール時に選択
本体をインストール
公式のとおり。
http://docs.phalconphp.com/en/latest/reference/install.html#linux-solaris-mac
$ sudo apt-get install git $ sudo apt-get install git-core gcc autoconf $ sudo apt-get install php5-dev php5-mysql $ git clone git://github.com/phalcon/cphalcon.git $ cd cphalcon/build $ sudo ./install $ vi /etc/php5/apache2/php.ini #最終行に追加 extension=phalcon.so $ vi /etc/php5/cli/php.ini #最終行に追加。phalcon developer toolsもいれるため。 extension=phalcon.so
Phalcon Developer Toolsをインストール
scaffoldとかなんちゃらとかが可能らしい、developer toolsも入れてみる。
こちらも公式のとおり
http://docs.phalconphp.com/en/latest/reference/linuxtools.html
$ git clone git://github.com/phalcon/phalcon-devtools.git $ cd phalcon-devtools/ $ sudo . ./phalcon.sh #確認 $ phalcon commands Phalcon DevTools (1.2.3) 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
Phalcon Developer Toolsを使って遊んでみる
#webtoolsありで、つくってみる。 $ phalcon project test --enable-webtools Phalcon DevTools (1.2.3) Success: Controller "index" was successfully created. Success: Project "test" was successfully created.
アクセスしてみると、見られないorz.

#適当にパーミッションを変更 $ chmod -R 777 test

でた。
webtoolsもでた。

scaffoldは、dbにテーブルがないと何も出ない。(デフォでlocalのtestスキーマをrootユーザでみにいく。)

適当にテーブル追加
CREATE TABLE `test`.`users` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(45) NULL, `address` VARCHAR(200) NULL, `availability` TINYINT NULL, PRIMARY KEY (`id`));
更新してみると

でた。
Generateを選択してみると、Success: Model "users" was successfully created.と表示されたので、きっとなにかが作られた。
適当にアドレスを叩いてみると、

でた!
CRUDなどを何となく試してみる。
create -> save : 33[ms]

search : 26[ms]

edit -> save : 29[ms]

cliant <-> wifiルータ <-> web&dbサーバ の経路でこの位の速度。早い気がする。
fuelでもやってみた。
fuelPHPでも同じ環境でscaffoldしてみた。
#同サーバ上でscaffold $ oil create fuel_test $ cd fuel_test $ php oil r fromdb:scaffold users
fuel-create -> save : 373[ms]

fuel-view : 90[ms]

fuel-edit -> save : 348[ms]

同じ環境なのに、ぜんぜん違う。fuelのorm遅いし、こんなもんですかね。
まとめ
- 導入は楽。
- scaffoldとかも普通
- fuelPHPのscaffoldのデフォより、体感でわかるくらい早い。
そのうち、JMeterとかつかって比較したい。