Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Search | Email

第 9 章 Phalcon - High performance PHP framework

目錄

9.1. 安裝配置 Phalcon
9.1.1. Ubuntu
9.1.2. 編譯安裝
9.1.3. Nginx 配置
9.1.4. Phalcon Developer Tools
9.2. DevTools
9.2.1. 創建項目
9.2.2. 創建控製器
9.3. dispatcher
9.4. cache
9.4.1. Redis 緩存
9.4.2. 多種緩存混合使用

http://phalconphp.com/

與其他框架實現方法不同,Phalcon直接採用C代碼編寫,編譯成PHP共享庫載入。所以速度是最快的。

9.1. 安裝配置 Phalcon

9.1.1. Ubuntu

sudo apt-add-repository ppa:phalcon/stable
sudo apt-get update
sudo apt-get install php5-phalcon
			

9.1.2. 編譯安裝

			
cd /usr/local/src/

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

cat > /srv/php/etc/conf.d/phalcon.ini <<EOF
extension=phalcon.so
EOF
			
			

確認安裝是否成功

# php -m | grep phalcon
phalcon
			

9.1.3. Nginx 配置

			
server {
    listen       80;
    server_name  localhost;

    charset utf-8;

    access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /www/phalcon/public;
        index  index.html index.php;
    		if ($request_filename !~ (js|css|img|/images|robots/.txt|index/.php) ) {
        		rewrite ^/(.*)$ /index.php?_url=/$1 last;
        		break;
    		}
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/local/www/nginx-dist;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ /index.php {
        root           /www/phalcon/public;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/phalcon/public$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny  all;
    }
}
			
			

注意兩點:

一是rewrite設置需要 $request_filename 過濾檔案與目錄

二是fastcgi配置location ~ /index.php 這樣的設置是為了".php"只能運行 index.php,其他目錄下的.php檔案無法運行,這樣解決的注入與非法腳本運行。

9.1.4. Phalcon Developer Tools

# pear channel-discover pear.phalconphp.com
# pear install phalcon/Devtools
			

運行 phalcon 測試是否正確安裝

# phalcon

Phalcon DevTools (2.0.7)

Help:
  Lists the commands availables in Phalcon devtools

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