`
myfreespace
  • 浏览: 223263 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

项目流程分析

阅读更多

网站用的mvc模式,显示用smarty ,主要是因为网站分工比较细所以把前后台分开来做,这样就要用到模板以方便修改,多人协作开发就要用到规范的目录结构以便其他人可以读懂你的代码。

单入口:即index.php是唯一入口。任何请求均经过index.php,被路由到特定的类实例中的方法。

路由:实际上是通过应用根目录下的.htaccessapacherewrite模块,以及对请求字符串的分解而实现的(对请求字符串的分解,可能会得到请求对应的类、方法和参数),所以,runter架构中,.htaccessapache rewrite和请求字符串的分解以及请求的命名规则就是最关键的线索。

MVC:即Models View Control

命名规则:在runt中,参数与controller中的类、方法,都相对应,而controller中会调用相应的model的类对象,也需要遵从相应的命名规则

 

目录结构

应用根目录

|-- Config        相关配置文件

|-- Controllers 页面请求的处理层

|-- Cron          后台Crontab定时执行的文件

|-- Docs          文档说明及对数据库修改记录

|-- Libs          Router公用核心类定义

|-- Models         Controllers相对应类的数据库操作类

|-- Plugin        相关插件功能

|-- tmp           临时数据

|-- views       模板类

|-- webroot       前台相关文件如:CSSJSIMG

|--.htaccess      Apache Rewrite跳转规则

|-- index.php     Route框架默认首页

 

一、         流程说明

1、Webroot/index.php执行,引入相关配置定义及类定义

2、调用STD::getParam函数获取当前URL

3、调用Roter->parseParams函数分析URL

4、调用Roter->loadController函数,根据Roter框架命名规则,引入 Controllers目录及Models目录下的对应名称文件

router.class.php:133

if(file_exists(_MODELS_PATH_.$this->params["controller"]."s.class.php")){

     require_once _MODELS_PATH_.$this->params["controller"].'s.class.php';

}

require_once _CONTROL_PATH_.$this->params["controller"].".php";

,实例化该控制类、模型类并初始化显示类

$className = ucfirst($this->params["controller"])."Controller";

$controller = new $className;

 

相应controller类的__construct()函数会实例化对应模型类并调用基类的initController()

$className = $this->name."s";

$this->modelObj = new $className();

$this->initController();

 

Controller基类:

public function initController() {

     global $user;

     $this->ViewEngine = new useSmarty();

     $this->mUser = $user;

     $this->ViewEngine->assign("user",$user);

}

 

执行该类的指定Action,若未指定则默认调用该类的index方法

if (method_exists($controller,$this->params["action"])){

     $controller->{$this->params["action"]}($this->params["pass"]);

}else{

     $controller->index();

}

5、 执行相应处理,并调用相应显示模板,显示结果页

$this->ViewEngine->display( "primo.index.tpl" );

 

二、         Router核心类

1、router.class.php

本框架的核心类,主要完成URL的解析及相应控制、模型类的自动调用。说明:控制类及模型类需要按照Router命名规则。

    Router命名规则

(1)    用于实现逻辑控制的类需要存放在Controllers目录下,控制类的类名称由该类文件的文件名前缀(头字母要大写)加“Controller”组成,且派生与基类Controller

例如:

控制类文件名:primo.php

控制类定义:class PrimoController extends Controller

 

(2)    用于实现与数据库交互的模型类需要存放在Models目录下,该模型类文件名称由对应控制类文件名前缀加“s.class.php”组成。该模型类的类名称由对应控制类文件名前缀加“s”组成,且派生与基类MySql

例如:

模型类文件名:primos.class.php

模型类定义:class Primos extends MySql

    基于Router框架的URL组成

    URL以“/”为分隔,第一部分为域名,第二部分为要调用的控制,第三部分为该控制的方法名,第四部分为该方法需要接收的参数。例如:

http:// g.ifensi.com / category / searchStar / hahaha

以俱乐部为例:进入俱乐部的论坛

http://cober.g.ifensi.com/forum/listThread/21

cober.g.ifensi.com 为域名

forum 为要调用的控制名,对应文件是/controllers/ category.php

listThread为要调用的方法,在category.php中有该函数的定义

21 为本方法的参数

 

1
3
分享到:
评论

相关推荐

    项目程序分析表

    论坛项目程序分析表

    国家科技支撑计划重点项目流程分析报告.doc

    国家科技支撑计划重点项目流程分析报告.doc

    ERP项目的需求分析和未来作业流程分析报告(pdf)

    ERP项目的需求分析和未来作ERP项目的需求分析和未来作业流程分析报告

    Python开发二手房数据分析预测系统完整项目流程实战源码+文档报告.zip

    Python开发二手房数据分析预测系统完整项目流程实战源码+文档报告.zip个人98分期末大作业项目,代码完整下载可用。主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部...

    IT项目管理规范流程制度

    IT项目运作的一般流程 ...软件项目管理流程分析与设计 如何建立软件项目管理流程 IT项目工程管理操作规范 软件项目开发计划书编写规范 【IT项目计划阶段完全模板】下载 IT项目管理表格(包含146个DOC文档模板)

    企业项目需求分析大集合

    现在正在上传《企业项目需求分析大集合(原资料+最新补充)”》,因为 CSDN 网站 流程处理存在 时间间隔,无法及时通知! 如果还没下载此资源的朋友,不要下载这部资源了,请耐心等待,新资源的上传! 可在我的资源...

    软件项目开发流程图 需求分析

    1.需求分析:通过对客户业务的了解和与客户对流程的讨论对需求进行基本建 模,最 终形成需求规格说明书。 2.总体设计:通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档。

    答题小程序软件项目需求分析.pdf

    答题小程序软件项目需求分析.pdf答题小程序软件项目需求分析.pdf答题小程序软件项目需求分析.pdf答题小程序软件项目需求分析.pdf答题小程序软件项目需求分析.pdf答题小程序软件项目需求分析.pdf答题小程序软件项目...

    某集团BI项目需求分析书

    3) 业务探索式分析(OLAP)处理流程 12 4. 数据说明 12 1) 总体数据说明 12 2) 系统数据来源详细说明 14 3) 日常业务报表分析处理数据说明 14 4) 业务探索式分析OLAP处理数据说明 14 5. 系统界面基本形式 15 三、 某...

    c#项目案例分析第一章源程序

    大家好,这是c#项目案例分析第一章源程序,好东西当然要给大家分享咯

    项目数据分析报告.doc

    第三章 项目数据的采集分析 此章包括数据采集的内容、程序等。 第四章 项目数据分析采用的方法 此章包括定性分析方法和定量分析方法。 第五章 资产结构分析 此章包括固定资产和流动资产构成的基本情况、资产增减...

    在idea打包并上传到云服务项目流程分析

    主要介绍了在idea打包并上传到云服务项目流程分析,本文给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下

    项目实施流程及分析设计方法介绍

    项目实施流程及分析设计方法介绍 项目实施的6个阶段 需求分析的方法 方案设计的方法

    项目流程思维导图

    该思维导图主要介绍项目流程从需求挖掘到驻场维护所需要的一系列流程

    业务功能分析与业务流程分析.pptx

    业务功能分析与业务流程分析.pptx

    课设项目springbootIo数据分析系统源码+项目说明.zip

    课设项目springbootIo数据分析系统源码+项目说明.zip课设项目springbootIo数据分析系统源码+项目说明.zip课设项目springbootIo数据分析系统源码+项目说明.zip课设项目springbootIo数据分析系统源码+项目说明.zip课设...

    项目现场管理_生产作业流程分析表.doc

    项目现场管理_生产作业流程分析表.doc

    项目数据分析报告(1).doc

    第三章 项目数据的采集分析 此章包括数据采集的内容、程序等。 第四章 项目数据分析采用的方法 此章包括定性分析方法和定量分析方法。 第五章 资产结构分析 此章包括固定资产和流动资产构成的基本情况、资产增减...

Global site tag (gtag.js) - Google Analytics