大局
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.6,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
大局
10分钟内开始使用Sym欧宝娱乐app下载地址fony !本章将向您介绍Symfony背后最重要的概念,并解释如何通过演示一个简单的项目来快速入门。欧宝娱乐app下载地址
如果你以前使用过web框架,你应该对Symfony感到很熟悉。欧宝娱乐app下载地址如果没有,欢迎使用一种全新的开发web应用程序的方式。
遵循本教程的唯一技术条件是在您的计算机上安装PHP 5.4或更高版本.如果使用WAMP、XAMP或MAMP等打包的PHP解决方案,请检查它们是否使用PHP 5.4或最新版本。您也可以在终端或命令控制台执行以下命令来显示已安装的PHP版本:
1
$ PHP——版本
安装Symfony欧宝娱乐app下载地址
在过去,每个新项目都必须手欧宝娱乐app下载地址动安装Symfony。现在您可以使用欧宝娱乐app下载地址Symfony安装程序您必须在第一次在计算机上使用Symfony时安装该软件。欧宝娱乐app下载地址
在Linux而且Mac OS X系统,执行以下控制台命令:
1 2 3
$ curl -LsS http://欧宝娱乐app下载地址www.oldmanjams.com/installer > symfony。Phar $ sudo mv 欧宝娱乐app下载地址symfony。phar /usr/当地的/bin/欧宝娱乐app下载地址symfony $ chmod +x /usr/当地的/bin/欧宝娱乐app下载地址symfony
安装Symfony安装程序后,必须打开一个欧宝娱乐app下载地址新的控制台窗口才能执行新的欧宝娱乐app下载地址
命令:
1
sy欧宝娱乐app下载地址mfony美元
在窗户系统,执行以下控制台命令:
1
C:\> PHP -r“readfile(“http://欧宝娱乐app下载地址www.oldmanjams.com/installer”);“> 欧宝娱乐app下载地址symfony.phar
这个命令下载一个名为欧宝娱乐app下载地址symfony.phar
其中包含Symfony安装程序。欧宝娱乐app下载地址保存或移动该文件到您创建Symfony项目的目录,然后使用以下命令立即执行Symfony安装程序:欧宝娱乐app下载地址
1
C:\> PHP 欧宝娱乐app下载地址symfy .phar
创建您的第一个Symfony项目欧宝娱乐app下载地址
设置了Symfon欧宝娱乐app下载地址y安装程序之后,使用新
命令来创建新的Symfony项目。欧宝娱乐app下载地址让我们创建一个新项目myproject
:
1 2 3 4 5
# Linux和Mac OS X$ 欧宝娱乐app下载地址symfony新的myproject#窗口C:\> PHP 欧宝娱乐app下载地址symfy .phar新myproject
此命令下载最新的Symfony稳定版本,并在欧宝娱乐app下载地址myproject的/
目录,以便您可以立即开始开发应用程序。
运行Symfon欧宝娱乐app下载地址y
本教程利用PHP提供的内部web服务器来运行Symfony应用程序。欧宝娱乐app下载地址因此,运行Symfony应用程序就是浏览项欧宝娱乐app下载地址目目录并执行以下命令:
1 2
$cdMyproject / $ PHP应用/控制台服务器:运行
打开浏览器并访问http://localhost:8000/app/example
查看Symfony欢迎页面的URL:欧宝娱乐app下载地址
恭喜你!您的第一个Symfon欧宝娱乐app下载地址y项目已经启动并运行了!
请注意
您可能会看到空白页或错误页,而不是欢迎页。目录权限配置错误导致。根据您的操作系统,有几种可能的解决方案。所有这些都在设置权限官方书籍的一部分。
如果欢迎页面似乎没有呈现CSS或图像资产,请先安装它们:
1
$ PHP应用程序/控制台资产:安装
当您完成Symfony应用程序的工作时,您可以通过按Ctrl和C来停止服务器欧宝娱乐app下载地址。
提示
如果您更喜欢传统的web服务器,如Apache或Nginx,请阅读配置Web服务器篇文章。
理解基本原理
框架的主要目标之一是保持代码的组织性,并通过避免在同一个脚本中混合数据库调用、HTML标记和其他PHP代码,使应用程序能够随着时间的推移而轻松地发展。要使用Symfony实现这一目标,首先需要学习一些基欧宝娱乐app下载地址本概念。
在开发Symfony应用程序时,作为欧宝娱乐app下载地址开发人员的责任是编写映射用户应用程序的代码请求(如。http://localhost:8000/app/example
)资源与之相关的(the主页
HTML页面)。
中定义了要执行的代码行动而且控制器.方法定义用户请求和该代码之间的映射路由配置。浏览器中显示的内容通常使用模板.
当你浏览时http://localhost:8000/app/example
类中定义的控制器欧宝娱乐app下载地址src / AppBundle /控制器/ DefaultController.php
文件,并呈现应用程序/资源/视图/ / index.html.twig违约
模板。在下面的小节中,您将详细了解Symfony控制器、路由和模板的内部工作原理。欧宝娱乐app下载地址
动作和控制器
打开src / AppBundle /控制器/ DefaultController.php
文件,您将看到以下代码(现在,不要查看@Route
配置,因为这将在下一节解释):
12 3 4 5 6 7 8 9 10 11 12 13 14 15
名称空间AppBundle\控制器;使用Sensio赞助\包\FrameworkExtraBundle\配置\路线;使用欧宝娱乐app下载地址\包\FrameworkBundle\控制器\控制器;类DefaultController扩展控制器{/ * * *@Route("/app/example", name="首页")*/公共函数indexAction(){返回$这->呈现(“违约/ index.html.twig”);}}
在Sy欧宝娱乐app下载地址mfony应用程序中,控制器通常是PHP类,其名称以控制器
词。在本例中,控制器被调用默认的
PHP类被调用DefaultController
.
控制器中定义的方法被调用行动,它们通常与应用程序的一个URL相关联,并且它们的名称以行动
.在本例中,默认的
控制器只有一个被调用的动作指数
定义在indexAction
方法。
动作通常很短——大约10-15行代码——因为它们只调用应用程序的其他部分来获取或生成所需的信息,然后呈现一个模板向用户显示结果。
在本例中,指数
Action实际上是空的,因为它不需要调用任何其他方法。方法呈现模板主页。内容。
路由
欧宝娱乐app下载地址Symfony通过将请求的URL与应用程序配置的路径相匹配,将每个请求路由到处理它的操作。再次打开src / AppBundle /控制器/ DefaultController.php
文件,并查看上面的三行代码indexAction
方法:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/ / src / AppBundle /控制器/ DefaultController.php名称空间AppBundle\控制器;使用Sensio赞助\包\FrameworkExtraBundle\配置\路线;使用欧宝娱乐app下载地址\包\FrameworkBundle\控制器\控制器;类DefaultController扩展控制器{/ * * *@Route("/app/example", name="首页")*/公共函数indexAction(){返回$这->呈现(“违约/ index.html.twig”);}}
属性定义了路由配置@Route ()
注释。一个PHP注释是一种配置方法的方便方法,无需编写常规PHP代码。注意注释块以/**
,而常规的PHP注释以/*
.
的第一个值@Route ()
定义将触发动作执行的URL。因为你不必把你的应用程序的主机添加到URL(例如。“http://example.com
),这些url总是相对的,它们通常被调用路径.在这种情况下,/应用程序/例子
路径为应用程序主页。的第二个值@Route ()
(如。name = "主页"
)是可选的,设置路由的名称。现在还不需要这个名称,但是以后在链接页面时它会很有用。
考虑到这一切,@Route(“/ app /例子”,name = "主页")
注释创建一个名为主页
这使得Symfony执行欧宝娱乐app下载地址指数
的行动默认的
控件时的/应用程序/例子
应用程序路径。
提示
除了PHP注释,路由还可以在YAML、XML或PHP文件中配置Symfony书籍的路由章节欧宝娱乐app下载地址.这种灵活性是Symfony的主要特性之一,Symfony框架从不将特定的配置格式强加给您。欧宝娱乐app下载地址
模板
唯一的内容指数
action是下面的PHP指令:
1
返回$这->呈现(“违约/ index.html.twig”);
的$ this - >渲染()
方法是呈现模板的方便快捷方式。欧宝娱乐app下载地址类扩展的任何控制器,Symfony提供了一些有用的快捷方式控制器
类。
默认情况下,应用模板保存在应用程序/资源/视图/
目录中。因此,默认的/ index.html.twig
模板对应于应用程序/资源/视图/ / index.html.twig违约
.打开这个文件,你会看到下面的代码:
1 2 3 4 5 6
{# app /资源/视图/违约/ index . html。树枝#}{%扩展“base.html。嫩枝' %}{%块身体%}主页。{%endblock%}
该模板是用嫩枝,一个为现代PHP应用程序创建的新模板引擎。的本教程的第二部分将介绍模板如何在Symfony中工作。欧宝娱乐app下载地址
使用环境
现在您已经更好地理解了Symfony是如何工作的,下面仔细看看任何Symfony渲染页面的底部。欧宝娱乐app下载地址您应该注意到一个带有Symfony标志的小栏。欧宝娱乐app下载地址这就是“web调试工具栏”,它是Symfony开发人员最好的朋友!欧宝娱乐app下载地址
但你最初看到的只是冰山一角;点击任何一个栏部分打开分析器,获得更多关于请求、查询参数、安全细节和数据库查询的详细信息:
该工具提供了大量关于应用程序的内部信息,您可能会担心访问者访问合理的信息。欧宝娱乐app下载地址Symfony意识到了这个问题,因此,当您的应用程序在生产服务器上运行时,它不会显示这个栏。
Symfony如何欧宝娱乐app下载地址知道您的应用程序是在本地运行还是在生产服务器上运行?的概念,请继续阅读执行环境.
什么是环境?
一个环境表示用于运行应用程序的一组配置。欧宝娱乐app下载地址Symfony默认定义了两个环境:dev
(适合在本地开发应用程序)和刺激
(针对在生产环境中执行应用程序进行了优化)。
当你参观http://localhost:8000
URL,您将在欧宝娱乐app下载地址dev
环境。来访问您的应用程序刺激
环境,访问http://localhost:8000/app.php
URL。如果你喜欢总是展示dev
环境中的URL,您可以访问http://localhost:8000/app_dev.php
URL。
环境之间的主要区别是dev
被优化为向开发人员提供大量信息,这意味着更差的应用程序性能。与此同时,刺激
已优化以获得最佳性能,这意味着禁用调试信息以及web调试工具栏。
环境之间的另一个区别是用于执行应用程序的配置选项。当您访问dev
环境,Symfony加载欧宝娱乐app下载地址应用程序/配置/ config_dev.yml
配置文件。当您访问刺激
环境,Symfony加载欧宝娱乐app下载地址应用程序/配置/ config_prod.yml
文件。
通常,环境共享大量配置选项。因为这个原因,你把公共构型放进去config.yml
并在必要时覆盖每个环境的特定配置文件:
1 2 3 4 5 6 7
# app / config / config_dev.yml进口:-{资源:config.yml}web_profiler:工具栏:真正的intercept_redirects:假
在本例中,config_dev.yml
配置文件导入公共config.yml
文件,然后用它自己的选项覆盖任何现有的web调试工具栏配置。
有关环境的详细信息,请参见“环境和前端控制器”文章。