1

最近、モバイルアプリケーション用のWebサービスCodeigniterを開発するために、フレームワークの使用を開始しました。RESTFul

WebサイトやYouTubeでさまざまなチュートリアルを見ているModelと、PHPアプリケーションのコンテキストではaの概念が異なって使用されていることがわかりました。

どのように違うのですか?

さて、私がいつも思っていたように、モデルクラスは次のようになります。

Cat.php

<?php

class Cat {
   
   // Class variables
   private $colour;
   
   public __construct() {
      $colour = 'Brown';
   }

   // Getters and Setters

   public function getColour() {
      return $this->colour;
   }

   public function setColour($newColour) {
      $this->colour = $newColour;
   }

}

?>

しかし、インターネットで優れたチュートリアルを検索していると、データベースにアクセスしてデータをに返す関数を使用しているだけであることがわかりましたController

Modelで通常のクラスを書いている人を見たことがありません(Javaの人なら、POJOと呼びます


さて、これらのチュートリアルを読んで見た後に私が必要としたことは、

PHPアプリケーションフレームワークのコンテキストでは、Modelクラスはデータベースへのコネクタであり、クエリ時にアプリケーション関連のデータを返します。SQLの人々の言語では、それを次のように呼びます。

  • CRUD関数

    • 作成
    • 読む
    • アップデート
    • 消去

だから、私が間違っているなら私を訂正してください。

フレームワークのようなCodeigniterをベースにして作成されたWebアプリケーションでは、MVCパターンを使用してアプリケーションを設計します。モデルクラスは、アプリケーションをデータベースに接続してデータを返す機能を備え、アプリケーションのデータベースですべてのCRUD操作を実行するのに役立ちます。

4

1 に答える 1

5

そうですね、C#またはRubyを使用したことがある場合は、MVCパターンを適用するための良い方法を見つけることができます。PHPでは、私の意見では、人々は用語について混乱することがあります。PHPでMVCパターンを使用する方法は、次のようになります。

コントローラ

class UserController { 

    private $repo;

    public function __construct() { 
        $this->repo = new UserRepository(); // The file which communicates with the db. 
    }

    // GET
    // user/register
    public function register() { 
        // Retrieve the temporary sessions here. (Look at create function to understand better)
        include $view_path;
    }

    // POST
    // user/create
    public function create() { 
        $user = new User($_POST['user']); // Obviously, escape and validate $_POST;
        if ($user->validate())
            $this->repo->save($user); // Insert into database

        // Then here I create a temporary session and store both the user and errors.
        // Then I redirect to register
    }

}

モデル

class User { 

    public $id;
    public $email;

    public function __construct($user = false) {
        if (is_array($user))
            foreach($user as $k => $v) 
                $this->$$k = $v;
    } 

    public function validate() { 
        // Validate your variables here
    }

}
于 2012-08-25T09:56:03.347 に答える