tschallacka / mage-storm
将 storm 数据库库添加到 magento 中,以在 magento 2 中使用 eloquent 数据库
Requires
README
为 Magento 带来新鲜空气
在 Magento 中处理数据库对象至少是痛苦的。
要获取单个数据库模型所需的一切,您可能需要大约 10-15 个文件,其中包含大量样板代码。
要建立关系、查询等,您必须拥有大量存储库以提供搜索结果辅助工具等。
来自 Laravel/OctoberCMS/WinterCMS 背景,这并不有趣,也不容易编写和维护。
因此,这个库旨在模仿基本的 Magento 模型,但使它们更流畅。包括集合、简单的关联、QueryBuilder 等...
有关如何进行查询、关系上的查询等的文档,请参阅 WinterCms 文档。只有文档中的数据库部分是相关的,CMS 部分等...不包括在这个库中,以保持大小适中。
非常简洁
我努力使这个库尽可能简洁,仅包含您熟悉的最基本功能,仅关注数据库方面以及以流畅方式处理数据库的实用工具。
保持简洁(ish),因为 Magento 已经足够庞大。此软件包在基本 Magento 安装中安装了 22 个新鲜依赖项。
安装
准备 composer.json
在您的 Magento 项目目录中的 composer.json 中,在 "require"
段落中添加以下行
此安装步骤的原因是,Laravel 需要 console 5.1.4,但 Magento 使用 console ~4.4。
我们需要欺骗 composer 以接受较低的版本依赖项,通过使用as
,composer 被欺骗,并安装模块。遗憾的是,这仅在主项目 json 中有效,而不是在依赖项 json 中。
当使用别名时需要特定版本,当适用时,请随意更新到更新版本。
要获取添加到 require 语句中的 symfony 版本,请使用
composer show symfony/console | grep versions
对于 Magento 2.4.2-p1
"symfony/console": "4.4.29 as 5.1.4",
召唤风暴
在您的 Magento 项目目录中,从您的 shell 运行以下命令
composer require tschallacka/mage-storm ^1.0
配置
默认连接将从 app/etc/env.php 中获取,并添加到 eloquent 连接管理器中,名称与其中定义的名称相同。
如果您想使用其他数据库,如 postgres、sqlite 等,请在 env.php 中定义它们,如下所示 ['magestorm']['connections']
。有关可接受的配置值,请参阅 WinterCms 文档。请注意,您在 ['magestorm']
下定义的连接不能由 Magento 使用,只能由 MageStorm/Storm 模型使用。
示例
return [ 'backend' => .... ... 'db' => [ 'table_prefix' => '', 'connection' => [ 'default' => [ 'host' => 'localhost', 'dbname' => 'magento', 'username' => 'magento', 'password' => 'magento-dev-password', 'model' => 'mysql4', 'engine' => 'innodb', 'initStatements' => 'SET NAMES utf8;', 'active' => '1', 'driver_options' => [ 1014 => false ] ] ] ], 'magestorm' => [ 'connections' => [ 'other_connection_name' => [ 'read' => [ 'host' => '192.168.1.1', ], 'write' => [ 'host' => '196.168.1.2' ], 'driver' => 'mysql', 'database' => 'database', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ], 'sqlite_testing' => [ 'driver' => 'sqlite', 'database' => 'patho/to/testing-db.sqlite', 'prefix' => '', ], ] ], ....
用法
命令
bin/magento storm:create:model [Module_Name] [ModelName] [Path(Default: "Models")]
在 path/to/magento/app/code/Module/Name/Path/ModelName.php
创建一个新的默认空白模型文件,其中数据库名称为 ModelName 的 snake_case 版本。路径参数是可选的。如果省略,则将文件放置在模块内的 Models 目录中。
如果您不熟悉Laravel / OctoberCms / WinterCMS,请参考WinterCms文档以及数据库下的所有其他文章,了解如何使用模型。
表创建
对于表创建,我建议使用类似于Magento的声明式模式,而不是使用Laravel / OctoberCMS / WinterCMS所使用的迁移。当使用非Magento数据库时,您需要通过使用迁移或其他方法来更新您的数据库模式。