Pickles 2 に、パブリッシュ後のコードにPHPを出力できる文法を追加します。
埋め込みPHPコードを <!--?php
と ?-->
で囲います。
<!--?php include($_SERVER['DOCUMENT_ROOT'])."/common/includes/sample.inc" ?-->
埋め込まれたPHPコードは、 プレビュー時には eval()
コードとして実行され、 パブリッシュ時に <?php 〜〜〜 ?>
に変換されて出力されます。
- 名前空間の管理が直感に反します。
- ファイル自身のパスが直感に反します。
- 実行される時勢が直感に反します。
プレビュー時、 <!--?php
と ?-->
の間の文字列を eval()
コードとして後で実行されるために起きる問題です。 パブリッシュされたファイルでは <?php 〜〜〜 ?>
に変換されるので即座に実行されるので、プレビュー時と実行結果に違いが現れる場合があります。
1. Pickles 2 をセットアップ
$ composer create-project pickles2/preset-get-start-pickles2 ./
{
"require": {
"tomk79/px2-include-php-code": "^0.1"
}
}
更新したパッケージ情報を反映します。
$ composer update
$conf->funcs->html
に、プラグインを設定します。
<?php
return call_user_func( function(){
/* (中略) */
$conf->funcs->processor->html = array(
// px2-include-php-code
// Pickles 2 に、パブリッシュ後のコードにPHPを出力できる文法を追加します。
'tomk79\pickles2\px2_include_php_code\main::exec()' ,
);
/* (中略) */
return $conf;
} );
$conf->path_controot
が/
以外の場合と、 ダイナミックパスが有効なページでエラーが起きる問題を修正。
- 複数のPHPブロックに分割されたコードが、プレビュー時に文法エラーを起こす問題を修正。
- Initial Release.
Copyright (c)2001-2019 Tomoya Koyanagi, and Pickles 2 Project
MIT License https://opensource.org/licenses/mit-license.php
- Tomoya Koyanagi tomk79@gmail.com
- website: https://www.pxt.jp/
- Twitter: @tomk79 https://twitter.com/tomk79/