CUSTOM_CORE模式,是ECStore在 底层autoload 开放的一种最直接的拦截入口。
当开启CUSTOM_CORE模式后,整个ECStore系统在底层autoload 类文件、资源文件、view页面时,将优先从CUSTOM_CORE定义目录寻找。从而达到覆盖定义的目的。
例如autoload 加载某个控制器时的底层代码:
if(defined('CUSTOM_CORE_DIR') && file_exists(CUSTOM_CORE_DIR.'/'.$owner.'/controller/'.str_replace('_','/',substr($class_name,4)).'.php')){ $path = CUSTOM_CORE_DIR.'/'.$owner.'/controller/'.str_replace('_','/',substr($class_name,4)).'.php'; }else{ $path = APP_DIR.'/'.$owner.'/controller/'.str_replace('_','/',substr($class_name,4)).'.php'; }
如何开启CUSTOM_CORE模式
在ECStore config.php 中定义CUSTOM_CORE_DIR目录即可
如把CUSTOM_CORE_DIR定义在ECStore根目录下的custom文件夹:define('ROOT_DIR',realpath(dirname(__FILE__).'/../')); define('CUSTOM_CORE_DIR',ROOT_DIR.'/custom');
在custom 文件夹放置需要拦截的目标控制器、模型、lib 、view即可。放置时,相对路径保持一致。
比如我需要拦截app/b2c/controller/site/brand.php 这个控制器。
那么只需在custom 文件夹中放置b2c/controller/site/brand.php 文件夹结构和文件即可。