OpenPNEの拡張を行う場合、webapp_ext/ にファイルを置く

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

OpenPNEシステムを拡張する場合

スポンサーリンク

以下、OpenPNEのシステムを拡張する場合の話。
拡張用には、専用のディレクトリが設けられています。

OpenPNE/webapp_ext

システムの拡張は、「webapp_ext/」ディレクトリ以下に、同じパス・ファイル名、または別名で作ると、こっちが優先されて呼び出されるようになります。
ただし、デフォルトでは、module, templates のみのディレクトリが設置してあり、webapp_ext/lib/db/ 以下にファイルを作って試したら、データベース操作の関数は動きませんでした。
ですので、データベース周りの拡張用の関数を書いたファイルは、「webapp/lib/db/」に置かないといけないみたいです。

あと、webapp_ext ディレクトリが既存ファイルより優先されて呼び出されるようにするためには、configファイルの設定を行う必要があります。

OpenPNE/config.php の209行目辺り (デフォルトのファイル名は、config.php.sample)

///
// webapp_ext ディレクトリ使用設定
///
 
define('USE_EXT_DIR', false);
define('OPENPNE_WEBAPP_EXT_DIR' , OPENPNE_DIR . '/webapp_ext');
define('OPENPNE_MODULES_EXT_DIR', OPENPNE_WEBAPP_EXT_DIR . '/modules');

        ↓

///
// webapp_ext ディレクトリ使用設定
///
 
define('USE_EXT_DIR', true);
define('OPENPNE_WEBAPP_EXT_DIR' , OPENPNE_DIR . '/webapp_ext');
define('OPENPNE_MODULES_EXT_DIR', OPENPNE_WEBAPP_EXT_DIR . '/modules');

へと変更します。
false を true に変えるだけの変更ですけど、ここちょっとはまりました。

以下、これまでOpenPNEをいじってみた感想です。
CakePHPとRailsかじったことあるんで、MVCフレームワーク的なOpenPNEのシステム自体はなんとか理解できそうです。
CakePHPやRailsに比べると、命名規則が緩やかで、おそらくデータベースのテーブル名などは、システムと連動していなくて、適当に名前付けられるみたいです。(間違ってたらすいません。)

ソースを読んだ感想としては、$p という意味不明な変数名が多くて、この変数名の解読に時間をとられたことがありました。
あと、公式のドキュメントがほとんどないので、これも困ったところ・・・。
せめて、命名規則などの開発ルールは、まとまったドキュメントが欲しいところですが、なさそうです。(知っておられる方がいたら、ぜひご連絡お待ちしています。)

次のOpenPNEバージョンでは、Symfonyを採用するらしいです。

http://www.openpne.jp/archives/398/

現バージョンからの移行は、大変でしょうね。
Symfonyは使ったことないので、知りません。安定版になるまでには、まだ時間もかかるでしょうし。
でも、Symfonyは普及しているPHPフレームワークですから、開発効率は上がるかもですね。

スポンサーリンク
 
スポンサーリンク