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 php
Extension
To build PHP extension And to use Zephir, the following requirements need to be met:
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
First install the interpreter
https://github.com/phalcon/php -zephir-parser
git clone git://github.com/phalcon/php-zephir-parser.git
cd php-zephir-parser
phpize
./configure
make
re2c## is not installed
#Manual installationwgettar zvxf re2c-0.16.tar.gz
cd re2c-0.16 ./configure && make && make install
#sudo make install
Then edit the ini and add
extension=zephir_parser.soInstall zephir.phar
wget https://github.com/zephir-lang/zephir/releases/download/0.13.0-alpha- 1/zephir.pha
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!