文档章节

zephir简介

六飞鞋影魔
 六飞鞋影魔
发布于 2017/04/06 16:58
字数 305
阅读 11
收藏 0

zephir简介

zephir是一门可以编写和编译php拓展的脚本语言,它是动态/静态类型的语言,很多的特性跟php非常的相似

依赖

  • gcc >= 4.x/clang >= 3.x
  • re2c 0.13+
  • gnu make 3.81+
  • autoconf 2.31+
  • automake 1.14+
  • libpcre3
  • php development headers and tools
$ sudo apt-get update
$ sudo apt-get install git gcc make re2c php5 php5-json php5-dev libpcre3-dev

zephir 安装

$ git clone https://github.com/phalcon/zephir.git
$ cd zephir
$ bash install -c
$ zephir help

 _____              __    _
/__  /  ___  ____  / /_  (_)____
  / /  / _ \/ __ \/ __ \/ / ___/
 / /__/  __/ /_/ / / / / / /
/____/\___/ .___/_/ /_/_/_/
         /_/

Zephir version 0.9.6a-dev-aef205594b

bash install -c 会把zephir/bin/zephir 拷贝到/usr/local/bin目录下

php 拓展之hello world

$ cd /web/
$ mkdir zephir_test
$ zephir init hw

会发现hw 目录下面会有 ext/ hw/ config.json

在hw子目录下编写helloworld.zep文件

namespace Hw;

class HelloWorld
{
    public static function say()
    {
        var a = "hello world";
        echo strtoupper(a);
    }
}

$ zephir build

会发现ext/目录下已经生成了php拓展的c语言代码

$ cd ext
$ bash install
$ /web/zephir_test/hw/ext$ bash install
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226

生成hw.so文件, 最后再加入php.ini

extenstion=hw.so

运行helloworld拓展

$ php -r "Hw\HelloWorld::say();"
HELLO WORLD

zephir 生成的C语言代码在ext/hw/helloworld.zep.c

PHP_METHOD(Hw_HelloWorld, say) {

        zval *a = NULL, *_0;

        ZEPHIR_MM_GROW();

        ZEPHIR_INIT_VAR(a);
        ZVAL_STRING(a, "hello world", 1);
        ZEPHIR_INIT_VAR(_0);
        zephir_fast_strtoupper(_0, a);
        zend_print_zval(_0, 0);
        ZEPHIR_MM_RESTORE();

}

© 著作权归作者所有

共有 人打赏支持
六飞鞋影魔
粉丝 1
博文 11
码字总数 5446
作品 0
深圳
程序员
zephir-(5)类型

先在这里感谢各位zephir开源技术提供者 Zephir既可以使用动态类型也可以使用静态类型,这是zephir独特的一点,今天笔者就来和大家一同了解zephir中的基本的类型使用. 注:笔者水平有限,说的不正...

喵了_个咪
2016/03/07
176
0
[Zephir官方文档翻译之二] 为什么选择 Zephir?

为什么选择 Zephir? 目前的PHP应用必须使用得稳定性、性能、和功能性保持平衡。 每一个PHP应用是建立在大量的通用组件上的,而这些组件又基于大量的其它应用。 这些通用的组件可能是一个类/...

风一样的世界
2014/09/26
0
0
zephir-(9)类和对象2

先在这里感谢各位zephir开源技术提供者 zephir全面使用对象编程,这就是为什么拓展的使用方式只能是方法和类,你也将看到,大部分的时间,运行时错误引发异常,而不是致命错误或警告。今天讲一...

喵了_个咪
2016/03/08
46
0
[Zephir开发实践]用Zephir编写PHP扩展实践

场景描述 首先,还是强烈推荐一下Phalcon这个框架。 由于对这个框架很感兴趣,所以看了其官方文档,并在先前用PHP根据其思想写了两个Phalcon核心类,见链接: #年前福利#Phalcon框架部分核心...

暗夜在火星
2014/06/26
0
0
Smarty前端模板引擎 - 我看过的PHP开源框架

Smarty Smarty可以说是我接触PHP这门语言用到的第一个开源框架,当时在Smarty的帮助下,很好地完成了项目的开发,也很好地遵循了MVC的模式。但是到了后来,慢慢地发现,很多人都很熟悉Smart...

暗夜在火星
2014/12/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python介绍

Python介绍 一、简介 Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载等,有益于增强源代码的复用性。Python相对于Lisp这种传统的函数式编程语言,P...

星汉
16分钟前
0
0
VS_设置护眼背景色

工具---->选项---->环境---->字体和颜色:

一个小妞
18分钟前
0
0
Flask跨域请求的处理方法

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法: 使用 flask-cors库可以很容易的解决 pip install flask-cors 两种方法,一个是全局/批量的,一个是单一独立的: 安全...

ykbj
19分钟前
2
0
Pandas学习记录-Series

系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引。 pandas.Series Pandas系列可以使用以下构造函数创建 - pandas.Series( dat...

kipeng300
27分钟前
0
0
可以实现内网穿透的几款工具

最近没什么事情,看了一些关于内网穿透的文章,因我本身已是做微信开发相关的工作,对这部分关注的比较多,现分享给大家。 首先说下内网穿透的原理。 NAPT原理 在NAT网关上会有一张映射表,表...

哥本哈根的小哥
28分钟前
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部