Symfony 服务教程展示了如何在 Symfony 中创建服务。 该服务从数据库中获取数据。
Symfony 服务
Symfony 应用的功能分为称为服务的较小块。 服务是一个 PHP 对象。 服务位于 Symfony 服务容器中。 有许多内置服务。 可以通过使用类型提示在 Symfony 应用中自动连接服务。
使用php bin/console debug:container
命令生成可用服务的列表。
这是一个services.yaml
配置文件。 src
目录中的 PHP 类可以通过类型提示自动注入到我们的代码中。
Symfony 服务示例
在以下示例中,我们从 MySQL 数据库中获取数据。 数据检索委托给特定的应用组件:Symfony 服务。
使用composer
,我们创建一个新的 Symfony 骨架项目。 然后我们找到新创建的项目目录。
我们安装了三个模块:annotations
和orm-pack
。
我们安装了开发 Web 服务器和 Symfony maker。
countries_mysql.sql
这是一些测试数据。 它在 MySQL 中创建一个小表。 我们可以使用 MySQL source
命令执行文件。
config/packages/doctrine.yaml
默认情况下,我们有一个为 Doctrine DBAL 配置的 MySQL 数据库。 教义数据库抽象层(DBAL)是位于 PDO 之上的抽象层,并提供了直观,灵活的 API,可用于与最流行的关系数据库进行通信。
.env
在.env
文件中,我们配置数据库 URL。
用bin/console
创建一个DataController
。
src/Controller/DataController.php
DataController
以 JSON 格式返回countries
表中的所有行。 它使用DataService
服务。
通过参数注入创建DataService
。
注意:为简单起见,我们已将数据库访问代码放置在服务类中。 生产应用中还有另一层:存储库。 数据库访问代码放置在存储库类中,该存储库类从服务类中调用。
src/Service/DataService.php
DataService
包含一种从countries
表中检索所有行的方法。 它使用 Symfony 的 DBAL 执行查询。
该服务还使用自动装配来创建Connection
对象。
我们使用 DBAL QueryBuilder 从表中获取所有行。 Doctrine DBAL QueryBuilder 提供了一个方便,流畅的界面来创建和运行数据库查询。
Web 服务器已启动。
我们使用curl
命令创建一个请求。
您可能也对以下相关教程感兴趣: Symfony 简介,Symfony DBAL 教程, Symfony 上传文件教程 , Symfony 表单教程, PHP 教程。