0

非常に大きな関数がいくつかあり、それぞれ 1 つのコントローラー関数でしか使用されません。これらをどこに配置すればよいのでしょうか? それらはビューを表示していませんが、代わりにいくつかの数値を処理しています。
私が間違っていなければ、これらの関数を配置できる場所が 4 つあります。コントローラー、ヘルパー、ライブラリ、またはモデルです。しかし、ユーザーがコントローラーを使用するたびにコードをロードしたくないため、これらのどれも適切ではないようです。また、モデルを使用してデータベースの処理を行う必要があり、ヘルパーとライブラリには何度も使用できるコードを含める必要があります。また。

4

2 に答える 2

1

ビジネス ロジックの場合は、コントローラ内にプライベート メソッドとして配置するのが最適です。その後、コントローラ内からそのメソッドを呼び出すことができます。

注意として、ヘルパーは、オートロードするか、コントローラーのコンストラクターでロードしない限り、常にロードされるとは限りません。したがって、別の方法として、ヘルパーのこれらのメソッドを作成し、使用したいコントローラー アクションでヘルパーをロードするだけです。そうすれば、必要なときにのみロードされます。

于 2012-06-29T20:19:43.807 に答える
0

CodeIgniter には、おそらく使用しない可能性のあるヘルパーが付属しています (application/config/config.php ファイルで指定しない限りロードされません)。一度だけ使用する関数がそこに格納されていても問題はないと思います (アプリケーション/ヘルパー)。たとえば、ランダム パスワード ジェネレーターを 1 回だけ使用することもできますが、それはまだそこにあり、呼び出さない限り読み込まれません。

$this->load->helper('my_string_generators');
于 2012-06-29T20:22:31.243 に答える