在Magento中覆盖没有自定义模块的块核心文件

时间:2016-03-03 10:45:05

标签: php magento magento-1.7 magento-1.9

我只是想知道我是否可以在本地代码池中创建产品块(即 \ app \ code \ local \ Mage \ Catalog \ Block \ Product.php )而无需仅使用我的自定义模块放这个单独的文件?

如果是这样,这个本地代码池阻塞调用还是核心调用?如果是本地的,请告诉我原因。

1 个答案:

答案 0 :(得分:0)

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

这是因为加载app / 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
  5. 如果系统找不到任何这些文件,则会抛出错误。