Phalcon环境搭建与项目开发

简介

Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 5 框架。 开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 PHP 类的方式暴露出来,可以直接使用。 Phalcon 也是松耦合的,可以根据项目的需要任意使用其他对象。

官网:https://phalconphp.com/

源码: https://github.com/phalcon/cphalcon/

编译与安装

我这里使用的是docker来搭建运行环境,Dockerfile文件如下:

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 段的代码。

在编译Phalcon时会出现长时间等待,我是在VM上编译1G内存需要等待将近十多分钟。

如果是Windows系统请去 http://phalconphp.com/en/download/windows 下载对应版本的dll。

安装完成后打印phpinfo信息会看到如下信息:

说明安装成功。

安装Phalcon Developer Tools

Phalcon提供的这个开发工具主要是用来辅助开发,比如生成一些程序的基本框架,生成控制器模型等。使用这个工具我们只需要一个简单的命令即可生成应用的基本框架。

我是用的是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工具的目录入下:

确定后就会有自动提示功能。

Nginx配置

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

转载于:https://my.oschina.net/idufei/blog/742868

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值