拡張アプリ開発の基本
拡張アプリとして拡張機能を作ることにより、様々な拡張を1パッケージにして、ブログ単位でインストール出来るようになります。
拡張できる機能
- 校正オプションの拡張
- フック処理の拡張
- Validatorの拡張
- 独自GETモジュールの追加
- 独自POSTモジュールの追加
- テンプレートの挿入(テンプレートの拡張)
最低限必要なファイル
拡張アプリを作るためには、以下のファイルが最低限必要になります。
- extension/拡張アプリのディレクトリ/ServiceProvider.php
このファイルがあれば、最小限の拡張アプリとして成立し、管理画面からインストールもできるようになります。このファイルは、アプリのバージョンや説明やインストール・アップデート時の処理や起動の初期処理を記述できるファイルになっています。詳しく見ていきましょう。
ServiceProvider.php
下のコードは、 ServiceProvider.php の 基本的なコードになります。
<?php
namespace Acms\Plugins\SamplePlugin;
use ACMS_App;
class ServiceProvider extends ACMS_App
{
/**
* @var string
*/
public $version = '1.0.0';
/**
* @var string
*/
public $name = 'SamplePlugin';
/**
* @var string
*/
public $author = 'com.appleple';
/**
* @var bool
*/
public $module = false;
/**
* @var bool|string
*/
public $menu = false;
/**
* @var string
*/
public $desc = 'サンプルのプラグインです。';
/**
* サービスの初期処理
*/
public function init()
{
}
/**
* インストールする前の環境チェック処理
*
* @return bool
*/
public function checkRequirements()
{
return true;
}
/**
* インストールするときの処理
* データベーステーブルの初期化など
*
* @return void
*/
public function install()
{
}
/**
* アンインストールするときの処理
* データベーステーブルの始末など
*
* @return void
*/
public function uninstall()
{
}
/**
* アップデートするときの処理
*
* @return bool
*/
public function update()
{
return true;
}
/**
* 有効化するときの処理
*
* @return bool
*/
public function activate()
{
return true;
}
/**
* 無効化するときの処理
*
* @return bool
*/
public function deactivate()
{
return true;
}
}プロパティ
| プロパティ名 | 説明 |
|---|---|
| $version | バージョンを指定します。バージョン表記に決まりはありませんが、セマンティックバージョニングで付けるといいと思います。 |
| $name | 拡張アプリの名前を指定します。ここの名前が管理画面に表示されます。特に命名規則はありません |
| $author | 作者を指定します。 |
| $module | ここにString(英数字)を指定すると、その名前でモジュールID作成の時、選択肢として表示されます。(非推奨) |
| $menu | ここにString(英数字)を指定すると、そのURLで拡張アプリの管理画面が作成されます。 例: 'sample_index' URL: /bid/1/admin/app_sample_index/ パス: themes/system/admin/app/sample/index.html |
| $desc | 拡張アプリの詳細を記述します。管理画面で表示されます。 |
メソッド
| メソッド名 | 説明 |
| init | インストールされた場合に動作し初期処理を記述できます。 例えば、Hook処理のバインドやテンプレートの挿入処理、autoloadの設定などに利用します。 |
| checkRequirements | インストール前のチェックに利用します。「false」を返すとインストールが出来ません。 |
| install | ルートブログのアプリ管理画面からアプリのインストール時に実行されます。データベースの初期化処理などに利用ください。 |
| uninstall | ルートブログのアプリ管理画面からアプリのアンインストール時に実行されます。データベースの削除処理などに利用ください。 |
| update | 拡張アプリのアップデート時に利用します。データ構造の変更などある場合に利用します。 |
| activate | 拡張アプリの有効時(ブログ単位)に動作します。インストール時にもここが実行されます。 |
| deactivate | 拡張アプリを無効化時(ブログ単位)に動作します。アンインストール時にもここが実行されます。 |
ポイント
- extension/plugins/ の名前空間は 「Acms\Plugins」 です。
- \ACMS_App を継承します。
これで拡張アプリ開発の基本は終了です。次から実際の拡張方法について見ていきます。