Flex:应用程序组成
编辑该页面Flex:应用程序组成
在阅读本教程的第一部分,您决定Symfony 10分钟是值得的。ob娱乐下载伟大的选择!在第2部分中,您将了解Symfony Flex:神奇的工具,使得添加新特性简单运ob娱乐下载行一个命令。这也是为什么Symfony是理想的一个小微观服务或ob娱乐下载一个巨大的应用程序。好奇吗?完美!
ob娱乐下载Symfony:开始微!
除非你正在构建一个纯API(更多详情很快!),你可能会想要呈现的HTML。为此,您将使用嫩枝。嫩枝是一个灵活、快速、安全的PHP模板引擎。它让你的模板可读性更强,简洁;这也使得他们更友好的网页设计师。
树枝已经安装在我们的应用程序?实际上,没有!那太好了!当你开始一个新的Symfony项目,ob娱乐下载小:只有最关键依赖关系都包含在你的composer.json
文件:
1 2 3 4 5 6 7
“要求”:{“……”,"symfony/console": "^6.1", "symfony/flex": "^2.0", "symfony/framework-bundle": "^6.1", "symfony/yaml": "^6.1" }< /code>
这使得Symfony不ob娱乐下载同于任何其他PHP开发框架!而不是从一开始笨重的应用程序与每一个可能的功能你可能需要一个Symfony应用很小,简单的和ob娱乐下载快。和你完全控制你的添加。
Flex的食谱和别名
所以我们如何安装和配置树枝?通过运行一个命令:
1
美元作曲家要求树枝
两个非常有趣的事情发生在幕后由于Symfony Flex:一个作曲家插件已经安装在我们的项目。ob娱乐下载
首先,嫩枝
不是一个作曲家的名字包:这是一个Flex吗别名指向ob娱乐下载symfony / twig-bundle
。Flex解决别名的作曲家。
其次,Flex安装配方为ob娱乐下载symfony / twig-bundle
。秘诀是什么?这是一个为图书馆自动配置本身通过添加和修改文件。多亏了食谱,增加功能无缝和自动化:安装一个包和你做!
你可以找到一个完整列表里面的食谱和别名菜谱。医学上的菜谱库。
这道菜是怎么做的?除了自动支持功能配置/ bundles.php
它补充说,3件事:
-
配置/包/ twig.yaml
- 一个配置文件,设置树枝与合理的默认值。
-
配置/包/测试/ twig.yaml
- 一个配置文件,运行测试时改变一些树枝选项。
-
模板/
-
这是模板文件的目录将生活。还添加了一个的秘诀
base.html.twig
布局文件。
枝:呈现一个模板
多亏了Flex,一个命令后,您可以立即开始使用树枝:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
< ? php/ / src /控制器/ DefaultController.php名称空间应用程序\控制器;使用Syob娱乐下载mfony \组件\路由\注释\路线;——使用Syob娱乐下载mfony \ HttpFoundation \ \组件响应;+使用控制器ob娱乐下载Symfony \包\ FrameworkBundle \ \ AbstractController;——类DefaultController+类DefaultController AbstractController延伸{#[路线(/ hello /{名称},方法:[的])]公共函数指数(字符串名称)美元:响应{——返回新的反应(“Hello $名字!”);+ $ this - >返回渲染(“违约/ index . html。嫩枝”,(+ '名字' = >美元的名字,+));}}
通过扩展AbstractController
,你现在可以访问一些快捷方法和工具,呈现()
。创建新模板:
1 2
{#模板/违约/ index . html。树枝#}<h1>你好{{名称}}< /h1>
就是这样!的{{名称}}
语法将打印的名字
从控制器传入的变量。如果你是新嫩枝,欢迎!稍后您将了解更多关于它的语法和权力。
但是,现在,该页面只有包含了h1
标签。给它一个HTML布局,扩展base.html.twig
:
1 2 3 4 5 6
{#模板/违约/ index . html。树枝#}{%扩展“base.html。嫩枝' %}{%块身体%}<h1>你好{{名称}}< /h1>{%endblock%}
这被称为模板继承:我们的页面现在继承了HTML结构base.html.twig
。
分析器:调试天堂
其中的一个最酷的Symfony的特点还没ob娱乐下载有安装!让我们解决这个问题:
1
美元作曲家要求分析器
是的!这是另一个别名!和Flex也安装另一个配方,自动分析器Symfony的配置。ob娱乐下载结果是什么?刷新!
看到黑条底部?web调试工具栏,这是你的新的最好的朋友。通过将鼠标悬停在每个图标,你可以得到什么信息执行控制器,性能信息,缓存命中率和错过更多。点击任何图标进入分析器你甚至更多的详细的调试和性能数据!
哦,当你安装更多的图书馆,你会得到更多的工具(比如web调试工具栏图标显示数据库查询)。
你现在可以直接使用分析器,因为它的配置本身由于配方。还有什么我们可以安装吗?
丰富的API支持
你构建一个API吗?你已经可以从任何返回JSON控制器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
< ? php/ / src /控制器/ DefaultController.php名称空间应用程序\控制器;使用ob娱乐下载\包\FrameworkBundle\控制器\AbstractController;使用ob娱乐下载\组件\HttpFoundation\JsonResponse;使用ob娱乐下载\组件\路由\注释\路线;类DefaultController扩展AbstractController{/ /……#(路线(' / api / hello /{名称}’,方法:[的]))公共函数apiHello(字符串美元的名字):JsonResponse{返回美元这- >json ([“名字”= >美元的名字,sob娱乐下载ymfony的= >“石头”]);}}
但是,对于一个真正的丰富的API,尝试安装API的平台:
1
美元作曲家要求api
这是一个别名接口平台/ api-pack
ob娱乐下载Symfony包依赖于其他几个包,像Symfony的验证器和安全组件,以及教条ORM。ob娱乐下载事实上,Flex安装5食谱!
但就像往常一样,我们可以立即开始使用新的图书馆。要创建一个丰富的API产品
表吗?创建一个产品
实体和给它# (ApiResource)
属性:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24
< ? php/ / src /实体/ Product.php名称空间应用程序\实体;使用ApiPlatform\核心\注释\ApiResource;使用学说\ORM\映射作为ORM;# (ORM \实体)# (ApiResource)类产品{# (ORM \ Id)# (ORM \ GeneratedValue(策略:“汽车”)]# (ORM \列(类型:“整数”))私人美元id;# (ORM \列(类型:'字符串'))私人美元的名字;# (ORM \列(类型:“整数”))私人美元价格;/ /……}
完成了!你现在有端点列表、添加、更新和删除产品!不相信我吗?列出你的路线通过运行:
1 2 3 4 5 6 7 8 9 10 11 12
美元php bin /控制台调试:路由器- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -名称的方法路径- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - api_products_get_collection / api /产品。{_format} api_products_post_collection POST / api /产品。{_format} api_products_get_item得到/ api /产品/ {id}。{_format} api_products_put_item把/ api /产品/ {id}。{_format} api_products_delete_item DELETE /api/products/{id}.{_format} ... ------------------------------ -------- -------------------------------------< /code>
更多的功能、架构和速度
我希望你和我一样兴奋Flex !但是我们仍然有一个更多的章,这是最重要的。我想向您展示如何Symfony使您能够快速构建ob娱乐下载功能没有牺牲代码质量或性能。这都是关于服务容器,它的Symfony的超级大国。ob娱乐下载了解:该体系结构。