この回ではプラグインのスケルトン作成と、各フォルダの機能紹介を行います。

OpenPNE3では、symfonyがもつプラグイン機構とは違った仕組みを持っています。
symfony自体のプラグインはPractical symfonyの20日目-プラグインを御覧下さい。

大きな違いとしては、プラグインディレクトリ直下にapps/ディレクトリが存在し、その中に各モジュールを配置できることと、module/を有効化するのに特にsetting.ymlの設定等が不要な所です。
つまり、このことはプラグインを配置するだけで新たなページの追加などが行えるということになります。

プラグインのスケルトンの作成は、OpenPNEが拡張したタスクによって簡単に行うことができます。

以下のようなタスクを実行することにより、プラグインのスケルトンが作成できます。

$ ./symfony opGenerate:plugin opVotePlugin

とすると、plugins/の中にopVotePlugin/というフォルダが作成されているかと思います。
その中には、apps/,lib/,test/という3つが作成されているはずです。

今回は、さらにappsの中にアプリケーション・モジュールを作成していきます。
アプリケーション・モジュールのディレクトリ構造についてはsymfonyのものと変わりません。

ここで、OpenPNE3で利用するアプリケーションを説明します。

pc_frontend
PC版フロントエンドのためのアプリケーションです。
mobile_frontend
モバイル版フロントエンドのためアプリケーションです。
pc_backend
管理画面のためのアプリケーションです。
api
APIの為のアプリケーションです。
mobile_mail_frontend
携帯電話からのメール投稿に利用するアプリケーションです

今回のプロジェクトではまず、PC版の画面から作っていくつもりなのでpc_frontendのスケルトンを作成します。

$ ./symfony opGenerate:app opVotePlugin pc_frontend

plugins/opVotePlugin/apps に新たにpc_frontend/が作成されます。

さらに、モジュールを追加します。voteモジュールということにしたいので、

$ ./symfony opGenerate:module opVotePlugin pc_frontend vote

となります。

voteモジュールが完成します。

この段階で、モジュールが作成され、プラグインが動いているか確認したい場合は
一度キャッシュを削除します。

$ ./symfony cc

その後、http://#セットアップしたSNSのURL#/vote にアクセスしてみましょう。
以下の画面が出ているのが確認できたらうまくいっていると言えます。

screenshot

次回は、簡単なページの作り方と、そのページをSNSユーザ以外が見られないようにする方法などを紹介します。