😊

zephir開発環境

2022/08/28に公開

インストール

必要なパッケージのインストール

yum install -y git gcc gcc-c++ make autoconf automake zip unzip wget tar httpd

systemctl start httpd

systemctl enable httpd

reboot

re2c

最新をチェック
https://github.com/skvadrik/re2c/releases

cd /usr/local/src

wget https://github.com/skvadrik/re2c/releases/download/1.3/re2c-1.3.tar.xz

tar Jxfv re2c-1.3.tar.xz

cd re2c-1.3

./configure

make

make install

re2c -v

PHP7

yum install -y php php-devel php-mbstring php-pdo php-gd php-xml php-json php-opcache php-apcu php-gmp php-zip
    
php -v

php-zephir-parser

cd /usr/local/src

git clone git://github.com/phalcon/php-zephir-parser.git

cd php-zephir-parser

phpize

./configure

make

make install
   
vi /etc/php.d/50-php-zephir-parser.ini
    [Zephir Parser]
    extension=zephir_parser.so
    
php -m

composer

cd /usr/local/src

curl -sS https://getcomposer.org/installer | php

cp /usr/local/src/composer.phar /usr/local/bin/composer

composer --version

zephir

cd /usr/local/src

git clone --depth 1 -b $(git ls-remote https://github.com/phalcon/zephir 0.12.* | sort -t/ -k3 -Vr | head -n1 | awk -F/ '{ print $NF }') https://github.com/phalcon/zephir

cd zephir

composer install

vi /etc/profile

export PATH=$PATH:/usr/local/src/zephir
    
source /etc/profile

開発手順

プロジェクト作成

zephir init [任意のモジュール名]

cd [任意のモジュール名]

ソース配置

vi [任意のモジュール名]/[任意のクラス名].zep
namespace [任意のモジュール名(キャメルケース)];

class [任意のクラス名]
{
    public static function say()
    {
        echo "hello world!";
    }
}

設定変更

vi config.json
    internal-call-transformation: true

コンパイル

zephir fullclean

zephir build

モジュール登録

vi /etc/php.d/[任意のモジュール名].ini
; Enable [任意のモジュール名] extension module
extension=[任意のモジュール名]
systemctl restart php-fpm
    
php -m

Makefile

vi MakeFile
build:
    zephir fullclean
    zephir build
    systemctl restart php-fpm

Discussion