在Symfony创建您的第一个页面ob娱乐下载

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.3,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

在Symfony创建您的第一个页面ob娱乐下载

创建一个新的页面——无论是一个HTML页面或一个JSON端点——是一个简单的两个步骤:

  1. 创建一个路线(如:路线是URL。/对)页面,点一个控制器;
  2. 创建一个控制器:一个控制器构建页面的功能编写。你把传入的请求信息,并使用它来创建一个Symfonyob娱乐下载响应对象,它可以容纳HTML内容,或任何其他一个JSON字符串。

就像在网上一样,每个交互都是由一个HTTP请求。你的工作是纯粹和简单:明白,请求并返回一个响应。

创建一个页面:路线和控制器

提示

在继续之前,确保您已经阅读了安装章,可以访问你的新Symfony应用程序在浏览器中。ob娱乐下载

假设您希望创建一个页面/幸运数字生成一个幸运(随机)并打印数量。为此,创建一个类和一个方法里面,当有人去执行/幸运数字:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/ / src / AppBundle /控制器/ LuckyController.php名称空间AppBundle\控制器;使用Sensio赞助\\FrameworkExtraBundle\配置\路线;使用ob娱乐下载\组件\HttpFoundation\响应;LuckyController{/ * * *@Route(“/幸运数字”)* /公共函数numberAction(){美元数量=兰德(0,One hundred.);返回响应(“< html > <身体>的幸运数字:美元数量“< /身体> < / html >”);}}

之前,对其进行测试!

http://localhost: 8000 /幸运号码

提示

如果你建立一个适当的虚拟主机Apache或Nginx、替换http://localhost: 8000你的主机名,比如http://ob娱乐下载symfony.dev/app_dev.php/lucky/number

如果你看到一个幸运数字印制回你,恭喜你!但是在你跑去买彩票,看看这是如何工作的。

@Route以上numberAction ()被称为一个注释它定义了URL模式。你也可以写在YAML(或其他格式):读到这个的路由一章。事实上,大多数路由实例文档的标签显示每个格式看起来如何。

下面的方法注释-numberAction——被称为控制器和你建立页面。唯一的规则是,一个控制器必须返回一个Symfoob娱乐下载ny响应对象(甚至你会学会弯曲这个规则最终)。

创建一个JSON响应

响应对象你还在你的控制器可以包含HTML、JSON或者二进制文件像一个图像或PDF。您可以轻松地设置HTTP头或状态代码。

假设您希望创建一个返回的JSON端点的幸运数字。添加第二个方法LuckyController:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日
/ / src / AppBundle /控制器/ LuckyController.php/ /……LuckyController{/ /……/ * * *@Route(“/ api /幸运数字”)* /公共函数apiNumberAction(){美元数据=数组(“lucky_number”= >兰特(0,One hundred.),);返回响应(json_encode (美元数据),200年,数组(“内容类型”= >“application / json”));}}

试着在你的浏览器:

http://localhost: 8000 / api /幸运号码

你甚至可以缩短这与方便JsonResponse:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日
/ / src / AppBundle /控制器/ LuckyController.php/ /……/ / - - >不要忘记这个新使用的声明使用ob娱乐下载\组件\HttpFoundation\JsonResponse;LuckyController{/ /……/ * * *@Route(“/ api /幸运数字”)* /公共函数apiNumberAction(){美元数据=数组(“lucky_number”= >兰特(0,One hundred.),);/ /调用json_encode和设置content - type头返回JsonResponse (美元数据);}}

动态URL模式:/幸运/数量/{数}

