Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个controller.php或创建多个like“;login.php“;例如_Php_Model View Controller_Controller - Fatal编程技术网

创建一个controller.php或创建多个like“;login.php“;例如

创建一个controller.php或创建多个like“;login.php“;例如,php,model-view-controller,controller,Php,Model View Controller,Controller,我对PHP MVC这个世界还很陌生,所以对于任何显而易见的答案,我深表歉意 说到控制器,我应该创建多个单独的文件,比如“login.php”和“logout.php”,然后让登录表单操作指向“Controller/login.php”吗 form action=“controller/login.php”method=“post” 或 form action=“controller/controller.php”method=“post” 如果第二个是正确的,我应该在controller.php

我对PHP MVC这个世界还很陌生,所以对于任何显而易见的答案,我深表歉意

说到控制器,我应该创建多个单独的文件,比如“login.php”和“logout.php”,然后让登录表单操作指向“Controller/login.php”吗

form action=“controller/login.php”method=“post”

form action=“controller/controller.php”method=“post”

如果第二个是正确的,我应该在controller.php中包含或扩展“login.php”(假设它仍然存在于不同的文件中)吗

我只是想知道,从设计的角度来看,这是否正确。我读过: ,这似乎是相似的(虽然语言不同),但我仍然不确定我是否理解


提前感谢,

控制器通常不仅仅是一个动作。控制器表示特定模块的一组操作。例如,一个用户控制器将有典型的CRUD操作,然后可能有一个登录/注销操作,也可能有一个寄存器(在create MABLE下)或忘记密码操作。如果你在写博客,一个帖子/条目控制器很可能只有典型的CRUD操作,也许还有一个评论操作。因此,基本上每个模块甚至每个模型都有一个控制器

您的所有控制器都应该扩展一个类似的基础,但整个项目的基础不必相同

您的表单将如下所示:
action=“controllerName/actionName”
action=“controller.php?q=controllerName/actionName
,具体取决于mod rewrite设置的方式


就视图而言,每个控制器操作可能有多个视图(取决于POST或GET数据),但每个操作都有一个视图是非常标准的。

请阅读并思考它如何应用于。很棒的链接,我会让它们放在手边。基本上,因为“login.php”和“logout”“这是两个不同的动作,我应该作为两个不同的控制器。谢谢Tereško:)你有点误解了。控制器通常负责根据用户输入更改模型层和(有时)当前视图实例的状态。像“登录”和“注销”这样的操作与用户输入的身份验证相关,因此应该是同一控制器的一部分,当您说它们与同一控制器关联时,您的意思是:控制器-->身份验证-->login.php&logout.php?否。我的意思是
$controller=new Controllers\authentication($serviceFactory,$view)$控制器->后登录($request)明白了,所以我将它们保存在两个单独的文件中,并指向action=“controllerName/actionName”,在我的例子中是action=“controllers/login.php”。我非常感谢您的时间和合作。Tim.-1:控制器与CRUD无关,模型是一个层而不是任何单个类或实例,控制器不需要扩展同一个超类,视图不是模板,最后,您推荐的路由方案是不可持续的。基本上,除了这个答案中的前两句之外,其他都是错误的。控制器与CRUD无关,它们与动作有关,正如我在第二句中所说的。我给出了一个与控制器相关的动作示例。我从来没有提到过模板。。。所以我不知道你从哪里得到的。我甚至没有提到路由,只是举了一个例子,说明如何指定控制器和操作。下次试试看@tereško