Magento

Magento电子商务平台用户的问答

2
如何在magento 2 Extension中检查代码重复?
我已经在Magento 2中创建了一个模块,现在我正尝试在Magento Marketplace上提交该模块。我的扩展程序已通过业务审查和技术审查,但是我面临质量检查审查的问题。 我收到了Magento市场的一封邮件,说我的扩展程序中有代码重复。以下是邮件示例。 代码质量问题:CPD:此扩展名包含重复的代码。 当我通过Marketplace帐户访问产品并检查技术报告时,发现以下内容。 检测到代码重复 该扩展包含直接从Magento代码库复制的代码。这直接违反了《 Magento开发人员协议》第3.1和9.1b条。 File: vendor/module/vendor-module-1.0.0.0/Block/Adminhtml/Module/Edit/Tab/Stores.php Line: 58 File: magento/module-checkout-agreements/magento-module-checkout-agreements-100.0.6.0/Block/Adminhtml/Agreement/Edit/Form.php Line: 122 File: magento/module-cms/magento-module-cms-100.0.7.0/Block/Adminhtml/Block/Edit/Form.php Line: 100 File: vendor/module/vendor-module-1.0.0.0/Block/Adminhtml/Module/Renderer/Files.php Line: 49 File: magento/framework/magento-framework-100.0.16.0/Data/Form/Element/Image.php Line: 86 File: vendor/module/vendor-module-1.0.0.0/Model/ResourceModel/AbstractCollection.php Line: 2 File: magento/module-cms/magento-module-cms-100.0.7.0/Model/ResourceModel/AbstractCollection.php Line: 6 有什么方法可以检查安装程序中的代码重复,以避免其他扩展名出现此问题?

