atlas / symfony
Symfony 4 对 Atlas 3 的扩展包
README
此包使 Atlas ORM 和命令行工具作为扩展包可用于 Symfony 4 项目。
(Atlas 是用于您的持久层的数据映射器,而不是您的领域层。)
安装和配置
-
在您的 Symfony 4 项目中,启用贡献者配方
composer config extra.symfony.allow-contrib true
-
需要
atlas/symfony
包;这将激活安装过程中的一部分 Symfony Flex 配方composer require atlas/symfony ~1.0
-
编辑这些新的
.env
变量以定义您的数据库连接ATLAS_PDO_DSN=mysql:host=myhost;dbname=mydatabase ATLAS_PDO_USERNAME=myusername ATLAS_PDO_PASSWORD=mypassword
注意
如果您使用 PHPStorm,您可能希望将 IDE 元文件复制到项目中以获得 Atlas 类的完整自动完成
cp ./vendor/atlas/orm/resources/phpstorm.meta.php ./.phpstorm.meta.php
在 atlas.yaml
配置文件中,以下设置是显著的
-
atlas.orm.atlas.log_queries
:将其设置为true
以启用查询日志的 Web 分析师数据收集器。 -
atlas.orm.atlas.transaction_class
:将其设置为 Atlas 事务策略类之一,例如Atlas\\Orm\\Transaction\\AutoTransact
。有关更多信息,请参阅事务文档。 -
任何连接配置下的
options
部分可用于通过 PDO 构造函数 设置 PDO 属性。例如dsn: '%env(resolve:ATLAS_PDO_DSN)%' username: '%env(resolve:ATLAS_PDO_USERNAME)%' password: '%env(resolve:ATLAS_PDO_PASSWORD)%' options: !php/const PDO::EMULATE_PREPARES: false !php/const PDO::ATTR_CASE: !php/const PDO::CASE_NATURAL
入门指南
生成映射器
使用命令行工具创建所有数据库表的骨架文件
mkdir src/DataSource
php bin/console atlas:skeleton
config/packages/atlas.yaml
文件指定 App\DataSource\
作为命名空间,以及 src/DataSource/
作为目录。要更改它们,根据需要修改 atlas.cli.config.input
中的 directory
和 namespace
值。
数据库表名将转换为与 PHP 中相关类型名称的单数形式。如果您想为某些表指定不同的类型名称,请修改 atlas.yaml
文件中的 atlas.cli.transform
值,以将表名映射到类型名。
随着您对数据库的更改,重新运行骨架生成器,相关的表文件将重新生成。
有关更多信息,请参阅 http://atlasphp.io/cassini/skeleton/。
使用 Atlas
现在已为所有数据库表创建了映射器,您可以使用 Symfony 依赖注入系统自动将 Atlas 添加到您的类中。
namespace App; use Atlas\Orm\Atlas; use App\DataSource\Thread\Thread use App\DataSource\Thread\ThreadRecord; class ApplicationService { public function __construct(Atlas $atlas) { $this->atlas = $atlas; } public function fetchThreadById($thread_id) : ThreadRecord { return $this->atlas->fetchRecord(Thread::class, $thread_id); } }
有关使用 Atlas 的完整文档,请参阅 http://atlasphp.io/cassini/orm/
享受吧!