2012-01-11 14 views
0

codeigniterには、mvcフレームワーク、モデル、ビュー、ライブラリなどの標準クラスがあります。私はCodeIgniterに独自のオブジェクトのサブセットを追加したいのですが、どのようにすればよいでしょうか?例えば:CodeIgniterでカスタムオブジェクトタイプを追加するには?

ディレクトリ:コアの内部

controllers 
core 
helpers 
etc.. 
widgets //custom object type 

、私は、ウィジェット、フォルダ内のすべての伸びるだろうとMy_Widgetクラスを持つことができます。私は、私はあなたに完全なソリューションを提供することはできませんこれをやったことがないが、私は、少なくとも正しい方向にあなたを指すようにしようとすることができ

$this->load->widget('Example_Widget'); 
+0

私は自分の答えを更新しました。私はあなたがしようとしているものを実装する人の素晴らしい例を見つけました。 – birderic

答えて

2

:次に、コントローラの内部で、私のようなものを持つことができます。

/system/core/Loader.phpにあるローダークラスをご覧ください。これは、$this->loadを使用してアクセスしているものです。さまざまなタイプのリソース(モデル、ライブラリなど)をロードするためのさまざまなメソッドが含まれています。 メソッドを複製し、widget()の名前を変更し、パスを更新して/application/widgetsディレクトリを確認することができます。 CI_Widgetベースクラスの作成など、もう少しやり直す必要があるかもしれませんが、メソッドを1行ずつ実行して、必要な作業を見つけ出すことができます。

こちらがお役に立てば幸いです。

編集(2012年1月12日):ここで

は、カスタムリソースの種類をサポートするためのCodeIgniterを拡張誰かの一例です。

Sparksは、RubyGems for RubyのようなCodeIgniterのパッケージ管理システムです。火花の使用は簡単です。スパークをサポートするようにCodeIgniter環境を変更したら、スパークをインストールして$this->load->spark('...');を使用してロードします。スパークをサポートするようにCodeIgniter環境を変更するには、新しいsparks()メソッドをサポートするようにローダークラスを拡張する必要があります。

ローダークラスを変更するコードはhereです。そのファイルのパターンに従って、独自のカスタムリソースタイプのロードを実装できるはずです。私の以前の答えでは、/system/core/Loader.phpファイルを変更することで逃げることができたと言いましたが、私はあなたがスパークで使用されている方法に従い、/application/core/MY_Loader.phpファイルを使用することをお勧めします。

+0

うわー、私はあなたの答えを2回投票することができたらいいと思う。 1つは良い答えのためであり、もう1つは私を示すためのものです。それは本当に便利ですね。 – GSto

関連する問題