PHPCMS V9开发文档

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
配置文件调用
配置文件配置在 caches/configs/目录下。 配置文件调用:使用 load_config 方法
/** * 加载配置文件 * @param string $file 配置文件 * @param string $key 要获取的配置荐 * @param string $default 默认配置。当获取配置项目失败时该值发生作用。 * @param boolean $reload 强制重新加载。 */ public static function load_config($file, $key = '', $default = '', $reload = false) { static $configs = array(); if (!$reload && isset($configs[$file])) { if (empty($key)) { return $configs[$file]; } elseif (isset($configs[$file][$key])) { return $configs[$file][$key]; } else { return $default; }
2. 系统函数库位于系统的 phpcms/libs/functions 目录下面,函数库文件名为*.func.php 系统类库调用
/** * 加载系统类方法 * @param string $classname 类名 * @param string $path 扩展地址 * @param intger $initialize 是否初始化
如果您创建了一个 mytest.php 在 test 模块下,那么我们在浏览器里面输入 URL:
http://www.yourname.com/index.php?m=test&c=mytest 下面是一个控制器类的基本格式,在构建模块部分会具体讲解
<?php
defined('IN_PHPCMS') or exit('No permission resources.'); class mytest {
http://www.yourdomain.com/index.php?m=content&c=index&a=init
系统类库与函数库调用
1. 系统类库位于系统的 phpcms/libs/classes 目录下面,函数库文件名为*.class.php,其中 global.func.php 为框架中默认加载,global.func.php 中函数可直接使用
return $configs[$file][$key]; } else {
return $default; } }
示例: 调用系统配置中的附件路径
$upload_url = pc_base::load_config('system','upload_url');
二次开发技巧
1.如果要对已存在的控制器进行二次开发,为了方便升级不建议直接对内核文件直接修改该, 您可以通过"MY_*.php"的形式进行二次开发。 例如您要对改 phpcms/mood/index.php 进行二次开发。您可以在与 index.php 同级的目录下建 立"MY_index.php" MY_index.php 代码如下
备注 必须 必须
模块访问方法[示例]: http://yourdomain.com/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 传递参数形式相同 如果我们访问您的域名 如:
模型表示企业数据和业务规则。在 MVC 的三个部件中,模型拥有最多的处理任务。例 如它可能用象 EJBs 和 ColdFusion Components 这样的构件对象来处理数据库。被模型返回的
数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应 用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器
phpcms v9 的控制器就是模块的类文件,位于 phpcms/modules/模块/目录下面。类名成 就是文件名+.php,例如一个名为 mytest 的控制器,那么他的命名为 mytest.php 即可。控制器 类默认继承系统的函数库,可以直接使用。控制器类的类名称与控制器文件名必须相同。
入口程序
PHPCMS 是采用 MVC 设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式 进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。 入口程序是在前期处理用户请求的引导程序。它是唯一一个可以被最终用户可以直接请求运 行的。
phpcms v9 的入口程序包含如下几行:
文件目录结构
根目录 | – 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 程序主入口 | – crossdomain.xml FLASH 跨域传输文件 | – robots.txt 搜索引擎蜘蛛限制配置文件 | – favicon.ico 系统 icon 图标
function __construct() { } public function init() {
echo 'hellp phpcms v9,my name is defalut action'; }
} ?>
如果你添加的控制器类继承了其他的类,你要小心你的方法名不要和那个类中的方法名一样 了,否则你的方法会覆盖原有的。
} $path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php'; if (file_exists($path)) {
$configs[$file] = include $path; } if (empty($key)) {
return $configs[$file]; } elseif (isset($configs[$file][$key])) {
URL 访问
PHPCMS 是采用 MVC 设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式 进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。
参数名称 描述 m 模型/模块名称 c 控制器名称 a 事件名称
位置 phpcms/modules 中模块目录名称 phpcms/modules/模块/*.php 文件名称 phpcms/modules/模块/*.php 中方法名称
模块
phpcms v9 框架中的模块,位于 phpcms/modules 目录中 每一个目录称之为一个模块。即 url 访问中的 m 示例:
http://www.yourname.com/index.php?m=content 那么您访问的就是 phpcms/modules/content 这个模块。 如果创建一个,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。
控制器 : 控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击 Web 页面中
的超链接和发送 HTML 表单时,控制器本身不输出任何东西和做任何处理。它只是接收请 求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
现在我们总结 MVC 的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模 型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视 图格式化模型返回的数据,并通过表示层呈现给用户。
命名规范
PHPCMS 其自身的一定规范。下面是使用 PHPCMS 做二次开发中应该遵循的命名规范:
类文件需要以.class.php 为后缀(这里是指的 phpcms 的系统类库文件和模块中的类库文 件,第三方引入的不做要求),例如 http.class.php。
函数文件需要以.func.php 为后缀(第三方引入的不做要求),例如 mail.func.php。 类名和文件名一致,例如 phpcmsapp 类的文件命名是 phpcmsapp.class.php。 数据模型需要以“数据表名称_model.class.php”为形式,类名称与文件名必须相同。
视图是用户看到并与之交互的界面。对老式的 Web 应用程序来说,视图就是由 HTML 元素组成的界面,在新式的 Web 应用程序中,HTML 依旧在视图中扮演着重要的角色,但 一些新的技术已层出不穷,它们包括 Adobe Flash 和象 XHTML,XML/XSL,WML 等一些 标识语言和 Web services。如何处理应用程序的界面变得越来越有挑战性。MVC 一个大的 好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管 这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许 用户操纵的方式。 模型 :
/** * 加载系统的函数库 * @param string $func 函数库名 */ public static function load_sys_func($func) {
return self::_load_func($func); }
示例: pc_base::load_sys_func('mail'); 调用 mail 函数包
http://www.yourdomain.com/index.php phpcms 默认路由会定位到 content 模块的 index 控制器中的 init 操作,因为系统在没有指定 模块和控制器的时候,会执行默认的模块和操作。因此下面的 URL 的结果是相同的: 系统还支持 URL 路由的功能,这些都能够带来其他的 url 访问效果。
*/ public static function load_sys_class($classname, $path = '', $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 类,不进行实例化操作 系统函数库调用
index.php
<?php define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
ห้องสมุดไป่ตู้
include PHPCMS_PATH.'/phpcms/base.php'; pc_base::creat_app();
?>
这段代码首先加载了 phpcms 框架的引导文件 base.php,然后它根据指定的配置文件建立 了一个 Web 应用实例并运行。
服务器要求
PHP 版本 5.2 或更新的版本。 MySQL 版本推荐 5.0 或者更新版本。
模型-视图-控制器 (MVC)
MVC 是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用
MVC 应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处 理自己的任务。 视图 :
相关文档
最新文档