PHP での関心の分離に関する知識を広げようとしています。私は1年以上練習しており、練習用に独自のmvcフレームワークを作成しようとしています。今、私はルーティングと MVC トライアドを開始する方法で再び立ち往生しています。
これuri
をマップしたいので、どれを使用するかを識別controller
できview
ます
$uri = filter_var(rtrim(filter_input(INPUT_GET, 'url', FILTER_SANITIZE_STRING), '/'), FILTER_SANITIZE_URL);
このコードはbootstrap.php
、エントリ ポイントとして機能するファイルにあるとしましょう。
Tom Butler のブログを読んでいるうちに、ビューがモデルにアクセスできるようにする必要があるなど、多くのことを認識していますが、完全ではなく、a を使用するviewmodel
方が良いか、単にモデルを使用する必要があります。
IOC
私は彼または彼の Dependency Injection Containerに出くわし、 それを試すことに興味を持ちました。
その記事に欠けているのはディスパッチの部分です。私はそれを学ぶことに非常に興味を持っています。それを機能させるためにいくつかのことを試みましたが、役に立ちませんでした。
これを実装したかったのは、の単一の呼び出しでcontroller
ビュー間で依存関係を共有できるようにしたいからです。
$route = $router->getRoutes(); // maybe something that return a Route object with Controller, and View object that has already shared dependecies.
上記の段落に関する私の理解が正しいかどうか、またルーティングに本当に役立つかどうかはわかりません。私が間違っている場合は修正してください。
本当の問題は、ディスパッチャーがどのように見えるかということです。そして、もし私がconvention over configuration
ミスターのものを使うとしたら。トム、ブートストラップでルートを個別に宣言する必要がありますか? これらのように
$dice->addRule('$route_user/edit', $rule);
$dice->addRule('$route_user/delete', $rule);
...
私はただできるのだろうか:
$controller->method($params)
必要なビューとコントローラーを決定した後。