Questions tagged «magento2»

有关Magento 2的一般问题,不专门针对次要版本。使用此标签可以区分Magento1。如果您对特定版本有疑问,请改用相应的“ Magento-2.x”标签。Magento 2次要版本之间的功能可能有所不同。

7
Magento 2:直接使用还是不使用ObjectManager?
好的,昨天我们就与Magento社区的其他人就直接使用ObjectManagerclass / templates进行了大讨论。 我已经知道了我们不应该直接使用ObjectManager的原因,并引用了Alan Kent的话: 有几个原因。该代码将起作用,但是最佳实践是不直接引用ObjectManager类。 因为我们这么说!;-)(更好地表示为一致的代码就是好的代码) 该代码将来可以与其他依赖项注入框架一起使用 测试更加容易 -您可以为所需的类传递模拟参数,而不必提供模拟ObjectManager 它使相关性更加清晰 -通过构造函数列表可以清楚地了解代码所依赖的内容,而不是将依赖项隐藏在代码中间 它鼓励程序员更好地考虑诸如封装和模块化的概念 -如果构造函数变大,也许这是代码需要重构的标志 根据我在StackExchange中看到的内容,很多人倾向于使用简单/简短/不推荐的解决方案,例如: <?php //Get Object Manager Instance $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); //Load product by product id $product = $objectManager->create('Magento\Catalog\Model\Product')->load($id); 而不是经历痛苦但推荐的过程: 创建一个模块 宣布偏好 注入依赖 声明一个公共方法 但是,随之而来的难题是,Magento 2核心文件经常直接调用ObjectManager。可以在此处找到一个简单的示例:https : //github.com/magento/magento2/blob/develop/app/code/Magento/GoogleOptimizer/Block/Adminhtml/Form.php#L57 所以这是我的问题: Magento为什么要做他们建议我们不要做的事情?这是否意味着在某些情况下我们应该ObjectManager直接使用Direct?如果是这样,那是什么情况? 直接使用ObjectManager有什么后果?

13
Magento 2:替换为Mage :: log方法?
在Magento 1中,如果要将消息发送到日志,则可以在全局Mage类上使用静态方法。 Mage::log($message, Zend_Log::DEBUG, "my-log-file.log"); Magento 2中有等同功能吗?我已经在开发文档网站上搜索了Google,却没有发现任何明显的弹出信息。有此Inchoo文章,但这是从一年前开始的,此后发生了很大变化。 作为Magento 2模块开发人员,如果我想替换Magento 1中的以下代码 Mage::log($message, Zend_Log::DEBUG, "my-log-file.log"); 我需要做的最低限度是什么?
105 magento2  log  psr-logger 

11
如何在test.php脚本中引导Magento 2?
在magento 1中,我可以创建一个只需要实例化Mage_Core_Model_App该类的文件,然后可以添加“脏”代码以进行测试。 像这样的东西test.php: <?php //some settings error_reporting(E_ALL | E_STRICT); define('MAGENTO_ROOT', getcwd()); $mageFilename = MAGENTO_ROOT . '/app/Mage.php'; require_once $mageFilename; Mage::setIsDeveloperMode(true); ini_set('display_errors', 1); umask(0); //instantiate the app model Mage::app(); //my toy code in here. 然后,我可以test.php在浏览器中调用并查看我在做什么。 Magento 2我该如何做?
93 magento2  testing 

5
GIT和部署策略Magento2项目
在Magento 1中,我使用了一个部署工具,该工具提取了GIT存储库,运行了类似的命令modman deploy-all,并确保该var目录可写。对于.gitignore我来说,我使用的这个效果很好。 但是Magento 2呢? 哪种gitignore效果最好,如何部署项目以及在部署前和部署后应运行什么命令。期待听到社区的一些见解。 问题将持续存在一段时间
91 magento2 

4
Magento 2中的UI组件网格的说明
在Magento 2中创建UI组件网格所需的最低配置是否有很好的解释和/或示例? 我知道有很多核心组件,例如 ./vendor/magento/module-catalog/view/adminhtml/ui_component/product_listing.xml 但是,这些XML文件是可扩展的,关于每个节点的功能以及如何使用它从头开始构建网格的解释很少。 还有这个示例模块,但是 似乎是形式 缺少关于每个节点做什么的上下文/解释 我正在寻找“入门”信息,这些信息将使我能够为自己的CRUD模型集合构建网格。


