Zephir 安装及使用教程(Docker 及 MAC OS)

widuu 2015-4-20 PHP技术 1,870 0 喜欢 (0)

说实话,我也是今天才知道 Zephir 这个项目。我是今天才发现 Phalcon 框架升级到2.0了,因为要用它开发点东西。才看到人家用 Zephir 重写了。我都不知道我有多落后。

0X01

抽了点时间看了下,然后在 windows 上用 Docker 测试了一下,不错。当然也做了一个 Dockerfile 分享给大家,便于大家开发部署

# zephir lang Dockerfile
FROM ubuntu:14.04
# 签名啦
MAINTAINER widuu "admin@widuu.com"
# 变换阿里云镜像源
RUN  mv /etc/apt/sources.list /etc/apt/sources.list.backup
ADD ./sources.list /etc/apt/sources.list
# 更新镜像源 
RUN apt-get update
# 安装开发环境
RUN apt-get  install gcc make re2c libpcre3 libpcre3-dev php5 php5-dev php5-json -y
# 安装ssh server
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# 安装git
RUN apt-get install git -y
# clone zephir 并安装
RUN cd /root && \
        git clone https://github.com/phalcon/zephir && \
        cd zephir && \
        ./install-json && \
        ./install -c

# 设置root ssh远程登录密码为docker
RUN echo 'root:docker' | chpasswd
EXPOSE 22
EXPOSE 80
EXPOSE 443

# SSH终端服务器作为后台运行
CMD ["/usr/sbin/sshd", "-D"]

在 Docker 中只需要使用 如下命令即可

docker build -t zephir:1.0 ./
docker run -i -p 端口:22 -t zephir:1.0 
ssh root@ip -p 端口  # 账号 root 密码 docker 就可以直接在里边测试开发了。

0X02

在MAC OS 中安装开发环境,本人个人电脑是 MAC ,所以 MAC 必须意淫。

  1. 安装 Xcode 命令行工具
    xcode-select --install
    
  2. 安装 autoconf re2c automake libtool 等依赖,如果你没有安装git 记得安装git。
    brew install autoconf 
    brew install automake
    brew install libtool
    brew install re2c
    
  3. 下载源代码并安装
    git clone https://github.com/phalcon/zephir
    cd zephir/json-c && sh autogen.sh && ./configure && \
    make && make install 
    cd ../
    ./install -c
    

    Ok,这里就安装完毕了,你可以运行 zephir 测试一下。

0X03

我感觉其实 zephir 语法像是 swift 和 php 结合体,其实它做的就是 zep -> C 连接转换器。不说了,写个简单的列子,测试一下试试。

zephir init widuu && cd widuu/widuu && vim service.zep

代码如下:

namespace Widuu;

class Service{

    protected _service;

    public  function _set(string name,object obj) -> int{
        if (typeof obj != "object") {
            throw new \Exception("type error!!");
        }
        let this->_service[name] = obj;
        return 1;
    } 

    public  function _get(string name){
        if (!isset this->_service[name]) {
            return 0;
        }
        return this->_service[name];
    }

    public  function _del(string name){
        let this->_service[name] = null;
    }

}

cd .. && zephir build && sudo vim /etc/php.ini  // 加入extension=widuu.so

重启 apache 测试,vim index.php

<?php

class string{

    public function test(){
        echo "hello word";
    }
}

$service = new Widuu\Service();
// 故意写错类型
try{
    $service->_set('string',"222");
}catch(Exception $e){
    echo $e->getMessage();
}
// 注册服务
$service->_set('string',new string());
// 获取对象
$s = $service->_get('string');
// 测试
$s->test();

OK,hello word 出来了,这个开发起来真的太简单了,不需要再熟悉 ZEND API,不用再考虑那么多,譬如 内存 空间 指针 等等,反正很强大,如果按照 mvc 方式开发,哈哈,你可以自己意淫一下。

转载请注明来自微度网络,本文标题:《Zephir 安装及使用教程(Docker 及 MAC OS)》

喜欢 0 发布评论
Top