Phalcon 是開源、全功能棧、使用 C 擴展編寫、針對高性能優化的 PHP 5 框架。 開發者不須要學習和使用 C 語言的功能, 由於全部的功能都以 PHP 類的方式暴露出來,能夠直接使用。 Phalcon 也是鬆耦合的,能夠根據項目的須要任意使用其餘對象。php
官網:https://phalconphp.com/css
源碼: https://github.com/phalcon/cphalcon/html
我這裏使用的是docker來搭建運行環境,Dockerfile文件以下:mysql
FROM daocloud.io/library/php:7.0.10-fpm MAINTAINER Minho <longfei6671@163.com> RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ libpcre3-dev \ gcc \ make \ bzip2 \ libbz2-dev \ libmemcached-dev \ git \ && rm -rf /var/lib/apt/lists/* \ && docker-php-ext-install mbstring \ && docker-php-ext-install iconv mcrypt \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install gd \ && docker-php-ext-install mysqli \ && docker-php-ext-install bz2 \ && docker-php-ext-install ctype \ && docker-php-ext-install zip \ && docker-php-ext-install pdo \ && docker-php-ext-install pdo_mysql \ && apt-get -y autoremove \ && apt-get -y autoclean WORKDIR /usr/src/php/ext/ RUN git clone -b php7 https://github.com/php-memcached-dev/php-memcached.git \ && docker-php-ext-configure php-memcached \ && docker-php-ext-install php-memcached \ && rm -rf php-memcached \ && git clone -b php7 https://github.com/phpredis/phpredis.git \ && docker-php-ext-configure phpredis \ && docker-php-ext-install phpredis \ && rm -rf phpredis ENV PHALCON_VERSION=3.0.1 # Compile Phalcon RUN set -xe && \ curl -LO https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.tar.gz && \ tar xzf v${PHALCON_VERSION}.tar.gz && cd cphalcon-${PHALCON_VERSION}/build && ./install && \ echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/phalcon.ini && \ cd ../.. && rm -rf v${PHALCON_VERSION}.tar.gz cphalcon-${PHALCON_VERSION} # Insall Phalcon Devtools, see https://github.com/phalcon/phalcon-devtools/ #curl -LO https://github.com/phalcon/phalcon-devtools/archive/v${PHALCON_VERSION}.tar.gz && \ #tar xzf v${PHALCON_VERSION}.tar.gz && \ #mv phalcon-devtools-${PHALCON_VERSION} /usr/local/phalcon-devtools && \ #ln -s /usr/local/phalcon-devtools/phalcon.php /usr/local/bin/phalcon #Composer RUN curl -sS https://getcomposer.org/installer | php \ && mv composer.phar /usr/local/bin/composer # PHP config ADD conf/php.ini /usr/local/etc/php/php.ini ADD conf/www.conf /usr/local/etc/php-fpm.d/www.conf EXPOSE 9000
若是是普通機器安裝能夠參考 Compile Phalcon 段的代碼。nginx
在編譯Phalcon時會出現長時間等待,我是在VM上編譯1G內存須要等待將近十多分鐘。git
若是是Windows系統請去 http://phalconphp.com/en/download/windows 下載對應版本的dll。github
安裝完成後打印phpinfo信息會看到以下信息:web
說明安裝成功。redis
Phalcon提供的這個開發工具主要是用來輔助開發,好比生成一些程序的基本框架,生成控制器模型等。使用這個工具咱們只須要一個簡單的命令便可生成應用的基本框架。sql
我是用的是composer安裝,在機器的某個目錄添加一個composer.json文件內容以下:
{ "require": { "phalcon/devtools": "dev-master" } }
控制檯切換到該目錄執行:
composer install
執行完成後會在目錄下生成一個vendor目錄,結構以下:
設置環境變量並指向 /vendor/phalcon/devtools 目錄。而後執行 phalcon.bat驗證是否成功。
phalcon項目能夠手動搭建目錄結構,也能夠使用devtools工具自動搭建,devtools工具搭建項目命令以下:
phalcon.bat project demo --enable-webtools
在一個目錄中執行以上方法會自動建立出一個phalcon項目的目錄結構和入口文件。大體以下:
咱們的業務邏輯代碼通常寫到app目錄,public目錄放置的是靜態文件和一個入口文件。
若是使用phpstrom開發,須要包含Exteral Libraries包,設置以下:
在Exteral Libraries上右鍵選擇 Configure PHP Include Paths,而後添加Phalcon Developer Tools工具的目錄入下:
肯定後就會有自動提示功能。
Phalcon是PHP的一個插件,能夠使用任何Web容器來運行,我這裏使用的是Nginx,Nginx配置入下:
server { listen 80; server_name phalcon.demo.com; charset utf-8; #access_log /var/log/nginx/host.access.log main; set $root_path '/mnt/hgfs/cphalcon/public'; root $root_path; try_files $uri $uri/ @rewrite; index index.php index.html; location @rewrite { rewrite ^(.*)$ /index.php?_url=$1; } location ~ \.php$ { fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~* ^/(css|img|js|flv|swf|download)/(.+)$ { root $root_path; } }
更多配置能夠參考官方手冊。
打開網址看到以下界面就表明運行成功:
Phalcon Developer Tools使用:http://blog.csdn.net/qzfzz/article/details/39900663
Phalcon 中文手冊:http://phalcon.ipanta.com/
Volt模板引擎手冊:http://www.myleftstudio.com/reference/volt.html
Dockerfile項目地址: https://github.com/lifei6671/docker-php7-fpm-cphalcon