5
我们何时应该在Magento 2中使用存储库和工厂?
我已经阅读了Magento 2中的一些教程,这让我有些困惑。我可以看到基本上有两种方法可以读取/写入业务实体: 检索数据 使用工厂方法 $object = $this->myFactory->create(); $object->load($myId); 使用存储库方法 $repo = $this->myRepository(); $object = $repo->getById($myId); 保存数据 使用工厂方法 $object = $this->myFactory->create(); $object->load($myId); $object->setData('something', 'somethingDifferent')->save(); 使用存储库方法 $repo = $this->myRepository(); $object = $repo->getById($myId); $object->setData('something', 'somethingDifferent'); $repo->save($object); 我还看到,可以使用依赖项注入来注入存储库和工厂类。至少对我来说这令人困惑。 我们什么时候应该使用存储库方法和工厂方法?我们需要遵循的最佳实践是什么?

13
Magento准备好使用PHP 7了吗?
PHP 7即将达到测试版状态,目前正在进行大量测试。考虑到Magento在去年从“仅在PHP 5.3上运行”发展到“与PHP 5.6完全兼容”,因此我想知道他们考虑了多少与Magento 1.x和Magento 2兼容的PHP 7。 我在Anna Filina的这篇文章中找到了她在Magento 1.9.1中发现的一个问题(在1.9.2中仍未更改),但是考虑到Magento 1没有单元测试,我不相信这是唯一的问题。 因此,问题是:是否可以确保PHP 7与Magento 1的兼容性?而且由于Magento 2可能已经在PHP 7上进行了测试(谢谢自动化测试!),所以是否存在任何已知问题?

2
Magento 2 @escapeNotVerified
我/* @escapeNotVerified */在Magento2的模板文件中看到了很多此注释。 它有特殊含义吗? 有什么用吗? 例子: https://github.com/magento/magento2/blob/2.1/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml#L23 https://github.com/magento/magento2/blob/2.1/app/code/Magento/Catalog/view/frontend/templates/product/image_with_borders.phtml#L10 https://github.com/magento/magento2/blob/2.1/app/code/Magento/Catalog/view/frontend/templates/product/gallery.phtml#L12 我可以在这里继续浏览几页。

7
Magento 2如何解锁重新索引过程
我正在Magento重新编制索引过程中进行一些测试,并且锁定了股票编制索引过程。 我如何才能解锁此过程? Design Config Grid index has been rebuilt successfully in 00:00:02 Customer Grid index has been rebuilt successfully in 00:00:03 Category Products index has been rebuilt successfully in 00:00:00 Product Categories index has been rebuilt successfully in 00:00:00 Product Price index has been rebuilt successfully in 00:00:00 Product EAV …


12
Magento 2文件夹/文件权限
我怀疑我的Magento 2安装上的权限可能被弄乱了。在旧版本上,我将运行以下命令来创建文件夹755和文件644: find . -type f -exec chmod -c 644 {} \; && find . -type d -exec chmod -c 755 {} \; 您能否让我知道Magento 2的正确文件和文件夹权限是什么,因为它们似乎有所不同?另外,如果有一些特定的文件夹或文件需要不同的权限。


4
抽象模型中不建议使用的保存和加载方法
我看到,在Magento的2回购的开发分支的方法load,并save从Magento\Framework\Model\AbstractModel阶级已被弃用。 但是核心中有大量的类可以扩展这个类并使用save和load。 在为实体的CRUD部分创建自己的模块时,我遵循与核心模块相同的准则。 但是,由于不赞成使用这些方法,所以我宁愿为将来做准备。 我应该用什么代替它们?还是我应该扩展其他内容?

8
如何在Magento 2中创建自定义日志文件?
在Magento 1中,通常将日志分为不同的文件(将付款方式的日志分开等)。就像更改的$file参数一样简单Mage::log。 Magento 2已更改为使用Monolog。 看来Monolog(或它的Magento2的实现)按严重性将整个框架的所有日志细分为处理程序。有一些写入文件的处理程序: \Magento\Framework\Logger\Handler\Debug,\Magento\Framework\Logger\Handler\Exception,\Magento\Framework\Logger\Handler\System 像Magento 1一样登录到var / log中的相应文件。 我可以为特定的严重性添加处理程序(即,向发送通知var/log/notice.log)。扩展\Magento\Framework\Logger\Handler\Base并在中注册处理程序di.xml。 本文大致介绍了该过程:http : //semaphoresoftware.kinja.com/how-to-create-a-custom-log-in-magento-2-1704130912 但是,如何将一个类(不是Magento的全部)的所有日志(不仅是一种严重性)写入我选择的文件中? 看来我必须创建自己的版本Magento\Framework\Logger\Monolog,但是如何使所有这些组合在一起才能真正起作用? 如果这是Magento 2中的大禁忌,那么有什么选择?我需要一些用于分隔此扩展名的日志,以便在必要时在客户端站点上对其进行调试。将该信息写入system.log,exception.log等并与其他模块的日志混杂在一起是不切实际的。
57 magento2  log  logging 

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.