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/
享受吧!