joh*_*nny 0 php model-view-controller
没有ORM.我所知道的是我有PHP 5+和adodb.从这两个,我怎么能使用MVC?我不能使用其他框架而且我"不要求有人从头开始构建任何东西(我想学习!).但是我怎么能从这里开始?我知道如何混合不正确的经典asp风格.我不知道什么知道怎么做,在一个非常基本的层面上就是做MVC.说我有一个模型只是一些adodb和SQL,我怎么能从我的"模型"到我的视图呢?或者我怎么称呼我的控制器有什么东西,因为我没有ORM来打电话?
有人能给我一些具体的东西吗?我希望这是未来CMS的基础.
谢谢
MVC没有什么神奇之处.其目的是将用户界面交互分成三个不同的角色.重要的分离是模型和表示层之间的分离.表示层由Controller(从UI到模型的句柄和委托请求)和View(呈现模型数据)组成.
您的模型是您的核心应用程序.它可能会分层,例如分层到数据访问层(您的AdoDB内容),域模型和服务层.如何组织模型取决于您要构建的应用程序.MVC的重要一点是保持模型独立于演示.您的应用程序应该能够解决在没有UI的情况下编写的问题.UI只是顶部的一个界面.
基本上,只要您的控制器保持薄,并执行此操作
class SomeController
{
public function someAction()
{
$input = filter_input(/* ... */);
$adoDb = $this->getModel('MyAdoDbClass');
$newData = $adoDb->doSomethingWithInput($input);
$this->getView()->setData($newData);
$this->getView()->render();
}
}
Run Code Online (Sandbox Code Playgroud)
而不是这个
class SomeController
{
public function someAction()
{
$input = filter_input(/* ... */);
$adoDb = new AdoDb;
/*
all the code that belongs to doSomethingWithInput
...
*/
echo '<html>';
/*
all the code that should belongs to the View ...
*/
}
}
Run Code Online (Sandbox Code Playgroud)
你很好.就像我说的,没有什么神奇的.你必须让他们分开.
我建议你看看其他框架,看看它们如何接近MVC.这并不是说你应该复制或使用它们,而是试着去了解它们是如何进行MVC的.另请参阅Rasmus Lerdorf的文章The no-framework PHP MVC框架