即使控制器aanmaken
即使控制器aanmaken
Ons gastenboek-project al住op productieservers,低平火山口hebben甚至beetje vals gespeeld。Het项目heeft钉geen webpagina。主页是即使saaie 404 - foutpagina。我们dat oplossen变迟。
Wanneer er甚至http请求binnenkomt, zoals voor主页(http://localhost: 8000 /
),甚至probeertob娱乐下载 Symfony路线te vinden死overeenkomt het会面aanvraagpad(/
在这里)。即使路线是链接tussen het aanvraagpad en甚至PHP调用,即使functie de死去http响应voor deze aanroep creeert。
Deze可调用的沃顿genoemd“控制器”。在Syob娱乐下载mfony zijn meeste控制器geimplementeerd als php类。我kunt佐薇’类handmatig梅根,低平火山口omdat我们graag节奏梅根,变迟我们皇后区kijken锄Symfony ons菅直人helpen。ob娱乐下载
他zijn遇到de制造商包
Om moeiteloos控制器te genereren, kunnen我们德ob娱乐下载symfony / maker-bundle
包gebruiken,死geinstalleerd werd als onderdeel van dewebpack
包中。
制造商包helpt我om veel te genereren verschillende类。我们在说zullen说丹书恒gebruiken boek。Elke“发电机”wordt gedefinieerd甚至突击队en阿莱突击队的梅根deel外的van de使
命令名称空间。
Het ingebouwde列表
突击队van de Symfonyob娱乐下载控制台geeft甚至overzicht范阿莱突击队的死beschikbaar zijn出席甚至bepaalde名称空间;gebruik het om阿莱generatoren te ontdekken死门德制造商包沃顿aangeleverd:
1
美元ob娱乐下载symfony控制台使列表
Het kiezen范甚至configuratie-indeling
Voordat我们德eerste控制器van het项目aanmaken moeten我们eerst beslissen维尔克configuratie-indeling我们willen gebruiken。ob娱乐下载Symfony ondersteunt standaard YAML、XML、PHP attributen PHP。
Voorconfiguratie遇到betrekking合计包是YAMLde beste keuze。说的是het formaat dat de配置/
目录wordt gebruikt。Wanneer我甚至nieuwe包installeert zal het配方vaak甚至nieuw van de包.yaml
河畔-bestand toevoegen死的地图。
Voorconfiguratie遇到betrekking合计php代码zijnattributen即使betere keuze omdat泽bij de代码zijn gedefinieerd。本土知识zal het uitleggen甚至voorbeeld会面。Wanneer甚至请求binnenkomt,酩悦甚至bepaalde configuratie Symfony vertellob娱乐下载en dat het请求路径门甚至specifieke控制器酩悦沃顿afgehandeld(甚至php类)。Bij het gebruik van YAML、XML的PHP-configuratie-indeling gaat het om矫饰的bestanden (het configuratiebestand en het PHP控制器bestand)。Bij het gebruik van attributen wordt de configuratie gedaan直接在de控制器类。
我vraagt我misschien af锄我德packagenaam kunt raden死我voor甚至functionaliteit酩悦installeren吗?Meestal hoef我het不行te weten。在veel gevallen verwijst Syob娱乐下载mfony naar het te installeren包zijn foutmeldingen。Wanneer我ob娱乐下载symfony:消息
uitvoert探测器bijvoorbeeld het信使
包zal er甚至foutmelding optreden遇到daarin甚至暗示在het installeren van het juiste包。
即使控制器genereren
Maak jouw eerste控制器通过het感染。:控制器
突击队:
1
美元ob娱乐下载ConferenceController symfony控制台:控制器
Het突击队creeert甚至ConferenceController
海尔集团在德src /控制器/
地图。De gegenereerde类bestaat外的窟样板代码死klaar om te沃顿uitgebreid:
德#(路线(“/会议”,名字:“app_conference”))
-attribuut窟是德index ()
方法合计即使控制器maakt (de configuratie国家bij de代码死说configureert)。
在浏览器甚至Wanneer我/会议
bezoekt wordt de控制器uitgevoerd en wordt er teruggestuurd甚至反应。
不是德河畔路线zodat deze overeenkomt遇到de主页:
1 2 3 4 5 6 7 8 9 10 11
- - - / src /控制器/ ConferenceController.php+ + + b / src /控制器/ ConferenceController.php@@ 8 7 + 8 7 @@使用Symob娱乐下载fony \组件\路由\注释\路线;类ConferenceController延伸AbstractController {- #[路线(“/会议”,名字:“app_conference”))+ #[路线(“/”,名字:“主页”))公共函数指数():响应{返回$ this - >渲染(会议/ index . html。嫩枝”,(
德路的名字
handig als我们在代码de naar de主页willen verwijzen。在plaats van het/
垫硬te coderen, gebruiken我们德拿安van de路线。
变迟我们甚至eenvoudige HTML-pagina terugsturen, plaats van de standaard gerenderde pagina:
1 2 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 @@类ConferenceController延伸AbstractController #(路线(“/”,名字:“主页”)]公共函数指数():反应{-返回$ this - >渲染(会议/ index . html。嫩枝”,(——“controller_name”= >“ConferenceController”,-]);+新响应(< < <返回EOF+ < html >+ <身体>+ < img src = " /图片/在建。gif " / >身体+ < / >+ < / html >+ EOF+);}}
Vernieuw de浏览器:
De hoofdverantwoordelijkheid van即使控制器het terugsturen van甚至HTTP响应
voor het verzoek。
河畔het einde van het hoofdstuk zullen我们onze代码wijzigingen terugdraaien。变迟我们daarom onze wijzigingen怒committen:
1 2
美元git添加。美元git commit - m“添加索引控制器”
甚至复活节彩蛋toevoegen
Om长te tonen锄即使响应菅直人profiteren van de informatie外的het verzoek,我们即使kleine变迟复活节彩蛋toevoegen。甚至Wanneer de主页查询字符串bevat zoals你好=法比安
,我们voegen窟tekst脚趾om de persoon te begroeten:
1 2 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.php24 @@ @@ 3、17 + 3名称空间的应用程序\控制器;控制器使ob娱乐下载用Symfony \包\ FrameworkBundle \ \ AbstractController;+使用Syob娱乐下载mfony \ HttpFoundation \ \组件请求;组件使用ob娱乐下载Symfony \ \ HttpFoundation \反应;使用Syob娱乐下载mfony \组件\路由\注释\路线;类ConferenceController延伸AbstractController{#[路线(“/”,名字:“主页”))公共函数指数():反应+公共函数指数(请求请求美元):反应{+ $迎接=”;+如果($ name = $请求- >查询- >获取('你好')){+ $迎接= sprintf (“< h1 > % s你好!< / h1 >”, htmlspecialchars函数(名字)美元);+}+新的响应(< < <返回EOF < html > <身体>+ $问候< img src = " /图片/在建。gif " / > < /身体> < / html >
ob娱乐下载Symfony maakt de gegevens van het verzoek beschikbaar通过甚至请求
对象。Als ob娱乐下载Symfony甚至controller-argument ziet deze类Als typehint相遇,知道het automatisch dat het河畔说论点周素卿门酩悦的算法。我们kunnen说gebruiken om het的名字
项目外的查询字符串te halen en河畔het甚至<标题>
标题脚趾te voegen。
Bezoek丹/
在浏览器甚至en vervolgens/ ?你好=法比安
om het verschil te虽然早。
请注意
我们op de叫htmlspecialchars函数()
om XSS-kwetsbaarheden te vermijden。我们是专业dat automatisch voor ons zal沃顿gedaan wanneer我们overschakelen naar甚至goede模板引擎。
海登我们的书德拿安onderdeel kunnen梅根van de URL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
- - - / src /控制器/ ConferenceController.php+ + + b / src /控制器/ ConferenceController.php@@ 9日11 + 9,11 @@使用Symob娱乐下载fony \组件\路由\注释\路线;类ConferenceController延伸AbstractController {- #[路线(“/”,名字:“主页”))公共函数指数(请求美元请求):反应+ #[路线(“/ hello /{名称}”,名字:“主页”))+公共函数指数(string name = "):美元的回应{$ = "打招呼;——如果($ name = $请求- >查询- >获取('你好')){+如果(美元的名字){$迎接= sprintf (“< h1 > % s你好!< / h1 >”, htmlspecialchars函数(名字)美元);}
Het{名称}
即使dynamische deel van de路线routeparameter——het werkt als甚至通配符。我菅直人ν/你好
在浏览器甚至bezoeken en daarna/ hello /法比安
om hetzelfde resultaat te krijgen。我直waardevan de{名称}
参数verkrijgen门甚至controllerparameter dezelfde会面拿安脚趾te voegen。杜美元的名字
。
Draai de wijzigingen死我们净gemaakt hebben terug:
1
美元git checkout src /控制器/ ConferenceController.php
1 2
美元src /控制器/ ConferenceController.php git重置头美元git checkout src /控制器/ ConferenceController.php
Variabelen Debuggen
即使geweldige调试助手de Symfonyob娱乐下载dump ()
functie。Deze是altijd beschikbaar en laat het脚趾om ingewikkelde variabelen在即使aangenaam en interactief formaat te dumpen。
不是tijdelijksrc /控制器/ ConferenceController.php
河畔om het请求对象te dumpen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
- - - / src /控制器/ ConferenceController.php+ + + b / src /控制器/ ConferenceController.php17 @@ @@ 3 14 + 3名称空间的应用程序\控制器;控制器使ob娱乐下载用Symfony \包\ FrameworkBundle \ \ AbstractController;+使用Syob娱乐下载mfony \ HttpFoundation \ \组件请求;组件使用ob娱乐下载Symfony \ \ HttpFoundation \反应;使用Syob娱乐下载mfony \组件\路由\注释\路线;类ConferenceController延伸AbstractController{#[路线(“/”,名字:“主页”))公共函数指数():反应+公共函数指数(请求请求美元):反应{美元+转储(请求);+新的响应(< < <返回EOF < html > <身体>
让op het nieuwe“目标”icoontje de工具栏wanneer我们de pagina vernieuwen;我们国家我脚趾om转储te inspecteren。公里er op om toegang te krijgen合计甚至volledige pagina waar我eenvoudiger菅直人navigeren:
Draai de wijzigingen死我们净gemaakt hebben terug:
1
美元git checkout src /控制器/ ConferenceController.php
1 2
美元src /控制器/ ConferenceController.php git重置头美元git checkout src /控制器/ ConferenceController.php
佛得角服务员
- Het ob娱乐下载Symfony路由-systeem;
- ob娱乐下载SymfonyCasts路线、控制器和页面教程;
- PHP attributen;
- HetHttpFoundation分;
- XSS(跨站点脚本)beveiligingsaanvallen;
- 德ob娱乐下载Symfony路由小抄。