该文件为magento官方叫 ’Main Mage hub class’,翻译为中文叫’主要枢纽类’。重要性不言而喻。它是入口文件与系统其它服务交互的必经之地。
我们一行行分析代码。
首先定义了系统的DS、PS、BP。定义DS、PS是为了兼容WINDOW 和LINUX系统对目录分隔符和路径分隔符的不同表示方法。BP定义了系统的绝对路径。
接着获得inlcude_path,如果有编译开启了则把编译的路径配置set到系统的include_path,接着包含编译的核心函数及类自动加载机制。如果没有开启编译,同样也是path的管理,
把app/code/目录下的local,community,core及lib下的包、库set到系统的include_path。关于include_path,它是PHP include require文件时寻找文件时的路径定义。
如果包含的同一个文件在多个include_path中,则会按照include_path的顺序有相应的加载机制。
接着引入 include_once "Mage/Core/functions.php";include_once "Varien/Autoload.php";
Functions.php
处理了gpc.Class autoload,对象析构,翻译函数,ucwords,Simple sql format date,编译文件的寻找机制,自定义的错误处理,自定义的回溯跟踪函数的调用信息,csv解析,目录是否可写,
系统临时文件 sys_get_temp_dir 如果没有自己创建一个。
Autoload.php
类自定加载机制,magento有编译的概念,编译也是一个大的课题,magento用了做优化用的,后续会专门介绍。类的自动记载机制就要区分magento是否处于编译运行状态,如果是则从编译后的文件里去寻找文件。如果不是,则启动默认的类自动加载。
类的自动加载,PHP 里可以参考 spl_autoload_register(),__autoload();
接着就是fi
我们一行行分析代码。
首先定义了系统的DS、PS、BP。定义DS、PS是为了兼容WINDOW 和LINUX系统对目录分隔符和路径分隔符的不同表示方法。BP定义了系统的绝对路径。
接着获得inlcude_path,如果有编译开启了则把编译的路径配置set到系统的include_path,接着包含编译的核心函数及类自动加载机制。如果没有开启编译,同样也是path的管理,
把app/code/目录下的local,community,core及lib下的包、库set到系统的include_path。关于include_path,它是PHP include require文件时寻找文件时的路径定义。
如果包含的同一个文件在多个include_path中,则会按照include_path的顺序有相应的加载机制。
接着引入 include_once "Mage/Core/functions.php";include_once "Varien/Autoload.php";
Functions.php
处理了gpc.Class autoload,对象析构,翻译函数,ucwords,Simple sql format date,编译文件的寻找机制,自定义的错误处理,自定义的回溯跟踪函数的调用信息,csv解析,目录是否可写,
系统临时文件 sys_get_temp_dir 如果没有自己创建一个。
Autoload.php
类自定加载机制,magento有编译的概念,编译也是一个大的课题,magento用了做优化用的,后续会专门介绍。类的自动记载机制就要区分magento是否处于编译运行状态,如果是则从编译后的文件里去寻找文件。如果不是,则启动默认的类自动加载。
类的自动加载,PHP 里可以参考 spl_autoload_register(),__autoload();
接着就是fi