Phalcon(php)

うわさの爆速PHPFramework, Phalconを試してみる

環境

本体をインストール

公式のとおり。

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.

f:id:azumac:20130923205444p:plain

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

f:id:azumac:20130923205635p:plain

 

でた。

webtoolsもでた。

f:id:azumac:20130923205916p:plain

 

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

f:id:azumac:20130923210246p:plain

 

適当にテーブル追加

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`));

更新してみると

f:id:azumac:20130923211032p:plain

でた。

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

適当にアドレスを叩いてみると、

f:id:azumac:20130923212923p:plain

でた!

 

CRUDなどを何となく試してみる。

create -> save : 33[ms]

f:id:azumac:20130923211937p:plain

search : 26[ms]

f:id:azumac:20130923212049p:plain

edit -> save : 29[ms]

f:id:azumac:20130923212158p:plain

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]

f:id:azumac:20130923215919p:plain

fuel-view : 90[ms]

f:id:azumac:20130923220143p:plain

fuel-edit -> save : 348[ms]

f:id:azumac:20130923220050p:plain

 

同じ環境なのに、ぜんぜん違う。fuelのorm遅いし、こんなもんですかね。

まとめ

  • 導入は楽。
  • scaffoldとかも普通
  • fuelPHPのscaffoldのデフォより、体感でわかるくらい早い。

そのうち、JMeterとかつかって比較したい。