0

Codeigniterでポートフォリオページを作成しています。また、サイトにシンプルなCMSを装備しています。

次のようにポートフォリオアイテムを作成するコントローラーがあります。

public function create_portfolio()
{
    $this->load->model('portfolio_model');
    $this->portfolio_model->insert(
        $this->input->post('title'),
        $this->input->post('short_description'),
        $this->input->post('complete_description'),
        $this->input->post('github'),
        $this->input->post('url')
    );
}

オブジェクト指向のアプローチは次のようになります。

public function create_portfolio()
{
    $this->confirm_login();

    $this->load->model('portfolio_model');
    $portfolio = new Portfolio(
        $this->input->post('title'),
        $this->input->post('short_description'),
        $this->input->post('complete_description'),
        $this->input->post('github'),
        $this->input->post('url')
    );

    $this->portfolio_model->insert($portfolio);
}

雇用主がOOPスキルを持つ人材をますます求めているので、私は後者のアプローチが効果的かどうかを評価しようとしています。最終的に、私が持っているモデルは、データベースに挿入するために、Portfolioオブジェクトからすべてのインスタンス変数にアクセスすることになります(私はORMを使用していません)。

モデルに渡す前に、すべての入力フィールドを実際にオブジェクトにグループ化する意味はありますか?私はこの質問を間違った言い方をしているかもしれませんが、私はあなたの意見を歓迎します。

4

1 に答える 1

0

コンストラクターに値を渡しているため、コンストラクターは入力に対して検証を行って、それが有効であることを確認するか、その他の処理を行う場合があります。

$portfolio->title等しくない場合があります$this->input->post('title');

したがって、オプション 2 の方が適切です。

于 2012-08-26T21:58:05.190 に答える