Php 在Magento中不使用自定义模块覆盖块核心文件

Php 在Magento中不使用自定义模块覆盖块核心文件,php,magento,magento-1.7,magento-1.9,Php,Magento,Magento 1.7,Magento 1.9,我只是想知道我是否可以在本地代码池(即\app\code\local\Mage\Catalog\block\Product.php)中创建产品块,而不让我的自定义模块只放置这个文件 如果是这样,这个本地代码池是阻塞调用还是核心一个调用?如果是本地文件,请告诉我原因。如果将代码/核心文件复制到代码/本地存储库,核心文件将被本地文件覆盖 这是因为在app/Mage.php中指定了加载系统文件的include路径顺序: $paths = array(); $paths[] = BP . DS . 'a

我只是想知道我是否可以在本地代码池(即\app\code\local\Mage\Catalog\block\Product.php)中创建产品块,而不让我的自定义模块只放置这个文件


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

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

这是因为在app/Mage.php中指定了加载系统文件的include路径顺序:

$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:

  • app/code/local/Mage/Catalog/Block/Product.php
  • app/code/community/Mage/Catalog/Block/Product.php
  • app/code/core/Mage/Catalog/Block/Product.php
  • lib/Mage/Catalog/Block/Product.php
  • 如果系统找不到这些文件中的任何一个,它将抛出一个错误