2016-09-06 2 views
-3

体が助けてください。php mvc(codeigniter)の書き込みメソッドの正しい方法は何ですか

codeigniterを使用したメソッド(関数)の正しい手順。

私は、モデル内のすべてのタスクに対して別個のメソッドを記述したり、汎用目的で使用されるメソッドを使用することを意味します。 すなわち

1:-Oneアプローチ

public function insert_records($tabel, $data){ 
     return $this->db->insert($tabel, $data); 
    } 

2:教師のための

public function insert_user(){ 
    return $this->db->insert('users', array('name'=>$this->input->post('name'),'email'=>$this->input->post('email')); 
    } 

同じ - セカンドアプローチ

public function insert_teacher(){ 
     return $this->db->insert('teachers', array('name'=>$this->input->post('name'),'email'=>$this->input->post('email')); 
     } 

別々の機能を使用するために適切なソリューションを教えてください1つの関数でデータやテーブル名を渡すのが最適です。 誰かが適切な解決策を持っていない場合は、適切な解決策を提供するために、専門家のために残してください。

+0

は私の質問の主な目的だったhttp://stackoverflow.com/questions/5863870/how-should-a-model-be-structured-in-mvc/5864000#5864000 – Linus

答えて

-1

あなたの質問は少し広範ですが、私は可能な限り答えようとします。

第1に、MVC実装のPHPは、古くからのアプローチです。近代的なソリューション(AngularまたはReactのサポート)では、Viewの部分をPHPから完全に移動し、アプリケーションロジック、データ、およびシンプルなAPIを残しています。これはMVVMパターンであり、全体的にユーザーエクスペリエンスが向上します。

第二に、あなたの質問に答えるために:$_GET$_POST$_REQUEST

  1. 直接アクセスは、スクリプトの開始時にブロックすることができます。あなたのルータはデータを読み取ってから、直接アクセスを防ぐためにunset()を使用する必要があります。
  2. ORMを使用します。非常に特殊なケースでは、パフォーマンス上の理由から必要でない限り、SQLクエリを記述しないでください。
  3. コードレビューを行います。適切なGITフローを使用すると、他の開発者の変更がマージされる前に確認することができます。これにより、コーディングスタイルについて話し合い、誰もが守るべきルールのセットを思いつくことができます。
  4. また、ORMを使用します。それは、protected class Userが挿入に使用できないことを絶対に明らかにするでしょう。 class Teacher extends Userとそれにはinsert()しかデータを挿入できません。
+0

してみてくださいその別の方法の使用コントローラーやモデル内のすべてのプロセスが最適です。あるいは、異なるパラメーターを渡すだけで多くのタスクを処理できる多目的メソッドを使用する方法です。 – smehsoud

+0

単純にあなたは、mvcに厳しいルールがないので、コーディング中にモデルを呼び出すことができますが、適切な方法でコードを使用するのがベストプラクティスではないことを想像してください。 – smehsoud

+0

私自身codeigniterに取り組んでいますので、知識があります – smehsoud

関連する問題