爆速フレームワークPhalconをMAMPに入れる方法


昨日、以下の記事がはてぶに載ってたので、さっそくMAMPに入れてみました。
http://www.rodeo.jp.net/tech/phalcon-php-framework/
PHPのエクステンションとして実装されているとの事で、フルPHPの他のフレームワークよりは早いでしょうね。ただ、ブコメでもあった通り、バグがあった場合の内部の修正が難しいのが難点でしょうか。

ま、ともあれ、まずは使って判断でしょうか。
という事でさっそくインストールと、チュートリアルを動かしてみます。

ダウンロード&インストール

$ git clone git://github.com/phalcon/cphalcon.git
$ cd cphalcon/build
$ ./install

意図的に最後をsudoにしていないので、最後に以下のエラーになるはずです。これは最初から入っているPHPのextensionディレクトリに入れないため(MAMPPHPに入れるため)です。

Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20090626/
cp: /usr/lib/php/extensions/no-debug-non-zts-20090626/#INST@48693#: Permission denied
make: *** [install-modules] Error 1

cphalcon/build/64bits/modulesにphalcon.soが出来ているので、これをMAMPPHPのextensionが置いてあるディレクトリにコピーします。設置場所は以下のコマンドで確認できます。バージョン番号は自分のものに置き換えてください。

$ /Applications/MAMP/bin/php/php5.3.6/bin/php -i | grep extension_dir
extension_dir => /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/ => /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/
sqlite3.extension_dir => no value => no value

$ cp build/64bits/modules/phalcon.so /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626

$ /Applications/MAMP/bin/php/php5.3.6/bin/php -i | grep phalcon
phalcon

入ったようです。以下はphpinfoでの表示です。

ではチュートリアルを動かす準備です。

チュートリアルのダウンロード

チュートリアル(英語)
適当なディレクトリにcloneします。私は~/Site下に起きました。

$ git clone https://github.com/phalcon/tutorial.git

Hostsの編集

<VirtualHost *:80>
    ServerAdmin phalcon@localhost
    DocumentRoot "/Users/*******/Sites/tutorial/"
    ServerName phalcon
    ErrorLog "logs/phalcon-error_log"
    CustomLog "logs/phalcon-access_log" common
</VirtualHost>

DBとテーブルを作成

create database test_db;
use test_db;
CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(70) NOT NULL,
  `email` varchar(70) NOT NULL,
  PRIMARY KEY (`id`)
);

MySQLの接続情報を修正

tutorial/public/index.phpを修正します。

<?php

    //Set the database service
    $di->set('db', function(){
        return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
            "host" => "localhost",
            "username" => "root",
            "password" => "root",
            "dbname" => "test_db"
        ));
    });

あとはHostsで設定したhttp://phalconにアクセスするだけです。


使ってみた後の事はまた別記事にて書きたいと思います。


[追記 2013/07/28]
続き書きました。
フレームワークPhalconのViewにVoltを使ってみる - ZeBeVogue別館