私の現在の MVC 設計パターンの実装 (PHP と CodeIgniter を使用して実証) では:
「www.mysite.com/blue/page」に「ページ」があり、最終的に次の (大幅に簡略化された) ファイルによって生成されるとします。
/libraries
session_lib.php
/controllers
/red
/white
/blue
page.php
/models
/red
/white
/blue
funky_class.php
page_model.php
/views
/red
/white
/blue
page.php
そして、ここにわかりやすいコントローラーがあります:
// FILE: /controllers/blue/page.php
// Get some paramaters from URL
$params = $this->input->get();
// Use a library to do some stuff with these params with a session
$this->load->library('session_lib');
$this->session_lib->store_in_session($params);
// Use a very page specific class to do some funky stuff with the params
$this->load->model('blue/funky_class');
$funkified_params = $this->funky_class->funkify($params);
// Pass params to a model
$this->load->model('blue/page_model');
$data['output_from_db'] = $this->page_model->get_some_output_from_db($funkified_params);
// Send to view
$this->load->view('blue/page', $data);
そして今、質問...
データベースと対話しないこれらの「ファンキーな」小さなページ固有のクラスの最善の手順は何ですか? この例では、小さなクラスをモデルとともに保存します。場合によっては、モデル クラス内に追加のメソッドを追加して、ファンキーなことを行うこともあります。これは良い習慣ですか?それとも、ライブラリとファンキーなクラスの両方をモデル内に配置して、コントローラーをさらにスリムにする必要がありますか (ただし、モデルはセッションやファンキーさを必要とせずに他の場所で使用される可能性があります)。