1
是否在VCS中使用app / etc / config.php
我有一个与file有关的问题app/etc/config.php。 此文件在此处描述并定义: Magento base dir/app/etc/config.php,其中包含已安装的模块,主题和语言包的列表。 就像app/etc/modules/*在Magento 1中一样(通常我在VCS中有这些文件)。 但是在Magento 2中,建议不要在VCS中共享(Official .gitignore)。 我对VCS中的共享有一些疑问或用例,但我想了解,因为不建议在VCS中添加 生产环境(带有部署系统Capistrano/Deployer, etc) 你犯了一个新的部署......你需要启用新/ S模块/秒php bin/magento module:enable VendorName_NewModule前setup:upgrade 您如何处理这种情况? 您进行了新的部署,并且需要禁用(在任何情况下)新模块,php bin/magento module:disable VendorName_NewModule然后才能进行部署setup:upgrade 您如何处理这种情况? 当地环境 如果您不希望您的团队启用/禁用特定模块 您如何处理这种情况? 暂存环境 如果不共享,如何实现生产启用/禁用模块的相同配置 app/etc/config.php 您如何处理这种情况?您需要手动制作吗? 您的观点是什么或如何处理这些情况? 谢谢 * VCS:版本控制系统,例如:git,svn等


3
magento 2删除迷你购物车项目页面重新加载?
删除迷你购物车物品时如何重新加载页面? 我知道这是Magento 2错误。 在结帐购物车页面上,有很多产品在迷你购物车中以及当我删除时在结帐购物车页面中在迷你购物车中,内容未更新,我知道使用Ajax更新结帐购物车页面内容是一件大事,所以我在考虑何时客户从购物车中删除商品,我需要重新加载页面。

4
Magento 2班级位置和名称的最佳做法
在Magento 1我们习惯于将我们的类放在这些目录中 块 帮手 模型 资源资源 并使用简单的类名,名称中间不要包含任何大写字母。 如果我们看看一些情况 Magento 2 Core 帮手 地点: - \Foo\Bar\Helper 姓名: - *.php 例子: - \Magento\ImportExport\Helper\Report -\Magento\Cms\Helper\Wysiwyg\Images 观察者 地点: - \Foo\Bar\Observer 姓名: - *.php - *Observer.php 例子: - \Magento\CustomerCustomAttributes\Observer\SalesOrderAddressAfterLoad -\Magento\CustomerBalance\Observer\ProcessBeforeOrderPlaceObserver 外挂程式 地点: - \Foo\Bar\Plugin 姓名: - *.php - *Plugin.php 例子: - \Magento\Catalog\Plugin\Block\Topmenu - \Magento\PageCache\Model\App\FrontController\BuiltinPlugin 资料来源:http://devdocs.magento.com/guides/v2.0/extension-dev-guide/plugins.html#declaring-a-plugin …


2
在Magento 2中加载自定义模型的最佳方法
由于我很难找到正确的方法,因此您可以在下面找到我制定的最佳实践。享受,如果需要,请更正我的英语,如果我是我,我就说我错了。:) 编辑: ...,我发现我在某些方面是错误的。因此,在Raphael的答案帮助我了解了更多信息之后,我更新了原始帖子。多亏他! 以下使用的概念: 如果您熟悉以下概念,将更容易理解以下代码和说明: 注入依赖性(因为$this->variable代码中的每个变量都被注入) 服务合同和资料库 厂 内容: 只是为了获得更多的上下文,假设我们有一个可以正确构造的模块: 包含方法的块类CustomBlock getCustomModel($id), 此方法根据在参数中传递的ID返回CustomModel对象, CustomModel类型对应于 \Vendor\Module\Model\CustomModel 此模型带有其资源模型(在中\Vendor\Module\Model\ResourceModel\CustomModel) 及其存储库(在中\Vendor\Module\Model\CustomModelRepository)。 问题: 让所有内容加载CustomModel对象的最佳实践是什么? 由于不建议使用load()此方法,因此不能使用CustomModel对象中的。 优良作法是您必须使用CustomModel服务合同。服务合同是数据接口(例如CustomModelInterface)和服务接口(例如CustomModelRepositoryInterface)。所以我的方块看起来像这样: / ** @var SlideRepositoryInterface * / 受保护的$ slideRepository; / ** * CustomBlock构造函数 * ... * @param CustomModelRepositoryInterface $ customModelRepository * ... * / 公共功能__construct( ... CustomModelRepositoryInterface $ customModelRepository ... …

3
Magento 2 StoreManagerInterface已存在于编译中的上下文对象中
我的扩展程序中出现此错误。 PackageName \ ModuleName \ Block \ Enhanced 在类中的PackageName \ ModuleName \ Block \ Enhanced在/var/www/html/app/code/PackageName/ModuleName/Block/Enhanced.php \ Magento \ Store \ Model \ StoreManagerInterface中已经存在上下文对象 public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Model\Session $catalogSession, \Magento\Store\Model\StoreManagerInterface $storeManager, array $data = [] ) { parent::__construct($context, $data); $this->_catalogSession = $catalogSession; $this->_storeManager = $storeManager; }

1
Magento 2中创建多对多关系的最佳实践方法是什么?
我环顾了核心,并看到了几个模型之间多对多关系的一些示例,但是我看不到对此的明确答案。 例如,假设我们创建了一个新模型,并且希望与现有产品表建立多对多关系。 因此,我们有了新的模型-库存商,我们这样创建了2个表,一个表用于存储库存商名称,另一个用于存储与产品的多对多关系。 安装程序类的截断版本: $table = $setup->getConnection() ->newTable($installer->getTable('stockist')) ->addColumn('stockist_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 'Stockist Id') ->addColumn('name', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, null, ['nullable' => false], 'Stockist Name'); $table = $installer->getConnection() ->newTable($installer->getTable('stockist_product')) ->addColumn( 'entity_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'nullable' => false, 'primary' => true], …

1
如何在Magento 2中选择关于运输方式的自定义阻止
使用参考链接如何在一页结帐中的以下运送方式中添加自定义阻止?,我可以在底部创建其他装运块。 但是,当选择运输方式时,我只想显示内容。当客户选择一种运输方式时,光标应转到其他信息和自定义字段,并且用户应输入数据。 当我们选择其他送货方式时,与此相关的信息(如果存在)应该会出现,否则div应该被隐藏。 与Magento 2中的http://excellencemagentoblog.com/blog/2011/11/07/magento-advanced-shipping-method-development/类似,我已经在Magento 1中实现了。

1
配置参数“ componentType”是“ advanced_pricing_button”组件所必需的。| 升级Magento 2.0.7 => 2.1.0
经过很多问题后,我设法更新了Magento 2.0.7 => Magento 2.1.0 检查升级后,我看到两个问题:1.前端未显示任何产品。2.当我要在管理员中编辑产品时,出现以下错误: 1 exception(s): Exception #0 (Magento\Framework\Exception\LocalizedException): The configuration parameter "componentType" is a required for "advanced_pricing_button" component. Exception #0 (Magento\Framework\Exception\LocalizedException): The configuration parameter "componentType" is a required for "advanced_pricing_button" component. #0 /home/tm/public_html/vendor/magento/framework/View/Element/UiComponentFactory.php(360): Magento\Framework\View\Element\UiComponentFactory->mergeMetadataItem(Array, Array, false) #1 /home/tm/public_html/vendor/magento/framework/View/Element/UiComponentFactory.php(360): Magento\Framework\View\Element\UiComponentFactory->mergeMetadataItem(Array, Array, false) #2 /home/tm/public_html/vendor/magento/framework/View/Element/UiComponentFactory.php(360): Magento\Framework\View\Element\UiComponentFactory->mergeMetadataItem(Array, Array, false) #3 …

2
在magento 2中创建类似于Customer模块的Employee模块
我已经创建了Employee模块。与客户模块相同。我已将所有文件从复制vendor/magento/module-customer到app/code/Magento/Employee。我用职员代替了顾客。但显示错误: 带有消息“常量名称”的“ InvalidArgumentException”是预期的。 和 [InvalidArgumentException] 在“设置”名称空间中没有定义命令。 我module.xml在app/Code/Magento/Employee/etc文件夹中 <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Magento_Employee" setup_version="2.0.6"> <sequence> <module name="Magento_Eav"/> <module name="Magento_Directory"/> </sequence> </module> </config> 请任何人告诉我该如何解决? 我的di.xml <?xml version="1.0"?> <!-- /** * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <preference for="Magento\Employee\Api\AddressRepositoryInterface" …
15 magento2  module 

3
Magento2设计后备逻辑
我们已经知道Magento 1.x的设计后备逻辑: 当前包/当前主题 当前包/默认主题 基本包/默认主题 现在。我想知道Magento 2.x中针对主题,布局和模板文件的设计后备逻辑是什么? 请简要描述。

4
magento设置:升级错误“缺少部署配置”
当我尝试升级Magento 2时,php bin/magento setup:upgrade我得到了 我懂了 [Magento \ Setup \ Exception] 无法运行此操作:缺少部署配置。运行'magento setup:config:set --help'选项。设置:升级 [-保持生成] [--magento-init-params =“ ...”] 如何解决?使用Web更新程序进行更新会出现以下错误: 我要求托管服务提供商对其进行修复,他们确实安装了正确的php版本5.6和magento推荐的所有扩展,并创建了cron作业,但我仍然看到错误。 更新:( 从评论) env.php不存在,当我运行magento setup:config:set我得到这个错误: $ bin / magento setup:config:set SQLSTATE [HY000] [2002]没有这样的文件或目录 [InvalidArgumentException] 参数验证失败
15 magento2  upgrade 

1
Magento2:如何覆盖核心js模块price-box.js
我需要扩展Magento_Catalog/js/price-box.js。我已经使用了“ mixins”功能,但不适用于price-box.js。 requirejs-config.js: var config = { config: { mixins: { 'Magento_Catalog/js/price-box': { 'My_Module/js/price-box/pluggin': true } } } }; My_Module/view/frontend/web/js/price-box/pluggin.js define(function () { 'use strict'; return function (target) { // modify target var reloadPrice = target.reloadPrice; target.reloadPrice = function() { cosole.log("hello"); }; return target; }; });

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.