校正オプションの拡張
拡張アプリでの校正オプションの拡張の仕方を見ていきます。名前空間・クラス名に気をつけましょう。
ファイル名は任意ですが、わかりやすくする為、Corrector.php とします。
例: extension/plugins/SamplePlugin/Corrector.php
<?php namespace Acms\Plugins\SamplePlugin; class Corrector { /** * sample * 校正オプションのサンプルメソッド * * @param string $txt - 校正オプションが適用されている文字列 * @param array $args - 校正オプションの引数 {var}[sample('ここの値')] * @return string - 校正後の文字列 */ public function sample($txt, $args = array()) { // 例 {var}[sample('hoge','fuga')] // {var}の中は,'a-blogcms' とする $hoge = isset($args[0]) ? $args[0] : null; // 'hoge' $fuga = isset($args[1]) ? $args[1] : null; // 'fuga' return $hoge.$fuga.'+'.$txt; // 'hogefuga+a-blog cms' } }
ServiceProviderの設定
これだけでは、通常の拡張方法と違い動作しません。動作させるためには、このクラスのオブジェクトをa-blog cmsに登録する必要があります。
ServiceProviderで校正オプションの実装クラスを登録する
拡張アプリの基本で作成した ServiceProviderに少し手を加えます。
<?php namespace Acms\Plugins\SamplePlugin; use ACMS_App; use Acms\Services\Common\CorrectorFactory; class ServiceProvider extends ACMS_App { /* 省略... */ /** * サービスの初期処理 */ public function init() { $corrector = CorrectorFactory::singleton(); $corrector->attach('SampleCorrector', new Corrector); } /* 省略... */ }
ポイント
Acms\Services\Common\CorrectorFactory のオブジェクトを
CorrectorFactory::singleton();
で取得して 先ほど作成した Acms\Plugins\SamplePlugin\Corrector を attach します。
- 第一引数: 被らないような任意の文字列
- 第2引数: 実装クラスのオブジェクト
これで拡張アプリをインストールすれば、Corrector.php で実装した校正オプションが利用できるようになります。