加载与调用机制:
        当地址栏键入/mobile,就会加载入口文件index.php;从入口文件里面会调用EcTouch.php公共入口文件,当进入公共入口文件,会定义一些变量,然后加载公共函数文件Common.php,再加载默认配置和数据库配置时区的设置等基本功能,然后会调用在Common.php里面的urlRoute()函数,这个函数是在Common.php里面。在调用urlRoute()函数进行网址路由解析解析时,会调用\mobile\include\vendor\Dispatcher.class.php这个文件里面的dispatch()方法进行URL调度,这个方法获得当前实际的模块名,控制器和方法名。对获得的这些模块名,控制器和方法会在Common.php进行URL的组装,并最终解析呈现出页面。 然后实现各个页面的传递与跳转。最后抛出异常处理。
     default模块和admin模块下有着自己的控制器和model,还有数据库配置文件。
 
加载与调用主要函数及定义如下(缩进为层次关系,缩进指在当前文件下):
调用文件 文件存放位置
1、入口文件   \mobile\index.php
2、调用核心文件     \mobile\include\EcTouch.php
                        define  BASE_PATH \mobile\include\

          ROOT_PATH \mobile\
                    APP_PATH \mobile\include\apps\
                  ADDONS_PATH \mobile\plugins\
                    DEFAULT_APP                 default
                    DEFAULT_CONTROLLER     Index
                  DEFAULT_ACTION         index

                   加载系统函数       \mobile\include\Common.php
                                        路由解析 urlRoute()

生成URL链接 url( U())
                        URL组装 U()
                        URL重定向 redirect()
                        自动加载         \mobile\include\base\model\类名.class.php
                        \mobile\include\base\controller\类名.class.php
                        \mobile\include\apps\模块名\model\类名.class.php
                        \mobile\include\apps\模块名\controller\类名.class.php
                        加载配置文件 load_config()
                        C()获取和设置配置参数、E()异常、L()获取和设置语言定义、I()获取输入参数、
                        session()session管理函数
                        cookie()Cookie 设置、获取、删除
                        site_info()站点数据
                        logResult()写入日志文件

                    默认配置    \mobile\include\Convention.php (包含应用配置、数据库配置、模板配置、session参数设置、Cookie参数设置)
            数据库配置      \mobile\data\config.php
                    define      __HOST__      http://localhost
                                    __ROOT__        \mobile
                                    __URL__             http://localhost/mobile
                                    __PUBLIC__      \mobile\data\common
                                    __ASSETS__  \mobile\data\assets\default
 
 
 
