ECWorks Blog

ECWorks Blog

CakePHPを中心としたサイト開発情報をメインに公開。新しもの好きなので時々製品レポートなんかも。

【CakePHP】外部プログラムでコンポーネントを共有したい場合

たまたま仕事でメールフォームを設置しなければならなくなって、お手軽にQdmailなんかを拝借させてもらったのですが(感謝です)。その際になかなか素晴らしいアイデアを発見しました。

Qdmailはコンポーネントでも素のクラスとしても使うことが出来るのですが、その仕組みが面白くて、Cakeかどうかの判定で「CAKE」もしくは「CAKE_CORE_INCLUDE_PATH」がdefinedされているか調べ、ある場合はObjectをextendした空のクラスを、そうでない場合はなにもextendしていない空のクラスを定義し、実体の方はこの空のクラスをextendしていました。種明かしされれば「なぁ~んだ!」ですが、頭の固い私にはそのアイデアは出てこなかったです(^^;。

ちょうど、「連想くん」のハイブリッド化を検討していて、コンポーネントをそのまま使いたいと思っていたので、このやり方を早速採用してみたいと思います。

ちなみに、Cakeでない場合に「空のObjectクラスを定義してextendする」の方が手順が少ないですが、ほかのシステムでObjectが出てきたらアウトだから、こういう実装方法になっているんでしょうね。公開用のプログラムならアウトですが、自分で分かっていてやるのならこれでもアリですね。




このエントリをはてなブックマークに追加 このエントリをLivedoor Clipに追加 このエントリをYahoo!ブックマークに追加 このエントリをdel.icio.usに追加 このエントリをFC2ブックマークに追加 このエントリをNifty Clipに追加 このエントリをPOOKMARK. Airlinesに追加 このエントリをBuzzurl(バザール)に追加 このエントリをChoixに追加 このエントリをnewsingに追加 

Leave a Response

*

コメントは承認待ちです。表示されるまでしばらく時間がかかるかもしれません。