Home  >  Article  >  Backend Development  >  Analyzing Zephir and writing PHP extensions (1)

Analyzing Zephir and writing PHP extensions (1)

藏色散人
藏色散人forward
2021-06-10 11:57:022993browse

This article introduces to you "Analysis of Zephir to write PHP extensions (1)". It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

It is well known that to write PHP extensions, you need to use c or c language with ext_skel to implement

This is very unfriendly to a PHPer who has not been exposed to c, so there is The slogan of Zephir

zephir is: if you can write php, you can write phpExtension

To build PHP extension And to use Zephir, the following requirements need to be met:

  • Zephir parser >= 1.3.0
  • A C compiler, such as gcc
    • re2c 0.13.6 or higher
    • PHP development headers and tools For linux-based systems, you also need:
    • GNU make 3.81 or later
    • autoconf 2.31 or later
    • automake 1.14 or later
    • libpcre3

After all the compilation and installation of PHP, you still need to install some dependencies

yum install git gcc make re2c php php-json php-dev libpcre3-dev build-essential

Analyzing Zephir and writing PHP extensions (1)

First install the interpreter

https://github.com/phalcon/php -zephir-parser

Analyzing Zephir and writing PHP extensions (1)

git clone github.com/phalcon/php-

cd php-zephir-parser

Analyzing Zephir and writing PHP extensions (1)

phpize

Analyzing Zephir and writing PHP extensions (1)

./configure

Analyzing Zephir and writing PHP extensions (1)

make

Analyzing Zephir and writing PHP extensions (1)

re2c## is not installed

#Manual installation

wget

http://sourceforge.net/projects/re2c/files/0.16/re2c -0.16.tar.gz## tar zvxf re2c-0.16.tar.gz cd re2c-0.16 ./configure && make && make install

Analyzing Zephir and writing PHP extensions (1)tar zvxf re2c-0.16.tar.gz

cd re2c-0.16 ./configure && make && make install

#sudo make installAnalyzing Zephir and writing PHP extensions (1)

Then edit the ini and add Analyzing Zephir and writing PHP extensions (1)

extension=zephir_parser.so

Analyzing Zephir and writing PHP extensions (1)

Install zephir.phar

wget https://github.com/zephir-lang/zephir/releases/download/0.13.0-alpha- 1/zephir.pha

Analyzing Zephir and writing PHP extensions (1)

Installation successful

After installing Zephir, you can proceed to the coding stage

I want to implement an array_where extension Method to implement array filtering

$array = [];
$array[0]['name'] = 'zhangsan';
$array[0]['chinese'] = '89';
$array[0]['math'] = '95';
$array[0]['english'] = '88';
$array[1]['name'] = 'lisi';
$array[1]['chinese'] = '91';
$array[1]['math'] = '86';
$array[1]['english'] = '90';
$where=array(
        array('k'=>'name','conditions'=>'=','v'=>'zhangsan'),
        array('k'=>'chinese','conditions'=>'>','v'=>'86'))
$new_array = array_where(array,$where);
var_dump($new_array);

is similar to multi-condition query filtering in mysql.

If you use the native PHP writing method, it is a loop foreach, which is very inefficient.

This article was published on the PHP Chinese website with the consent of the original author PHP Cui Xuefeng. The original address: https://zhuanlan .zhihu.com/p/352504439

The above is the detailed content of Analyzing Zephir and writing PHP extensions (1). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:zhihu.com. If there is any infringement, please contact admin@php.cn delete