>  기사  >  백엔드 개발  >  Zephir 분석 및 PHP 확장 작성 (1)

Zephir 분석 및 PHP 확장 작성 (1)

藏色散人
藏色散人앞으로
2021-06-10 11:57:022920검색

이 글에서는 "Zephir 분석 및 PHP Extension 작성(1)"을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

PHP 확장을 작성하려면 ext_skel과 함께 c 또는 c++ 언어를 사용하여 구현해야 한다는 것은 잘 알려져 있습니다.

C++에 노출되지 않은 PHPer에게는 매우 비우호적입니다. 그래서 Zephir가 있습니다

. zephir的口号是:会写php,就会写php 확장

PHP 확장 Zephir를 빌드하고 사용하려면 다음 요구 사항을 충족해야 합니다.

  • Zephir 파서 >= 1.3.0
  • A gcc
    • re2c 0.13.6 이상과 같은 C 컴파일러
    • PHP 기반용 PHP 개발 헤더 및 도구 Linux 시스템의 경우 다음도 필요합니다.
    • GNU make 3.81 이상
    • autoconf 2.31 이상
    • automake 1.14 이상
    • libpcre3

all compile PHP 설치 후 몇 가지 종속 항목을 설치해야 합니다

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

Zephir 분석 및 PHP 확장 작성 (1)

먼저 인터프리터를 설치해야 합니다

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

Zephir 분석 및 PHP 확장 작성 (1)

phpize

./configure
make

Zephir 분석 및 PHP 확장 작성 (1)re2c가 설치되지 않았습니다

수동으로 설치

wget Zephir 분석 및 PHP 확장 작성 (1)

http://

sourceforge.net/project

Zephir 분석 및 PHP 확장 작성 (1)s/re2c/files/0.16/re2c-0.16.tar.gz

tar zvxf re2c-0.16.tar.gz cd re2c-0.16 ./configure && make && make installZephir 분석 및 PHP 확장 작성 (1)

tar zvxf re2c- 0.16.tar.gz

cd re2c-0.16 ./configure && make && make installsudo make install다음을 편집하세요. 이니 그리고

extension=zephir_parser.soZephir 분석 및 PHP 확장 작성 (1)를 추가하세요.

Zephir 분석 및 PHP 확장 작성 (1)

zephir.phar

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

Zephir 분석 및 PHP 확장 작성 (1)

설치 성공

Zephir 설치 후 코딩 단계로 넘어갈 수 있습니다

array_where 확장 메소드를 구현하여 배열 필터링을 구현하고 싶습니다

$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);

mysql의 다중 조건 쿼리 필터링과 비슷합니다.

기본 PHP 작성 방법을 사용하면 foreach 루프가 발생하므로 매우 비효율적입니다.

이 기사는 원저자 PHP Cui Xuefeng의 동의를 받아 PHP 중국어 웹사이트에 게시되었습니다. 원본 주소: https://zhuanlan.zhihu.com/p/352504439

위 내용은 Zephir 분석 및 PHP 확장 작성 (1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 zhihu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제