\mobile\include\vendor\Dispatcher.class.php文件主要方法名和变量定义:
获得实际的控制器名称getController
获得实际的操作名称getAction
获得实际的模块名称getModule
获取模块名称
define('APP_NAME')|C('_APP_NAME')  default
当前应用地址
 define('__APP__', /mobile/index.php
定义控制器和操作名
define('CONTROLLER_NAME') Index
define('ACTION_NAME') index
URL地址
define('__MODULE__'      /mobile/index.php/default 
define('__CONTROLLER__ /mobile/index.php/default/index
define('__ACTION__ /mobile/index.php/default/index/index
define('PHP_FILE', /mobile/index.php
define('__SELF__' /mobile/index.php?m=default&c=index&a=index
待续。。。

ectouch第三讲之加载调用机制的更多相关文章

  1. [转载] Android动态加载Dex机制解析

    本文转载自: http://blog.csdn.net/wy353208214/article/details/50859422 1.什么是类加载器? 类加载器(class loader)是 Java ...

  2. Java_动态重新加载Class机制

    Java动态重新加载Class 项目中使用到了动态重新加载Class的机制,作用是让一些代码上线之前可以在线上环境测试一下,当然,这是非常不好的测试机制,我刚来的时候也为这种机制感到惊讶—怎么可以在线 ...

  3. [转][osg]关于PagedLOD 加载卸载机制

    你的PagedLOD 为什么没有卸载 转自:http://bbs.osgchina.org/forum.php?mod=viewthread&tid=7612&highlight=Pa ...

  4. unreal3对象属性自动从配置文件中加载的机制

    unrealscript中有两个与属性自动配置相关的关键字: config/globalconfig 当把它们应用于属性时,对象在创建后,该属性的初始值会被自动设置为相对应ini文件中的值. 举例来说 ...

  5. Spring加载XML机制

    转载自跳刀的兔子   http://www.cnblogs.com/shipengzhi/articles/3029872.html 加载文件顺序 情形一:使用classpath加载且不含通配符 这是 ...

  6. 基于python的opcode优化和模块按需加载机制研究(学习与个人思路)(原创)

    基于python的opcode优化和模块按需加载机制研究(学习与思考) 姓名:XXX 学校信息:XXX 主用编程语言:python3.5 个人技术博客:http://www.cnblogs.com/M ...

  7. java类什么时候加载?,加载类的原理机制是怎么样的?

    java类什么时候加载?,加载原理机制是怎么样的?   答: 很多人都不是很清楚java的class类什么时候加载在运行内存中,其实类加载的时间是发生在一下几种情况: 1.实例化对象时,就像sprin ...

  8. Dubbo 扩展点加载机制:从 Java SPI 到 Dubbo SPI

    SPI 全称为 Service Provider Interface,是一种服务发现机制.当程序运行调用接口时,会根据配置文件或默认规则信息加载对应的实现类.所以在程序中并没有直接指定使用接口的哪个实 ...

  9. java中调用本地动态链接库(*.DLL)的两种方式详解和not found library、打包成jar,war包dll无法加载等等问题解决办法

    我们经常会遇到需要java调用c++的案例,这里就java调用DLL本地动态链接库两种方式,和加载过程中遇到的问题进行详细介绍 1.通过System.loadLibrary("dll名称,不 ...

随机推荐

  1. 第十篇 Integration Services:高级事件行为

    本篇文章是Integration Services系列的第十篇,详细内容请参考原文. 简介在前一篇, we introduced fault tolerance by examining method ...

  2. linix container & cgroup note

    1,Containers can run instructions native to the core CPU without any special interpretation mechanis ...

  3. C++Primer 第十九章

    //1.控制内存分配: //A:某些应用程序对内存分配有特殊的需求,因此我们无法将标准内存管理机制直接应用于这些程序.它们常常需要自定义内存分配的细节,比如使用关键字new将对象放置在特定的内存空间中 ...

  4. PostgreSQL Replication之第十一章 使用Skytools(3)

    11.3 管理 pgq-queues Skytools 的一个核心组件是pgq.它提供了一个通用排队接口,它可以让您把消息从一个消息提供者传送到一个任意数目的接收者. 现在的问题是:一般来说,一个队列 ...

  5. Python学习总结14:时间模块datetime & time & calendar (一)

    Python中的常用于处理时间主要有3个模块datetime模块.time模块和calendar模块. 一.time模块 1. 在Python中表示时间的方式 1)时间戳(timestamp):通常来 ...

  6. ActionController::InvalidAuthenticityToken 解决办法(第二种尤其有效)

    第一种:  Ror代码 class FooController < ApplicationController       protect_from_forgery :except => ...

  7. .NET: 配置文件

    VS里项目->添加新项->应用程序配置文件 <?xml version="1.0" encoding="utf-8" ?> <co ...

  8. UML: 协作图

    摘自http://www.umlonline.org/school/thread-38-1-1.html UML1.1时,协作图英文名字叫:Collaboration Diagram,UML2.0时, ...

  9. yii2封装一个类控制div宽度,高度

    1.首先,封装一个类,放在文件夹vendor下,命名为articls.php. <?phpclass Articles{ //测试    function add()    {        r ...

  10. demo15 AlertDialog

    Dialog dialog = new AlertDialog.Builder(this).setTitle("对话框").setMessage("this is msg ...