0

MVCのように特定のビューに接続するコントローラーを実装したいと思います。PHPで提供されているフレームワークを使用していません。

だから、私はそれを行うためのいくつかのガイドとアドバイスが必要です。

私はいくつかのコントローラーとビューを持っています。私の見解では、データのみを出力したいと思います。私の懸念は、コントローラーの関数(のような)が、ユーザーが入力しcreate()たすべてのデータを取得し、コントローラーの関数で新しいモデルを作成する方法です。$_POST['params']views/create.phpcreate()

それで、今、私はこのようにすることを考えています、私は私のコントローラーフォルダーにMyViewsクラスを作成します。目的は、特定のビューをロードし、すべての$_POSTパラメーターをオブジェクトに取り込むことです。次に、Users_controllersなどのすべてのコントローラーがMyViewsを作成します。、などのUsers_controllersの関数では、MyViewsの関数を使用して特定のビューをロードし、オブジェクトをロードする場合があります。create()destroy()

ビューをロードするソースを見つけました

<?php
class MyView {
protected $template_dir = 'templates/';
protected $vars = array();
public function __construct($template_dir = null) {
    if ($template_dir !== null) {
        // Check here whether this directory really exists
        $this->template_dir = $template_dir;
    }
}
public function render($template_file) {
    if (file_exists($this->template_dir.$template_file)) {
        include $this->template_dir.$template_file;
    } else {
        throw new Exception('no template file ' . $template_file . ' present in     directory ' . $this->template_dir);
    }
}
public function __set($name, $value) {
    $this->vars[$name] = $value;
}
public function __get($name) {
    return $this->vars[$name];
}
} ?>

うーん、どうすれば_POSTパラメータを検出できるかわかりません

    if(isset($_POST['Post']))
    {
        $model->attributes=$_POST['Post'];
        if($model->save())
            $this->redirect(array('view','id'=>$model->id));
    }

これは私が観察したYiiフレームワークです。特定のビューをロードしたかどうかに関係なく、パラメータを検出するにはどうすればよいですか$_POST$_GET

タスクをアーカイブするためのガイダンスやアドバイスはありますか?

4

1 に答える 1

1

質問に無関心
あなたには 1 つの大きな問題があります。それは、意味を表現する能力が非常に限られていることです。あなたが尋ねた質問は、実際にはあなたの問題とは無関係でした。

POST私が収集したものから、またはGET要求を行ったユーザーを検出する必要があります。直接検出して確認できますが$_SERVER['REQUEST_METHOD']、コントローラーで確認するのはかなり面倒かもしれません。リクエストメソッドに基づいて異なる動作をする多くのコントローラーメソッドができあがります。

一般的なフレームワークを使用していないため、代わりにこの決定をルーティング メカニズムに委譲することをお勧めします。

私の意見では、これを処理するためのかなり良い方法は、コントローラーのメソッド名に request method: などのプレフィックスを付けるpostLogin()ことです。ここでgetArticles()いくつかの追加の例を見つけることができます。リクエストがある場合は、配列に何かがあります。POST$_POST

「ビュー」と呼ばれるものは、実際にはテンプレートです。この記事を読むと、そこにあるコードが実際にはMyView. ビューはテンプレートではありません。ビューは、プレゼンテーション ロジックを含み、複数のテンプレートを操作するインスタンスです。

PS PHP に関連して MVC および MVC にインスパイアされたパターンを調査している場合は、この投稿が役立つ場合があります。

于 2012-08-19T09:11:49.463 に答える