POST控制器适用于php mvc吗?
我正在从头开始创建一个定制的MVC风格的框架,现在我需要实现代码来控制POST控制器适用于php mvc吗?,php,model-view-controller,class,Php,Model View Controller,Class,我正在从头开始创建一个定制的MVC风格的框架,现在我需要实现代码来控制POST上发生的事情 目前,我有一个main index.php,它充当控制器并将数据传递给其他控制器,例如: profilecontroller.class.php forumcontroller.class.php 目前,我看到了两个选项,即POST控制器可以去哪里 第一种方法 首先,对于任何页面上都可能出现的站点范围内的帖子,如登录,我会在第一个index.php中使用类似的方法将所有帖子重定向到特定的帖子控制器,然后将
POST
上发生的事情
目前,我有一个main index.php,它充当控制器并将数据传递给其他控制器,例如:
profilecontroller.class.php
forumcontroller.class.php
目前,我看到了两个选项,即POST控制器可以去哪里
第一种方法
首先,对于任何页面上都可能出现的站点范围内的帖子,如登录,我会在第一个index.php中使用类似的方法将所有帖子重定向到特定的帖子控制器,然后将数据发送到要处理的模型:
if($_POST)
//post controller, works on specific form id's
替代方法
我看到的另一个选项是将POST
标识符构建到模型构造部分中,但我认为这不是很容易管理/明智的,因为它们总是被检查并导致加载更多的代码
有没有好的/简单的例子
我正在创建尽可能轻的mvc,这就是我从头开始的原因。这是我的默认控制器:
<?php
Class Controller_Home{
public $Registery = null;
final public function __construct($Registery){ $this->Registery = $Registery; }
final public function Init($Method=null){
# Quelle action on fait ?
if($Method){
$Split = explode('_', $Method);
$MethodName = 'Action';
foreach($Split as $Splitted){
$MethodName.= '_'.ucfirst($Splitted);
}
if(method_exists($this, $MethodName)){
$this->$MethodName();
} else {
echo '404';
die;
}
} else {
$this->Action_Default();
}
}
final public function Action_Default(){
$this->Registery->Import('Library.Account');
var_dump($this->Registery->Account);
echo 'Default Home';
}
}
这是我的默认控制器:
<?php
Class Controller_Home{
public $Registery = null;
final public function __construct($Registery){ $this->Registery = $Registery; }
final public function Init($Method=null){
# Quelle action on fait ?
if($Method){
$Split = explode('_', $Method);
$MethodName = 'Action';
foreach($Split as $Splitted){
$MethodName.= '_'.ucfirst($Splitted);
}
if(method_exists($this, $MethodName)){
$this->$MethodName();
} else {
echo '404';
die;
}
} else {
$this->Action_Default();
}
}
final public function Action_Default(){
$this->Registery->Import('Library.Account');
var_dump($this->Registery->Account);
echo 'Default Home';
}
}
在RESTful设置中,您通常会有一个对象的控制器,比如说
新闻
,然后执行诸如添加
、编辑
、删除
等操作
在您的操作中,您应该断言应该使用什么HTTP方法来访问该方法(如果应该的话)。例如:
<?php
class NewsController extends AbstractController {
public function save() {
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header('HTTP/1.1 405 Method Not Allowed');
die('Please use POST.');
}
// carry on knowing we're working with a POST request
}
}
希望对您有所帮助。在RESTful设置中,您通常会为一个对象设置一个控制器,比如说
news
,然后执行add
、edit
、delete
等操作
在您的操作中,您应该断言应该使用什么HTTP方法来访问该方法(如果应该的话)。例如:
<?php
class NewsController extends AbstractController {
public function save() {
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header('HTTP/1.1 405 Method Not Allowed');
die('Please use POST.');
}
// carry on knowing we're working with a POST request
}
}
希望有帮助
<?php
class HomeHandler {
public function get() {
echo 'Hello, world!';
}
public function post() {
echo 'Try performing a GET request for the home page, buddy.';
}
// and so on...
}