MVC in php
控制器,有的地方又称之为Action。 它是MVC中的C,控制视图展现 它会担负很多任务。要接受请求,要选择M处理,最后选择V来显示。 一般在php中大多数情况下他都作为业务的处理层了。 比如对传入参数进行处理,对显示元素进行组装。 它的实现一般也两类 通过对
控制器,有的地方又称之为Action。
它是MVC中的C,控制视图展现
它会担负很多任务。要接受请求,要选择M处理,最后选择V来显示。
一般在php中大多数情况下他都作为业务的处理层了。
比如对传入参数进行处理,对显示元素进行组装。
它的实现一般也两类
通过对象的映射或者是通过文件包含的形式
最简单当然就是通过文件包含的形式。
比如访问index.php/aa/bb/cc
可以让程序加载aa目录下的bb文件
然后之后的作为参数注入,这个过程在路由模块中实现
另外的一种就是通过类的方式
一般说来以类方式实现的控制器大致会长成这样
<span><span><span></span></span>php</span> <span>class</span> IndexController <span>extends</span> CController{ <span>public function</span> sae() { <span>echo</span> <span>'Hello'</span>; } }
现在有一个请求index.php/index/sae
方法也是多种多样的~
首先我可以从url上得到参数
<span>$action</span> = <span>'index'</span>;
<span>$method</span> = <span>'sae'</span>;
然后通过$ac = new $action();
可以得到一个新的IndexController实例
然后再调用$ac->$method();
就阔以了。
另外的方式就是通过反射来实现。
以上两种方式都会出现一个问题,如果我即将包含的这个文件IndexController.php中包含错误
或者是在sae() (执行过程中) 出现了错误被终止。我怎样去捕获它呢?
在php的oop中,exception的处理并没有java那样严格。不会强制要求throws Exception
比如以下的例子
class a {
public function expt() {
throw new Exception('wa!');
}
}
class c {
public function combinea() {
$a = new a();
$a->expt();
}
}
$c = new c();
$c->combinea();
它会抛出一个<strong>Fatal error: Uncaught exception 'Exception'</strong>
但是在php5.2的某些版本,他什么都不会输出,而且你也不能用try catch来捕获$c->combinea()抛出的异常。
最怕的不是出错,而是出了错什么都没有记录。增加了你debug的难度。
然后是另外一个问题~
如果我想要访问的地址是
index.php/index/list
<span><span><span></span></span>php</span>
<span>class</span> IndexController <span>extends</span> CController{
<span> public function</span> <span>list</span>() {
<span>echo</span> <span>'Hello'</span>;
}
}
注意! list这个词是php的预留词,所以这个文件语法有问题,包含的时候就会报错。
一些框架的解决方案是方法前统一加个词 比如action
控制器大致是这样的
<span><span><span></span></span>php</span>
<span>class</span> IndexController <span>extends</span> CController{
<span> public function</span> <span>actionlist()</span> {
<span>echo</span> <span>'Hello'</span>;
}
}
Controller也会需要参数的获取,模型载入,库载入等等工作。
所以框架对这层进行封装,这些工作会在基类CController上实现。
这也是为什么90%的框架都需要让你继承它的基类。
比如获取参数,涉及到安全性,在框架层面就可以容易封装。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