哇,你做的很好!但Symob娱乐下载fony的路由可以做更多的事。现在假设你想让用户可以去/ /数字/幸运5生成5幸运数字。有一个更新途径{通配符}结尾部分:

  • 注释
  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/ / src / AppBundle /控制器/ LuckyController.php/ /……LuckyController{/ * * *@Route(“/幸运/数量/{数}")* /公共函数numberAction(){/ /……}/ /……}

因为{数}“占位符”,页面的URL不同的:现在的url匹配工作/ * /幸运号码——例如/ /数字/幸运5。最好的部分是,您可以访问这个值并使用它在你的控制器:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24
/ / src / AppBundle /控制器/ LuckyController.php/ /……LuckyController{/ * * *@Route(“/幸运/数量/{数}")* /公共函数numberAction(美元){美元数字=数组();(美元=0;美元<美元;美元+ +){美元数字[]=兰德(0,One hundred.);}美元numbersList=内爆(”、“,美元数字);返回响应(“< html > <身体>幸运数字:“美元numbersList“< /身体> < / html >”);}/ /……}

去试一试/ /数字/幸运XX——XX替换为任何数量:

http://localhost: 8000 /幸运/数字/ 7

您应该看到7幸运数字打印出来!你可以得到任何的价值{占位符}通过添加在你的路线美元的占位符控制器参数。只要确保它们有相同的名字。

可以做一个路由系统很多更多的,就像支持多个占位符(例如。/博客/{类别}/{页面})),使占位符可选,迫使占位符匹配正则表达式(如这样{数}必须是一个数字)。

了解这一切,成为一个路由的专家路由一章。

呈现一个模板(服务容器)

如果你从控制器返回的HTML,您可能需要提供一个模板。幸运的是,Symfony附ob娱乐下载带了树枝:模板语言很简单,强大,非常有趣。

到目前为止,LuckyController不扩展任何基类。最简单的方法使用树枝——或其他工具在Symfony是扩展Symfony的基地ob娱乐下载控制器类:

1 2 3 4 5 6 7 8 9 10
/ / src / AppBundle /控制器/ LuckyController.php/ /……/ / - - >添加新使用的声明使用ob娱乐下载\\FrameworkBundle\控制器\控制器;LuckyController扩展控制器{/ /……}

使用模板服务

这并不能改变什么,但它给你使用Symfony的ob娱乐下载容器允许您访问:类似数组的对象每一个系统中有用的对象。这些有用的对象被称为服务,Symfoob娱乐下载ny的船只与服务对象呈现树枝模板,另一个日志消息和更多。

呈现一个树枝模板,使用一个服务调用模板:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日
/ / src / AppBundle /控制器/ LuckyController.php/ /……LuckyController扩展控制器{/ * * *@Route(“/幸运/数量/{数}")* /公共函数numberAction(美元){/ /……美元numbersList=内爆(”、“,美元数字);美元html=美元- >容器- >get (“模板”)- >呈现(“幸运/ number.html.twig”,数组(“luckyNumberList”= >美元numbersList));返回响应(美元html);}/ /……}

您将了解更多关于重要的“服务容器”当你继续阅读。现在,你只需要知道它拥有大量的对象,你可以get ()任何对象通过使用它的昵称,如模板日志记录器。的模板服务的一个实例TwigEngine这有一个呈现()方法。

但这可以更简单!通过扩展控制器类,你也得到很多的快捷方法,呈现():

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
/ / src / AppBundle /控制器/ LuckyController.php/ /……/ * * *@Route(“/幸运/数量/{数}")* /公共函数numberAction(美元){/ /……/ * $ = $ this - > html容器- >(模板)- >渲染('幸运/ number.html。嫩枝”,数组(“luckyNumberList”= > numbersList美元));返回新的反应(html)美元;* // /渲染:一个快捷方式同上返回美元- >呈现(“幸运/ number.html.twig”,数组(“luckyNumberList”= >美元numbersList));}

了解更多关于这些快捷方式方法以及它们如何工作控制器一章。

提示

对于更高级的用户,您还可以注册您的控制器为服务

创建的模板

如果你现在更新,你会得到一个错误:

找不到模板“幸运/ number.html.twig”

通过创建一个新的应用程序/资源/视图/幸运目录,并将number.html.twig文件里面:

  • 嫩枝
  • PHP
1 2 3 4 5 6
{# / number.html app /资源/视图/幸运。树枝#}{%扩展“base.html。嫩枝' %}{%身体%}<h1>幸运数字:{{luckyNumberList}}< /h1>{%endblock%}

欢迎来到树枝!这个简单的文件已经展示了基础知识:如何{{variableName}}语法是用来打印一些东西。的luckyNumberList是一个变量,你进入的模板吗渲染调用在你的控制器。

{% base.html延伸”。嫩枝' %}住在指向一个布局文件应用程序/资源/视图/ base.html.twig和你的新项目。这是真的基本没有任何特色(一个HTML结构),它是你的定制。的{%块体%}使用树枝的一部分继承制度把内容放在中间base.html.twig布局。

刷新,看看你的模板在行动!

http://localhost: 8000 /幸运/数字/ 9

如果你查看源代码,你现在有一个基本的HTML结构由于base.html.twig

这只是表面的树枝的权力。当你准备掌握它的语法,循环数组,使其他模板和其他很酷的东西,阅读模板一章。

探索项目

您已经创建了一个灵活的URL,呈现一个模板,使用继承和创建一个JSON端点。好了!

是时候探索和阐明文件在您的项目中。你已经工作在最重要的两个目录:

app /
包含配置和模板。基本上,任何PHP代码在这里。
src /
PHP代码住在这里。

99%的时间,你会工作的src /(PHP文件)或app /(一切)。当你变得更先进,您将了解可以做些什么在每一个。

app /目录还拥有其他一些东西,比如缓存目录应用程序/缓存/日志目录应用程序/日志/app / AppKernel.php,您将使用启用新的包(之一非常短的PHP文件列表app /)。

src /目录只有一个目录src / AppBundle,生活里面的一切。一捆就像一个“插件”,你可以找到开源包并安装到您的项目。但即使是你的住在一个包,通常的代码AppBundle(虽然没有什么特别之处AppBundle)。找到更多关于束,为什么你可能会创建多个包(提示:项目之间共享代码),看到的一章。

所以在项目的其他目录呢?

供应商/
供应商(即第三方)库和包的下载作曲家包管理器。
web /
这是项目的文档根目录和包含任何可公开访问的文件,就像CSS图像和执行应用程序的Symfony前端控制器(ob娱乐下载app_dev.phpapp.php)。

另请参阅

ob娱乐下载Symfony是灵活的。如果你需要,你可以很容易地覆盖默认的目录结构。看到如何覆盖Symfony的默认目录ob娱乐下载结构

应用程序配置

ob娱乐下载(打开你的Symfony提供了几个内置的捆绑包app / AppKernel.php安装文件),你可能会更多。的主要配置文件包应用程序/配置/ config.yml:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# app / config / config.yml#……框架:秘密:“% %的秘密”路由器:资源:“% kernel.root_dir % / config / routing.yml”#……枝:调试:“% kernel.debug %”strict_variables:“% kernel.debug %”#……

框架关键配置FrameworkBundle,嫩枝关键配置TwigBundle等等。一个很多在Symfony的行为可以控制ob娱乐下载通过改变一个选项在这个配置文件。找出,看到配置引用部分。

或者得到一个大的例子转储所有有效的配置下一个键,使用方便app /控制台命令:

1
应用程序/控制台配置:美元dump-reference框架

后面有更多的权力Symfony的配置系统,包括环境、进口和参数。ob娱乐下载学习所有的它,看到配置一章。

接下来是什么?

恭喜!你已经开始掌握Symfony和学习一种全新的方式建设美丽、功能、快速ob娱乐下载、可维护的应用程序。

好,时间完成掌握基础知识通过阅读这些章节:

然后,在ob娱乐下载Symfony的书,了解服务容器,形式系统,使用学说(如果你需要查询数据库)和更多!

还有一个食谱包装更高级的“如何”的文章来解决很多的问题。

玩得开心!

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。