1.

	/* 载入配置项 */
$setting =& af(MODULE);
Conf::load($setting->getAll());

af方法定义如下:

/**
* 获取数组文件对象
*
* @author Garbin
* @param string $type
* @param array $params
* @return void
*/
function &af($type, $params = array())
{
static $types = array();
if (!isset($types[$type]))
{
/* 加载数据文件基础类 */
include_once(ROOT_PATH . '/includes/arrayfile.base.php');
include(ROOT_PATH . '/includes/arrayfiles/' . $type . '.arrayfile.php');
$class_name = ucfirst($type) . 'Arrayfile';
$types[$type] = new $class_name($params);
} return $types[$type];
}

其实就是加载了两个文件,然后返回了一个实例化的对象,上面载入配置项 af 传参的MODULE是指当前模块的名字,

关于af方法 注释说是没有返回值,但是下面return的是一个对象,af里引入了两个类文件,其实,实例化的就是basearrayfile这个对象,因为引入的类文件里继承的这个basearrayfile对象,然后调用里面的方法获取配置信息,至于什么时候要获取配置信息,就要看项目需求了,比如,会员年费有可能是100,也有可能是200,这个时候不能在程序里写死,所以要在配置文件里配置,这样要改的话就改配置文件,就不用改程序代码了,通过查询配置文件,就可以得到修改后的价格。 配置文件在data目录下名为XXX..inc.php.

m 实例化模型对象,这个是最常用的 也就相当于TP框架里的直接实例化一张表,可以对表的内容进行增删查改。

bm 实例化的是业务对象,也就是继承自模型对象(m方法实例化的),不过逻辑相对复杂,就抽象出来行成业务对象,进行业务逻辑处理,也会有增删改查,业务多的时候需要逻辑分层,这个时候用bm,(可以参考线上商城的goods.model.php)我还是不太懂,大腿毕竟是大腿,等过几年接触的东西多了,业务实现的多了,说不定我就懂了......此处应该有表情,可是这个编辑器没有,我能怎么办呢,我也很无奈。

2017.6.9

关于ecmall的模块开发

什么时候用到模块开发? 一个新的项目需求,需要分析,经常用的是直接写控制器 也就是在项目文件夹下的app里写前台控制器,在admin/app里写后台控制器。

开发过程中,常用的就是直接在app目录下写控制器,适用于简单的需求,可快速开发,扩展性较差,相应的功能在后台需要添加相应的菜单。

开发模块适用于较大,较为复杂的项目需求,模块的扩展性较好,模块开发也要写前后台模块,后台扩展里可以进行模块的管理。

关于模块开发和直接写控制器,在逻辑上,业务上没有区别,只是不同的做法而已,module比较容易扩展,app比较容易开发。

模块访问就是 index.php?module=XX&act=XXX

直接写控制器的访问就是 index.php?app=XX&act=XXX

关于ecmall的模版

前台模版是在项目目录下的themes 里面分为mall 和store 。mall 是商城模版,store是店铺模版。至于控制器引入上传模版还是店铺模版就看继承的父类了,继承mallbase的就引入mall,继承storebase就引入store。

2017.6.12

ecmall 学习记录的更多相关文章

  1. ecmall 学习记录3

    1.在ecmall.php 中 336行有一个函数 function lang_file($file) { return ROOT_PATH . '/languages/' . LANG . '/' ...

  2. ecmall 学习记录2

    1.ecmall 自带的写入日志方法:do_log4php("函数名","类名",$param);   $param是参数 在类里调用写入之日的方法 需要先加载 ...

  3. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  4. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  5. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  6. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  7. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  8. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

  9. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

随机推荐

  1. MySQL5.7 多源复制监控脚本

    #!/bin/bash :<<BLOCK Version : v1.0 2018-12-21 MySQL多源复制检测脚本 监控配置放在 $CONFIG_FILE 中,内容如下 #mysql ...

  2. nginx代理配置 配置中的静态资源配置,root 和 alias的区别

    这篇主要内容是:nginx代理配置 配置中的静态资源配置,root 和 alias的区别.启动注意事项! 为什么会在window上配置了nginx呢?最近我们的项目是静态资源单独放在一个工程里面,后端 ...

  3. AFNetworking的简单使用

    AFNetworking的下载地址: https://github.com/AFNetworking/AFNetworking AFNetworking的使用非常简单,创建一个类,调用一个方法就可以达 ...

  4. 数据库只有mdf文件而没有ldf文件,如何恢复数据库

    举例:数据库名为 TestData 第一步: 新建一个同名的数据库即TestData数据库 第二步: 停掉数据库服务,找到刚才新建的TestData数据库的mdf和ldf文件,删掉ldf文件,再用之前 ...

  5. P4725 【模板】多项式对数函数

    思路 考虑对ln求导后处理 根据复合函数的求导法则\(g'(f(x))=g'(x)f'(x)\) 得到 \[ \ln F(x) '= \frac{F'(x)}{F(x)} \] 最后对这个式子积分 \ ...

  6. 【论文笔记】CBAM: Convolutional Block Attention Module

    CBAM: Convolutional Block Attention Module 2018-09-14 21:52:42 Paper:http://openaccess.thecvf.com/co ...

  7. Learning-Python【29】:网络编程之粘包

    粘包问题 上一篇博客遗留了一个问题,在接收的最大字节数设置为 1024 时,当接收的结果大于1024,再执行下一条命令时还是会返回上一条命令未执行完成的结果.这就是粘包问题. 因为TCP协议又叫流式协 ...

  8. gym 101081 gym F. Auction of Services 最小生成树+倍增LCA

    F. Auction of Services time limit per test 2.0 s memory limit per test 256 MB input standard input o ...

  9. leecode第一百四十六题(LRU缓存机制)

    class LRUCache { private: unordered_map<int, list<pair<int,int>>::iterator> _m; // ...

  10. 《HTTP 权威指南》笔记:第十四章 安全 HTTP

     HTTPS 与 HTTP 不同,其在传输层与应用层之间添加了一个 SSL/TLS 的安全层.机制:所有的 HTTP 请求与响应都要通过 SSL/TLS 先进行加密,再进行传输. 基础知识 密码 c ...