OpenCart 之registry功用】的更多相关文章

1. “Registry”设计模式 在OpenCart中,Registry是整个系统的信息中枢. Registry是一个单例(Singleton),在index.php起始页面中, 首先作为构造函数参数传递给所要用到的类创建类实例,并随之将这个类实例设置到这个“注册表”中, 这个注册表就像是一个共享的数据总线一样,把各个模块/数据串联在一起. 2.整体流程 (1)创建Registry对象 (2)注册所有公共类 (3)创建Front类对象,作为请求分发器(Dispatcher) (4)根据用户请求…
Registry 中文意思是记录,登记,记录本的意思, 在opencart中他的用途就是 登记公共类.类的原型放在 system\engine文件夹下 代码很简单: <?php final class Registry { private $data = array(); public function get($key) { return (isset($this->data[$key]) ? $this->data[$key] : NULL); } public function s…
OpenCart是一套老牌的开源自由B2C电商系统,最近watch了其托管在在github上的项目,发现还是很活跃的,每天都有人反馈bug. 初步的看一下,它是支持在后台管理多个店铺的,而且可以同一个商品在不同店铺有不同的价格:店铺之间可以绑定不同的域名.这是一个比较有特色的地方. 但查看它的代码,就发现多年来改动很小,在代码的分工上,没有进化的感觉. 大量本该由视图来进行构造的数据如语言.链接.当前路径等,都放到控制器中, 像前台登录页面: $data['breadcrumbs'] = arr…
框架运行流程介绍 这样的一个get请求http://hostname/index.php?route=common/home 发生了什么? 1. 开始执行入口文件index.php. 2. require_once(DIR_SYSTEM . 'startup.php'); 做一些php的配置和加载一些类声明,包括系统主框架文件(system/engine下的文件).一些必用到的helper和library. 系统主框架文件包括: registry:保存全局变量,使用了注册者模式,controll…
1.什么是代理类 代理类指的是连接远程对象或不可见对象的接口,通常被客户端调用来连接真实的服务对象.更准确的定义参见维基百科 2.代理的作用 作为一个包装类,提供额外的功能 延迟加载 在本文讲到的opencart框架中,从实例化的角度讲,我们认为这是延迟加载(按需加载).当然, 我们可以认为这是为基础代理类库提供额外的功能.以下是opencart的基础代理类(文件路径:system/engine/proxy.php) <?php class Proxy { public function __g…
opencart 单入口文件简单分析   opencart是基于mvcl的商城系统,据说是一个外国有人单独开发.比较牛叉.但是又不大符合国人习惯,目前国内opencart社区也是不少. 简单分析了下单入口,感觉在国内商家用起来略微臃肿,需要再改进去除部分代码. 因为就在index.php上写了注释,在此贴出来,和大家一起学习. <?php // Version define('VERSION', '2.1.0.1'); // 引入system初始化的配置文件,包括常量和数据库连接设置 if (i…
1. Opencart的系统架构 1.1. 架构分析 Opencart是有自己的开发架构的,其架构的核心都在system\engine 下,访问控制统一用 根目录下的 index.php 来协调. Route 就是起到一个中转器的作用,它会根据你的Route目录去找到它要执行的方法,比如: index.php?route=account/login 根据这个route,op的框架会找到Controller下的Account里的Login.php, 注意login.php的类名一定是这种格式的Co…
Naming类和Registry类均在java.rmi包 Naming类通过解析URI绑定远程对象,将URI拆分成主机.端口和远程对象名称,使用的仍是Registry类. public static Remote lookup(String name) throws NotBoundException, java.net.MalformedURLException, RemoteException { ParsedNamingURL parsed = parseURL(name); Regist…
使用Docker来构建应用程序最常见的操作就是 docker run 或者 docker pull了,但是由于众所周知的原因,在国内想要高速稳定的获取docker hub上面的资源并不是件容易的事情,虽然国内的一些docker社区也提供了所谓的加速器,但是实测结果并不理想.今天这篇文章就给大家介绍一下怎么借助Azure Storage来搭建一个高速的私有 Docker Hub (Registiry). 一图解千言,基本上一看你就明白了.我们利用Docker Registry 提供的 Azure…
说句实话,本人基本上没用过Structuremap,但是这次居然开始看源码了,不得不为自己点个赞.Structuremap有很多的类,其中有一个叫做Widget的概念.那么什么是Widget呢?要明白什么是Widget,首先必须明白什么是Registry.而Registry又和Structuremap里面的Graph有着千丝万缕的联系.由于自己也才开始接触源码,所以可能有误导大家的地方,大家看看就好,不可盲目相信我说的,好我们先来看看下面这个类. public class MyRegistry…