Flex:应用程序组成

编辑该页面

Flex:应用程序组成

在阅读本教程的第一部分,您决定Symfony 10分钟是值得的。欧宝娱乐app下载地址伟大的选择!在第2部分中,您将了解Symfony Flex:神奇的工具,使得添加新特性简单运欧宝娱乐app下载地址行一个命令。这也是为什么Symfony是理想的一个小微观服务或欧宝娱乐app下载地址一个巨大的应用程序。好奇吗?完美!

欧宝娱乐app下载地址Symfony:开始微!

除非你正在构建一个纯API(更多详情很快!),你可能会想要呈现的HTML。为此,您将使用嫩枝。嫩枝是一个灵活、快速、安全的PHP模板引擎。它让你的模板可读性更强,简洁;这也使得他们更友好的网页设计师。

树枝已经安装在我们的应用程序?实际上,没有!那太好了!当你开始一个新的Symfony项目,欧宝娱乐app下载地址:只有最关键依赖关系都包含在你的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不欧宝娱乐app下载地址同于任何其他PHP开发框架!而不是从一开始笨重的应用程序与每一个可能的功能你可能需要一个Symfony应用很小,简单的和欧宝娱乐app下载地址。和你完全控制你的添加。

Flex的食谱和别名

所以我们如何安装和配置树枝?通过运行一个命令:

1
美元作曲家要求树枝

两个非常有趣的事情发生在幕后由于Symfony Flex:一个作曲家插件已经安装在我们的项目。欧宝娱乐app下载地址

首先,嫩枝不是一个作曲家的名字包:这是一个Flex吗别名指向欧宝娱乐app下载地址symfony / twig-bundle。Flex解决别名的作曲家。

其次,Flex安装配方欧宝娱乐app下载地址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名称空间应用程序\控制器;使用Sy欧宝娱乐app下载地址mfony \组件\路由\注释\路线;——使用Sy欧宝娱乐app下载地址mfony \ HttpFoundation \ \组件响应;+使用控制器欧宝娱乐app下载地址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的特点还没欧宝娱乐app下载地址有安装!让我们解决这个问题:

1
美元作曲家要求分析器

是的!这是另一个别名!和Flex安装另一个配方,自动分析器Symfony的配置。欧宝娱乐app下载地址结果是什么?刷新!

看到黑条底部?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名称空间应用程序\控制器;使用欧宝娱乐app下载地址\\FrameworkBundle\控制器\AbstractController;使用欧宝娱乐app下载地址\组件\HttpFoundation\JsonResponse;使用欧宝娱乐app下载地址\组件\路由\注释\路线;DefaultController扩展AbstractController{/ /……#(路线(' / api / hello /{名称}’,方法:[的]))公共函数apiHello(字符串美元的名字):JsonResponse{返回美元- >json ([“名字”= >美元的名字,s欧宝娱乐app下载地址ymfony的= >“石头”]);}}

但是,对于一个真正的丰富的API,尝试安装API的平台:

1
美元作曲家要求api

这是一个别名接口平台/ api-pack0b足球 依赖于其他几个包,像Symfony的验证器和安全组件,以及教条ORM。欧宝娱乐app下载地址事实上,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>

删除食谱

不相信吗?没问题:删除库:

1
美元作曲家将api

Flex将卸载食谱:删除文件和毁灭变化把你的应用程序返回到原来的状态。实验没有担心。

更多的功能、架构和速度

我希望你和我一样兴奋Flex !但是我们仍然有一个更多的章,这是最重要的。我想向您展示如何Symfony使您能够快速构建欧宝娱乐app下载地址功能没有牺牲代码质量或性能。这都是关于服务容器,它的Symfony的超级大国。欧宝娱乐app下载地址了解:该体系结构

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
欧宝娱乐app下载地址Symfony 6.2支持通过苏禄人