2
2

More than 3 years have passed since last update.

【コピペ】CentOS8におけるZephir開発環境手順

Last updated at Posted at 2020-01-28

目的

  • CentOS8でZephirの開発をする
    • 普通のPHP拡張モジュールはCで書く
      • 文字列操作が複雑
      • メモリ管理が煩雑
      • PHP拡張モジュール独自の要素もある
    • ZephirはPHP拡張モジュール開発専用言語
      • PHPライクな記法
      • PHPの関数をそのまま使える
      • メモリも文字列も自由に書ける
      • 主にclass作成用で、OPCacheのようにエンジンの置き換えはできない?

公式ドキュメント

Zephir Documentation v0.12
github:zephir

どんな環境を作るの?

  • OS
    • CentOS8
  • PHP
    • PHP7.2.11
  • httpサーバ
    • Apache

コピペでできるインストール手順

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

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

re2c

最新をチェック

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

dnf install -y php php-*

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.16 | 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

再起動

reboot

開発手順

プロジェクト作成

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

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

ソース配置

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

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

設定変更

vi config.json
    internal-call-transformation: true

モジュール登録

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

コンパイル

zephir fullclean

zephir build

systemctl restart php-fpm

使い方

<?php
    echo [任意のモジュール名]\[任意のクラス名(キャメルケース)]::say();
?>
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2