La creazione di联合国控制器
La creazione di联合国控制器
Il我方progetto del留言板e gia attivo隋服务器di produzione马abbiamo imbrogliato联合国阿宝”。Il progetto非哈又nessuna pagina。L 'homepage risulta essere una noiosa pagina di使404人。Sistemiamo谈心。
arriva Quando una richiesta HTTP / la主页(http://localhost: 8000 /
),Sob娱乐下载ymfony cerca di trovare una机械的格瓦拉corrisponda艾尔德拉percorso richiesta(/
在questo卡索)。Una机械的e il collegamento交易il percorso德拉richiesta e una funzione可调用的di PHP切吧rispostaHTTP / quella richiesta。
让人们funzioni“可赎回”园子chiamate“控制器”。在Syob娱乐下载mfony中,洛杉矶maggior杰克逊一些控制器e implementata PHP来的架势。Possiamo creare una架势di questo蒂波在modo manuale ma, siccome ci去处桌面veloci vediamo年青一代Symfony ci aiutare来。ob娱乐下载
Essere pigri con MakerBundle
每generare一些控制器无sforzo, possiamo usare pacchettoob娱乐下载symfony / maker-bundle
,特质e stato installato杰克逊del pacchetto来webapp
。
MakerBundle ci aiuta generare联合国di抚慰心灵的焦点在于多样化。Lo useremo甚spesso questo libro。Ogni generatore“联合国第一e e definito合唱我comandi fanno杰克逊del名称空间一些comandi使
。
Il第一列表
德拉控制台di Symfony eob娱乐下载lenca合唱我comandi disponibili音调甚联合国拿督名称空间;每scoprire possiamo usarlo合唱我generatori forniti da MakerBundle:
1
美元ob娱乐下载symfony控制台使列表
每拉configurazione Scegliere联合国formato
初的di creare il控制器del progetto dobbiamo decidere定性formati di configurazione vogliamo utilizzare。ob娱乐下载Symfony supporta nativamente YAML、XML、PHP e Attributi PHP。
每拉configurazione relativa ai pacchetti,YAMLe la scelta米利。每拉cartella Questo e il formato utilizzato配置/
。Spesso, quando si设施联合国诺沃pacchetto la ricetta del pacchetto stesso aggiungera con estensione联合国诺沃文件.yaml
而洋葱cartella。
每拉PHP relativa al自由配置,gliattributi园子温una scelta米利poiche园子的nel配置stesso。arriva Prendiamo在内questo esempio: quando una richiesta 'applicazione, la configurazione deve可怕的一个Symfony的特质specob娱乐下载ifico控制器(una架势PHP) dovra gestirla。Se utilizzassimo联合国formato di configurazione交易YAML、XML e PHP,由于文件sarebbero coinvolti (il e di configurazione il文件del控制器PHP)。Utilizzando gli attributi拉configurazione莎拉inclusa direttamente所以nella架势del控制器。
表现一个sapere il省del pacchetto格瓦拉ci服务installare per una determinata funzionalita吗?Il稍delle回非c本部bisogno di saperlo infatti Symfony ci diraob娱乐下载 Il省del pacchetto da installare attraverso一些messaggi d 'errore。Lanciare il第一ob娱乐下载symfony控制台:消息
不主张installato pacchetto信使
,每esempio avrebbe sollevato联合国'eccezione contenente联合国suggerimento riguardo科installare。
Generare联合国控制器
初Creiamo il往来帐控制器tramite il第一:控制器
:
1
美元ob娱乐下载ConferenceController symfony控制台:控制器
Il第一克雷亚una架势ConferenceController
所以nella cartellasrc /控制器/
。La架势generata莎拉composta da配置predefinito e pronto每essere messo punto:
L 'attributo#(路线(“/会议”,名字:“会议”))
e cio格瓦拉仁德metodoindex ()
联合国控制器(la e assieme al自由配置切configura)。
Quando si visita/会议
nel浏览器,il控制器viene eseguito e una risposta viene restituita。
每farla Modifichiamo la生搬硬套corrispondere真主安拉主页:
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 {- #[路线(“/会议”,名字:“会议”))+ #[路线(“/”,名字:“主页”))公共函数指数():响应{返回$ this - >渲染(会议/ index . html。嫩枝”,(
Il parametro的名字
德拉罗达萨拉有益的qualora volessimo票价riferimento真主安拉主页所有'interno德尔自由配置。Invece di scrivere direttamente percorso/
potremo utilizzare德拉省生搬硬套。
艾尔posto餐馆德拉pagina predefinita, restituiamo una单纯的pagina HTML:
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+);}}
Aggiorniamo il浏览器:
La responsabilita主要di e di restituire una quella联合国控制器响应
HTTP / la richiesta。
Siccome la rimanente杰克逊del capitolo riguarda配置切非vorremo memorizzare, facciamo提交一些cambiamenti奥拉:
1 2
美元git添加。美元git commit - m“添加索引控制器”
Aggiunta di联合国“复活节彩蛋”
每dimostrare来una risposta possa sfruttare le informazioni provenienti dalla richiesta, aggiungiamo联合国短笛复活节彩蛋(contenuto nascosto)。Ogni volta格瓦拉la主页" una查询字符串你好=法比安
,每salutare la aggiungiamo del服务角色:
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 espone我德拉蒂richiesta attraverso联合国oggetto请求
。Quando ob娱乐下载Symfony rileva联合国parametro del控制器con questo蒂波,passa automaticamente la richiesta attraverso questo oggetto: possiamo utilizzarlo每ottenere l 'elemento的名字
dalla查询字符串e aggiungere联合国<标题>
艾尔titolo德拉pagina。
浏览器il percorso Proviamo visitare在联合国/
e poi/ ?你好=法比安
每vedere differenza。
请注意
注:la chiamatahtmlspecialchars函数()
服务/ evitare problemi di XSS(跨站点脚本)。在modo automatico,科萨拉fatta quando utilizzeremo联合国sistema appropriato /我的模板。
戴尔'URL Avremmo传递potuto rendere il省组成部分:
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函数(名字)美元);}
洛杉矶的组成部分{名称}
德拉罗达e联合国parametro di生搬硬套dinamico: funziona segnaposto来。Possiamo dunque visitare/你好
e poi/ hello /法比安
attraverso il浏览器/ ottenere lo stesso risultato di的。Possiamo inoltre ottenere ilvalore德尔parametro{{名称}}
con lo stesso aggiungendo una variabile al控制器省(篇、美元的名字
)。
Annulliamo le modifiche格瓦拉abbiamo appena脂肪:
1
美元git checkout src /控制器/ ConferenceController.php
1 2
美元src /控制器/ ConferenceController.php git重置头美元git checkout src /控制器/ ConferenceController.php
Variabili di调试
La funzionedump ()
di ob娱乐下载Symfony e联合国ottimo aiuto / il调试。E自始至终disponibile E ci consente di eseguire il转储di variabili complesse una福马贝拉E interattiva。
Cambiamo momentaneamente il文件src /控制器/ ConferenceController.php
每eseguire il转储戴尔'oggetto请求:
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 > <身体>
Quando ricarichiamo la pagina萨拉相信notare la nuova icona“目标”所以nella barra degli strumenti;ci consentira di inspezionare il转储。E相信苏cliccare迪艾萨/ accedere una pagina鸽子la navigazione莎拉更单纯的:
Annulliamo le modifiche格瓦拉abbiamo appena脂肪:
1
美元git checkout src /控制器/ ConferenceController.php
1 2
美元src /控制器/ ConferenceController.php git重置头美元git checkout src /控制器/ ConferenceController.php
而oltre
- Il sistema迪生搬硬套di ob娱乐下载Symfony;
- 教程苏生搬硬套,控制器e pagine SymfonyCastsob娱乐下载;
- Attributi PHP:
- Il componenteHttpFoundation;
- Attacchi di sicurezzaXSS(跨站点脚本);
- 伊尔备忘单del componente delle生搬硬套di Symfonyob娱乐下载。