服务器要求
PHP 版本 5.2 或更新的版本。
MySQL版本推荐5.0或者更新版本。
模型-视图-控制器 (MVC)
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用
MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。
视图:
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角,但一些新的技术已层出不穷,它们包括Adobe Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型:
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器:
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
文件目录结构
根目录
| – api 接口文件目录
| – caches 缓存文件目录
| – configs系统配置文件目录
| – caches_* 系统缓存目录
| – phpcms phpcms框架主目录
| – languages 框架语言包目录
| – libs 框架主类库、主函数库目录
| – model 框架数据库模型目录
| – modules 框架模块目录
| – templates 框架系统模板目录
| – phpsso_server phpsso主目录
| – statics 系统附件包
| – css系统css包
| – images 系统图片包
| – js系统js包
| – uploadfile 网站附件目录
| – admin.php 后台管理入口
| – index.php 程序主入口
| – l FLASH跨域传输文件
| – 搜索引擎蜘蛛限制配置文件
| – favicon.ico 系统icon图标
URL访问
PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。
参数名称 | 描述 | 位置 | 备注 |
m | 模型/模块名称 | phpcms/modules中模块目录名称 | 必须 |
c | 控制器名称 | phpcms/modules/模块/*.php 文件名称 | 必须 |
a | 事件名称 | phpcms/modules/模块/*.php 中方法名称 | |
模块访问方法[示例]:
http://yourdomain/index.php?m=content&c=index&a=show&id=1
其中
m = content 为模型/模块名称位于phpcms/modules/content
c = index 为控制器名称 位于phpcms/modules/content/index.php
a = show 为时间名称 位于phpcms/modules/content/index.php中show()方法
id = 1 为其他参数与正常get传递参数形式相同
如果我们访问您的域名如:
http://urdomain/index.php
phpcms默认路由会定位到content模块的index控制器中的init操作,因为系统在没有指定模块和控制器的时候,会执行默认的模块和操作。因此下面的URL的结果是相同的:
系统还支持URL路由的功能,这些都能够带来其他的url访问效果。
http://urdomain/index.php?m=content&c=index&a=init
系统类库与函数库调用
1. 系统类库位于系统的phpcms/libs/classes目录下面,函数库文件名为*.class.php,其中global.func.php为框架中默认加载,global.func.php中函数可直接使用
2. 系统函数库位于系统的phpcms/libs/functions目录下面,函数库文件名为*.func.php
系统类库调用
/**
* 加载系统类方法
* @param string $classname类名
* @param string $path 扩展地址
* @paramintger $initialize 是否初始化
*/
public static function load_sys_class($classname, $pathphp文件管理系统mvc 源码 = '', $initialize = 1) {
return self::_load_class($classname, $path, $initialize);
}
示例:
$http = pc_base::load_sys_class('http'); //实例化http类
pc_base::load_sys_class('format', '', 0); //调用form类,不进行实例化操作
系统函数库调用
/**
* 加载系统的函数库
* @param string $func函数库名
*/
public static function load_sys_func($func) {
return self::_load_func($func);
}
示例:
pc_base::load_sys_func('mail'); 调用mail函数包
入口程序
PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。
入口程序是在前期处理用户请求的引导程序。它是唯一一个可以被最终用户可以直接请求运行的。
phpcms v9的入口程序包含如下几行:
index.php
<?php
define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
include PHPCMS_PATH.'/phpcms/base.php';
pc_base::creat_app();
?>
?>
这段代码首先加载了phpcms框架的引导文件base.php,然后它根据指定的配置文件建立了一个 Web 应用实例并运行。
模块
phpcms v9框架中的模块,位于phpcms/modules目录中每一个目录称之为一个模块。即url访问中的m
示例:
http://urname/index.php?m=content
那么您访问的就是phpcms/modules/content 这个模块。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论