目次

前のトピック

< 独自のオプティマイザ

次のトピック

拡張ガイド >

このページ

設定ファイル

各Zephir 拡張はconfig.jsonと呼ばれる設定ファイルを持ちます。このファイルは拡張をビルドあるいは生成する度にZephirによって読み込まれ、開発者が拡張あるいはコンパイラの挙動を修正することができます。

このファイルは設定フォーマットとしてJSONを使います:

{
    "namespace": "test",
    "name": "Test Extension",
    "description": "My amazing extension",
    "author": "Tony Hawk",
    "version": "1.2.0"
}

このファイルで定義された設定はZephirによって提供される工場出荷時のデフォルトの設定を上書きます。

以下の設定がサポートされます:

namespace

拡張の名前空間。以下の正規表現を考慮する単純な識別子でなければなりません: [a-zA-Z0-9_]+:

{
    "namespace": "test"
}

name

拡張の名前。アスキー文字のみ含むことができます:

{
    "namespace": "test"
}

description

拡張の説明。拡張を説明するテキスト:

{
    "description": "My amazing extension"
}

author

拡張を開発した企業、開発者、機関など:

{
    "author": "Tony Hawk"
}

バージョン

拡張のバージョン。以下の正規表現に従う必要があります: [0-9]+.[0-9]+.[0-9]+:

{
    "version": "1.2.0"
}

warnings

現在のプロジェクトでコンパイラの警告を有効にするか無効にするか:

{
    "warnings": {
        "unused-variable": true,
        "unused-variable-external": false,
        "possible-wrong-parameter": true,
        "possible-wrong-parameter-undefined": false,
        "nonexistent-function": true,
        "nonexistent-class": true
    }
}

optimizations

現在のプロジェクトでコンパイラの最適化を有効にするか無効にするか:

{
    "optimizations": {
        "static-type-inference": true,
        "static-type-inference-second-pass": true,
        "local-context-pass": false
    }
}

globals

拡張のグローバルを利用可能にする。詳細は拡張のグローバル章を調べてください。

{
    "globals": {
        "my_setting_1": {
            "type": "bool",
            "default": true
        },
        "my_setting_2": {
            "type": "int",
            "default": 10
        }
    }
}

info

phpinfo() の章。詳細はphpinfo() の章を調べてください。

{
    "info": [
        {
            "header": ["Directive", "Value"],
            "rows": [
                ["setting1", "value1"],
                ["setting2", "value2"]
            ]
        }
    ]
}

extra-cflags

コンパイラ処理に追加したい追加のフラグ:

{
    "extra-cflags": "-I/usr/local/Cellar/libevent/2.0.21_1/include"
}

extra-libs

コンパイラ処理に追加したしたい追加のライブラリ:

{
    "extra-libs": "-L/usr/local/Cellar/libevent/2.0.21_1/lib -levent"
}

extra-sources

コンパイラ処理に追加したい追加のファイル:

{
    "extra-sources": ["utils/pi.c"]
}

検索ディレクトリはプロジェクトのextフォルダからの相対です。

optimizer-dirs

独自のオプティマイザを見つけることができるディレクトリ:

{
    "optimizer-dirs": ["optimizer-dirs"]
}

検索ディレクトリはプロジェクトのルートフォルダからの相対です。

package-dependencies

ライブラリの依存性を宣言します (バージョンはpkg-configによってチェックされます)

{
    "package-dependencies": {
        "openssl": "*",
        "libpng": ">= 0.1.0",
        "protobuf": "<= 2.6.1"
    }
}

バージョンの演算子は =, >=, <= および * をサポートします

TOP
inserted by FC2 system