2016-03-03 86 views
-1

我只想知道是否可以在本地代码池(即\ app \ code \ local \ Mage \ Catalog \ Block \ Product.php)中创建产品块我的自定义模块只放置这个单个文件?覆盖Magento中没有自定义模块的块核心文件

如果是这样,这个本地代码池将会阻塞一个呼叫还是一个核心呼叫?如果它是本地的,请告诉我为什么。

回答

0

如果您将代码/核心文件复制到代码/本地存储库,则核心文件将被本地文件覆盖。

这是因为包括路径顺序加载系统文件中的应用程序指定的/ Mage.php:

$paths = array(); 
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local'; 
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community'; 
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core'; 
$paths[] = BP . DS . 'lib'; 

所以你的情况,系统会搜索Product.php按照以下顺序:

  1. 应用程序/代码/本地/法师/目录/座/ Product.php
  2. 应用程序/代码/社区/法师/目录/座/ Product.php
  3. 应用程序/代码/核心/法师/目录/块/ Product.php
  4. 的lib /法师/目录/座/ Product.php

如果系统无法找到任何文件,它会抛出一个错误。

+1

好的........感谢您的回复和这么好的解释。 –