【精品】zencart完整的api开发参考手册

【精品】zencart完整的api开发参考手册

ID:1358382

大小:1.25 MB

页数:61页

时间:2017-11-10

【精品】zencart完整的api开发参考手册_第1页
【精品】zencart完整的api开发参考手册_第2页
【精品】zencart完整的api开发参考手册_第3页
【精品】zencart完整的api开发参考手册_第4页
【精品】zencart完整的api开发参考手册_第5页
资源描述:

《【精品】zencart完整的api开发参考手册》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ZenCartAPI开发指南1.1InitSystem1.1.1initSystem介绍为什么是initSystem?initSystem原来是指一个用在把一定PHP文件组合在一起的标签,在新的ZenCart文献中,initSystem这个短语,是指在任何‘命令’脚本运行之前被自动包括或初始化的全部文件。ZenCart使用一个(非面向对象)页面控制器模式,以HTTP_GET参数为基础,决定需要运行的脚本。其中最重要的是'main_page'这个HTTP_GET参数。取决于该参数,一个命令脚本然后运行。每个命令脚本

2、位于/includes/modules/pages目录中。例如,如果main_page=login那么将会从/includes/modules/pages/login/目录提取命令脚本。然而每一个命令脚本要做的第一件事是require()/includes/application_top.php文件。这个文件是initSystem的核心。application_top.php文件负责初始化基本的子系统(数据库抽象/sessions/语言等等)以及加载全局配置数据。在以前这些是通过一个硬编码(hard-coded)

3、脚本来实现的。从v1.3.0开始,ZenCart现在使用了一个控制数组来决定哪些函数/类/数据文件被包括和初始化。这将允许开发者和贡献者访问和扩展initSystem而不受升级影响。在下面的几个章节,我们将会探讨ZenCart引擎是如何使用application_top.php来初始化系统的。1.1.2application_top.php-一点历史按照osCommerce的定义,application_top.php是被每一个“唤起和处理基础核心子系统所必须的”页面或脚本所包括的文件。任何被页面所需要的全局函数

4、或类必须在这里被初始化。从一个定制角度而言这糟糕透了。如果第三方代码(贡献者)需要访问一个新的全局函数或类,那么application_top.php需要被破解。这显然会引发升级问题:当application_top.php被重写(在升级过程中),任何定制的代码将会丢失。ZenCart试图减轻这个痛苦,办法是通过提供一定的重写目录,来放置额外的数据或函数文件,当application_top.php运行的时候可以自动包括进这些额外文件。这个系统的问题是:在application_top.php运行顺序中,只提供了

5、很少的空间来引入新的代码。它同时也没有提供引入新类的功能。需求是:一个application_top.php文件应该允许放置由开发者完全掌控的任意新函数、类或者脚本。更进一步,还应该允许放置一些加载和唤起类的方法。自从v1.3,ZenCart通过把由application_top.php运行的代码抽象进一个控制数组,来实现这个目标。这个数组存储了需要运行的函数、类、初始化脚本的细节,以及它们(函数、类、初始化脚本)的运行顺序。由此,现在第三方开发者可以hook(挂勾)到application_top.php,同时

6、可以确信将来任何的代码升级(系统升级)一般不会覆盖他们自己的代码。1.1.3application_top.php-断点在ZenCart,application_top.php文件中现在几乎没有过程代码。很少的一部分过程代码将会稍后探讨。以前大量存在于application_top.php文件中的过程代码现在让位给处理断点。断点可以简单的描述为重要的节点。在application_top.php文件中我们现在有差不多20个断点。在每一个断点,一些重要的事情发生了。-我们可以加载一个函数或者类,初始化一个类,加载一

7、个脚本片断,诸如此类。重要的节点用来识别在每个断点,第三方代码(通过添加到控制数组的方式)也能加载函数,加载类,初始化类,运行一个类的方法或者加载(require)一个脚本片断。1.1.4控制数组控制数组会从/includes/auto_loaders目录中被自动加载。在那个目录中的每一个*.php文件预计拥有一定的结构。在v1.3我们使用一个名为config.core.php的文件作为控制application_top.php的主要文件。第三方开发者可添加他们自己的控制数组文件。每个文件的结构看起来应该是这样的

8、:在$autoLoadConfig后面的值(本例中是[0])代表动作发生的顺序(也就是断点),这样一来$autoLoadConfig[0]将会在$autoLoadConfig[1]之前发生。同时注意断点相同的任意两个条目将会以它们在文件中出现的先后顺序发生。array()部分的内容取决于需要达到的效果。让我们设想一些不同的场景。首先,我只想包括一个需要加载的文件。为此,控

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。