tschallacka/mage-storm

将 storm 数据库库添加到 magento 中,以在 magento 2 中使用 eloquent 数据库

安装: 9

依赖: 0

建议者: 0

安全性: 0

星标: 0

关注者: 3

分支: 0

开放问题: 0

类型:magento2-module

v1.0.13 2021-11-29 20:36 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:51 UTC


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数据库时,您需要通过使用迁移或其他方法来更新您的数据库模式。