网站用的mvc模式,显示用smarty ,主要是因为网站分工比较细所以把前后台分开来做,这样就要用到模板以方便修改,多人协作开发就要用到规范的目录结构以便其他人可以读懂你的代码。
单入口:即index.php是唯一入口。任何请求均经过index.php,被路由到特定的类实例中的方法。
路由:实际上是通过应用根目录下的.htaccess、apache的rewrite模块,以及对请求字符串的分解而实现的(对请求字符串的分解,可能会得到请求对应的类、方法和参数),所以,runter架构中,.htaccess、apache rewrite和请求字符串的分解以及请求的命名规则就是最关键的线索。
MVC:即Models View Control
命名规则:在runt中,参数与controller中的类、方法,都相对应,而controller中会调用相应的model的类对象,也需要遵从相应的命名规则
目录结构
应用根目录
|-- Config 相关配置文件
|-- Controllers 页面请求的处理层
|-- Cron 后台Crontab定时执行的文件
|-- Docs 文档说明及对数据库修改记录
|-- Libs Router公用核心类定义
|-- Models 与Controllers相对应类的数据库操作类
|-- Plugin 相关插件功能
|-- tmp 临时数据
|-- views 模板类
|-- webroot 前台相关文件如:CSS、JS、IMG
|--.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 为本方法的参数
分享到:
相关推荐
国家科技支撑计划重点项目流程分析报告.doc
软件项目管理流程分析与设计 软件项目管理流程分析与设计是软件项目管理的核心内容。软件项目管理流程分析与设计的主要目的是为了确保软件项目的成功实施。软件项目管理流程分析与设计的主要内容包括软件项目管理...
### 软件项目风险分析 #### 风险概述 在软件开发过程中,面临着多种类型的风险,这些风险不仅能够导致项目的失败,还可能给组织带来重大的经济损失。因此,进行有效的风险分析对于确保项目的成功至关重要。风险...
Python开发二手房数据分析预测系统完整项目流程实战源码+文档报告.zip个人98分期末大作业项目,代码完整下载可用。主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部...
IT项目运作的一般流程 ...软件项目管理流程分析与设计 如何建立软件项目管理流程 IT项目工程管理操作规范 软件项目开发计划书编写规范 【IT项目计划阶段完全模板】下载 IT项目管理表格(包含146个DOC文档模板)
### 项目需求分析报告知识点详解 #### 一、需求分析报告概述 在软件开发或信息系统构建过程中,项目需求分析报告是十分关键的一环。它旨在明确项目的目标、范围以及具体的业务需求,为后续的设计与开发提供指导...
该拟建工程项目投资决策分析主要涉及到工程建设项目投资决策的基本程序和主要内容,包括费用与效益估算、资金来源与使用计划、财务分析、不确定性分析等几个方面。通过本案例的学习,我们可以掌握工程建设项目投资...
通过对某集团船代项目的实际案例分析,我们可以看出,项目需求分析和调研不仅是项目成功的基石,也是优化业务流程、提升服务质量的有效手段。通过细致的需求分析和周密的调研计划,能够为项目团队提供清晰的方向,...
现在正在上传《企业项目需求分析大集合(原资料+最新补充)”》,因为 CSDN 网站 流程处理存在 时间间隔,无法及时通知! 如果还没下载此资源的朋友,不要下载这部资源了,请耐心等待,新资源的上传! 可在我的资源...
1.需求分析:通过对客户业务的了解和与客户对流程的讨论对需求进行基本建 模,最 终形成需求规格说明书。 2.总体设计:通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档。
项目管理流程是信息化项目实施中的核心环节,它涵盖了项目的各个阶段,从商机发现到项目结项,确保项目高效、有序地进行。以下是对项目管理流程的详细解释: 1. **项目立项**:这是项目的起点,涉及到发现商机、...
在项目的初期,项目分析涉及到对需求的深入理解、业务流程的梳理、问题识别以及解决方案的初步构思。在这个过程中,分析师需要具备良好的沟通技巧,以便与各利益相关者有效地交流,确保需求的准确传达。 首先,我们...
总之,项目现场管理中的生产作业流程分析是一项系统性工作,它涵盖了作业的全过程,旨在通过科学的方法和工具,提升生产效率,降低成本,实现企业的持续改进和竞争力提升。通过这份分析表,企业管理者可以有的放矢地...
业务需求分析应该包括项目的业务需求、项目的业务目标、项目的业务流程和项目的业务边界等信息。业务需求分析的目的是为了让项目团队和用户达成一致,确保项目的实施符合用户的需求。 7. 参考资料 参考资料是项目...
项目名称:微博热搜情绪分析 通过对热搜进行情绪分析,可以了解舆情状态,有助于社会治理、社会维稳、商业分析等。这个技术也可以迁移到对电影评论、商品评论等进行情绪分析,有助于企业改善产品。 流程:从微博...
职责方面,项目工程经理在项目过程中起着主导作用,包括裁剪项目流程、管理项目文件、组织项目开发团队、进行风险分析和质量策划等。工作流程详细规定了从信息搜集到项目开发各个阶段的步骤,如信息评审、项目评估、...
【表白墙网站项目开发可行性分析报告1】 引言: 表白墙网站项目开发旨在构建一个线上平台,让用户可以匿名或公开地向他人表达情感,分享心情,同时提供互动和社交功能。标识为软件工程1903小组的吴联想、王义博、...
### 网站开发项目需求分析模板解析 #### 一、引言 在进行网站开发之前,需求分析是一项至关重要的工作。它不仅帮助开发者明确项目的具体目标与功能,还能够确保最终的产品符合客户的期望。本文将详细介绍一个实用的...