艾宁控制器
艾宁控制器
Unser Gästebuchprojekt ist bereits auf dem Server für den Produktivbetrieb live, aber wir haben ein wenig geschummelt: Das Projekt hat noch keine Webseiten。模具主页zeigt eine langweilige 404-Fehlerseite。Das wollen wir gleich korrigieren。
Wenn ein HTTP-Request (HTTP-Anfrage) eintrifft, wie z. B. für die主页(http://localhost:8000/
), versucht ob娱乐下载Symfony, eine路线Zu finden, der demRequest-Pfadentspricht(这里/
).风景明信片路线ist die verindung zwischen dem Request-Path (Anforderungspfad) und einemPHP调用- einer Funktion, die diehttp响应(HTTP-Antwort) für diesen请求erzeugt. exe。
Diese Callables werden als“控制器”bezeichnet。在Syob娱乐下载mfony sind die meisten Controller als PHP-Klassen implementiert。你能看见我的灵魂,我的灵魂,我的灵魂,我的灵魂。ob娱乐下载
错误的制造包
Um Controller mühelos zu generieren, können wir dasob娱乐下载symfony / maker-bundle
-Paket nutzen, welches with themwebapp
-Paket installiert wurde。
Das Maker-Bundle hilft Dir, viele verschiedene Klassen zu generieren。我们在一起,在一起,在一起。Jeder "Generator"是einem Befehl definert und alle Befehle sinind Teil des使
-Befehl-Namespaces。
Der in Der ob娱乐下载Symfony-Console eingebaute列表
-Befehl listet alle Befehle auf, die unter einem bestimmten Namespace verfügbar信德;verwende ihn,嗯alle vom Maker-Bundle bereitgestellten Generatoren zu ermitteln:
1
$ob娱乐下载Symfony控制台列表制作
Ein konfigationsformat auswählen
以前的项目控制,müssen以前的项目控制,welches Konfigurationsformat。ob娱乐下载Symfony unterstützt YAML, XML, PHP和PHP-属性nativ。
毛死在Bezug auf Pakete配置坚持YAML死得最好,沃尔。格式,即时配置/
Verzeichnis verwendet wild。Häufig, wenn Du ein neues Paket installierst, wid das Recipe dieses Pakets eine neue Datei mit der Endung in.yaml
祖diesem Verzeichnis hinzufügen。
毛死php代码配置信德属性eine bessere Wahl, da sie nahe am Code hinterlegt sinind。Lass mich das an einem Beispiel erklären: Wenn eine Request eingeht, muss eine Konfiguration ob娱乐下载Symfony mitteilen, dass der Requestpfad von einem bestimmten Controller (einer PHP-Klasse) behandelt werden soll。byder Verwendung von YAML-, XML- oder php - konfigationsformaten sind zwei Dateien beteiligt (die konfigationsdatei和die PHP-Controller-Datei)。在控制器-克拉斯的配置指导下,用Verwendung von Attributen erfolgt die configuration direct。
Du fragst dich vielleicht, wie Du den Paketnamen erraten kannst, den Du für die安装eines bestimmten特征eingeben必须?Meistens must du es niht wissen。在维也纳Fällen enthält Symfonob娱乐下载y In seinen Fehlermeldungen das zu installierende Paket。Der Aufrufob娱乐下载symfony:消息
ohne das信使
-Paket zum Beispiel wäre mit einer Exception beendt worden, die einen Hinweis auf die Installation des richtigen Pakets enthält。
艾宁控制器erzeugen
Erstelle Deinen ersten控制器超级丹:控制器
Befehl:
1
$ob娱乐下载symfony控制台make:controller ConferenceController
“Befehl erstellt eine”ConferenceController
-Klasse imsrc /控制器/
-Verzeichnis。标准代码:jet angep助理werden kann
达斯#[路由('/conference',名称:'conference')]
- attribute macht dieindex ()
-Methode zu einem Controller (die Konfiguration befindet sich neben dem Code, den sie konfiguriert)。
Wenn Du在einem浏览器/会议
aufrufst, bird der Controller ausgeführt und eine Response(蚁草)zurückgegeben。
Passe die Route an, damit sie mit der主页übereinstimmt:
1 2 3 4 5 6 7 8 9 10 11
——/ src /控制器/ ConferenceController.php+ + + b / src /控制器/ ConferenceController.php@@ -8,7 +8,7使用Symfonob娱乐下载y\组件\路由\注释\路由;AbstractController类- #[路由('/conference',名称:'app_conference')]+ #[路由('/',名称:'主页')]公共函数index(): Response {return $this->render('conference/index.html. html. html. html. html)嫩枝”,(
Der的名字
der Route wd nützlich sein, wenn wir die主页im Code referenzieren wollen。Anstatt/
als Pfad anzugeben(硬编码),verwenden wir den Namen der Route。
Anstelle der standardmäßig gerenderten Seite geben wir einfache HTML-Seite zurück:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
——/ src /控制器/ ConferenceController.php+ + + b / src /控制器/ ConferenceController.php@@ -11,8 +11,13 @@ class ConferenceController extends AbstractController #[路由('/',名称:'主页')]公共函数索引():Response {-返回$this->render('conference/index.html. html. render('conference/index.html. html)嫩枝”,(- 'controller_name' => 'ConferenceController',-]);+返回新的响应(<<+ < html >身体+ < >+ 身体+ < / >+ < / html >+ EOF+);}}
Aktualisiere den浏览器:
Die Hauptaufgabe eines控制器best darin, eine HTTP-响应
für den请求zurückzugeben。
Da der letzte Teil dieses Kapitels über Code ist, den wir niht代表werden, lass ununser Änderungen committed。
1 2
$Git添加。$Git提交-m“添加索引控制器”
Ein复活节彩蛋hinzufügen
Um zu zeigen, wie eine响应信息audem请求nutzen kann, fügen wir ein kleines复活节彩蛋hinzu。Wann immer die首页einen查询字符串wie你好=法比安
enthält, fügen wir einen文本hinzu,嗯死亡人祖begrüßen:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
——/ src /控制器/ ConferenceController.php+ + + b / src /控制器/ ConferenceController.php@@ -3,17 +3,24 @@名称空间的应用程序\控制器;控制器使ob娱乐下载用Symfony \包\ FrameworkBundle \ \ AbstractController;+使用Syob娱乐下载mfony \ HttpFoundation \ \组件请求;组件使用ob娱乐下载Symfony \ \ HttpFoundation \反应;使用Syob娱乐下载mfony \组件\路由\注释\路线;类ConferenceController扩展AbstractController{#[路由('/',名称:'主页')]—public function index():表示响应+公共函数索引(Request $ Request):响应{+ $greet = ";+ if ($name = $request->query->get('hello')) {+ $greet = sprintf('Hello %s!< / h1 >”,htmlspecialchars函数(名字)美元);
+}+返回新的响应(<< . txt+ $问候