anee / shopfinder
Magento2 商店搜索模块,用于添加商店列表和搜索靠近客户的商店。
Requires
- php: ~7.4.0||~8.1.0||~8.2.0
- magento/framework: 100.0.*|100.1.*|101.0.*|102.0.*|103.0.*
- magento/module-backend: 100.0.*|100.1.*|100.2.*|101.0.*|102.0.*
README
Anee_Shopfinder
通用
本模块的目的是管理所有商店并按名称和标识符找到靠近客户的商店。
控制器操作
\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Index
此控制器用于渲染商店网格。
\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Save
此控制器用于在从商店表单提交后保存数据。
\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Delete
此控制器用于从网格行中删除单个商店项。
\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\MassDelete
此控制器用于从网格操作中删除多个商店项。
\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Edit
此控制器用于显示用于更新商店数据的表单。
\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\NewAction
此控制器用于显示用于添加商店数据的表单。
\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Upload
此控制器用于从添加/更新表单上传图像到图像目录。
服务
\Anee\Shopfinder\Service\ImageUploaderService
此服务负责将图像保存到临时图像目录,然后将其移动到原始图像目录。
\Anee\Shopfinder\Service\UpdateShopfinderShopDataService
此服务负责更新在 graphql 变异解析器类中使用的商店数据。
验证器
Anee\Shopfinder\Validator\IsUniqueShopfinderIdentifierValidator
此验证器将验证相同的标识符是否存在。如果任何其他商店存在相同的标识符,则
将抛出异常,否则返回 true。
GraphQl API
GetShopByIdentifier - \Anee\Shopfinder\GraphQl\Resolver\ShopfinderResolver
此 GraphQl API 用于根据输入参数标识符获取商店数据。它首先验证标识符是否
存在于请求中,如果不存在,则抛出异常。如果标识符不存在,则商店数据不存在,则也会抛出
异常,但如果存在,则返回数组中的数据。
GetShopByIdentifier 请求
{ GetShopByIdentifier(identifier: "string") { country createdAt id identifier image latitude longitude name updatedAt } }
GetShopfinderShopList - \Anee\Shopfinder\GraphQl\Resolver\GetShopfinderShopListResolver
此 GraphQl API 用于获取所有商店列表。如果数据不存在,则将抛出包含消息的异常。
如果商店数据存在,则将返回商店列表。
GetShopfinderShopList 请求
{ GetShopfinderShopList { country createdAt id identifier image latitude longitude name updatedAt } }
DeleteShopByIdentifier - \Anee\Shopfinder\GraphQl\Resolver\DeleteShopfinderResolver
此 GraphQl API 用于在尝试通过标识符删除商店时显示消息。它只会显示一个友好的
消息,表明商店不能被删除,并且商店也不会被删除。
DeleteShopByIdentifier 请求
{ DeleteShopByIdentifier(identifier: "string") { identifier message status } }
UpdateShopfinderShop - \Anee\Shopfinder\GraphQl\Resolver\UpdateShopfinderShopResolver
此 GraphQl API 用于更新商店数据。它将接受所有数据并更新商店。
UpdateShopfinderShop 请求
mutation { 更新商店查找器商店( id: 1 名称: "string" 标识符: "string" 国家: "string" 图片: "string" 经度: "string" 纬度: "string" ) { 国家 创建时间 id 标识符 图片 纬度 经度 名称 更新时间 } }
模块安装
composer require anee/shopfinder
如果composer成功下载文件,则在magento根目录运行以下命令:php bin/magento s:up && php bin/magento setup:di:compile && php bin/magento s:s:d -f
如果composer无法从源下载模块,请尝试以下操作
composer require "anee/shopfinder ~1.0.0"
如果仍然遇到问题,请从git下载代码:https://github.com/aneel2023/shopfinder
将上述下载的代码放入app/code/Anee/Shopfinder目录,并执行以下命令
php bin/magento s:up && php bin/magento setup:di:compile && php bin/magento s:s:d -f
运行所有PHP单元测试
-
将
dev/tests/unit/phpunit.xml.dist复制到dev/tests/unit/phpunit.xml -
注释掉第60行 ->
<string>allure/allure.config.php</string> -
从项目根目录运行以下命令
vendor/bin/phpunit -c dev/tests/unit/phpunit.xml vendor/anee/shopfinder/Test/Unit/
运行所有PHP集成测试
-
将
dev/tests/integration/etc/install-config-mysql.php.dist重命名为dev/tests/integration/etc/install-config-mysql.php -
更新
db-host、db-user、db-password和db-name(为集成测试创建新数据库) -
创建新数据库后,请确保运行
setup:upgrade 和 setup:di:coompile 命令 -
将
dev/tests/integration/phpunit.xml.dist复制到dev/integration/unit/phpunit.xml -
执行
cd dev/tests/integration -
从上述目录运行以下命令
../../../vendor/bin/phpunit ../../../vendor/anee/shopfinder/Test/Integration/