xml地图|网站地图|网站标签 [设为首页] [加入收藏]

phpcms二次开发有感,phpcms2008结构分析及二次开发

来源:http://www.ccidsi.com 作者:集成介绍 人气:63 发布时间:2019-07-10
摘要:      近日在做把oracle的数量移植到mysql去。岔开一下,先说一下那几个职业。在此之前的Oracle数据库用了众多年,都很老了,比较多表设计得及其不客观,那给自个儿移植的历程中带

       近日在做把oracle的数量移植到mysql去。岔开一下,先说一下那几个职业。在此之前的Oracle数据库用了众多年,都很老了,比较多表设计得及其不客观,那给自个儿移植的历程中带动了一定的难为。万幸,oracle里咩有提到到触发器,存款和储蓄进度,事物等。不过也都移植的进程都省掉了,只是轻松的把数量移植过来。若有做那上边的心上人可以问问我,能够提供部分提出与经验。

phpcms2008结构

cms 通过内容模型功能达成了在后台就能够管理小说数据表的功用。内容模型是一个cms 最基本的效应。

       笔者php用的是phpcms,看了刚好oracle的数量可以停放phpcms上,没有要求做太多的改动。小说,图片,下载,产品等刚好对于与phpcms。第一步,移植文章的数额,小说数量肯定首先得做小说类型移植,第三遍做,没思量太多难点,就接连把项目从oracle上读出来写入mysql中,然后把稿子三个劲往mysql里导。第一个难题来了,原本的oracle设计的表的分页是用一篇作品,在数据仓库储存取的时候分成多条记下,表的ID相同。小编目瞪口歪了,首先得做多少融入,就把那没有差别于的ID的篇章先结合在共同在向mysql插。由于那数据量大,並且经常出现十分,折腾了快办个多月,才整了四分之二,郁闷了。更郁闷的作业是意识原来的篇章类型名称有同等的,而小编写的顺序导入程序设置了不能够同一,崩溃中。。。 只可以重新来过了的。

任何phpcms系统一分配为二种东西组成:模块(module)和模型(model)。以phpcms模块和member模块为中央架构。极其phpcms模块为底蕴。

各种内容模型对应一张数据表,加多一个剧情模型就能够增多一张数据表,删除贰个内容模型就能够去除一张数据表。

    前边就做phpcms的叁遍开拓了的,phpcms真不愧是国内cms做得最棒的。全体的法力都是用类举办了打包,加多菜单与修改菜单很实惠,

装有模块的组织为:
module/
module/admin/
module/include/
module/api/
module/install/
module/uninstall/
注:phpcms作为基础模块有部分特殊性,后边会详细介绍。

模型与数据表的相应准绳是:数据表名=表前序 c_ 模型定义的表名。
图片 1

图片 2

module/admin/为后台管理目录。
module/admin/admin.inc.php为模块后台入口文件。注意phpcms模块的那个文件是管理员保管,不是进口文件。要是mod不是phpcms,就/admin.php载入那么些文件,那么些文件的第一成效正是载入module的后台所要求的一对自成一家的函数,类,变量等!
module/admin/*.inc.php为后台管理文件,*意味着的是file。
module/admin/include/模块后台管理包蕴文件。
module/admin/templates/为模块后台管理模板文件。

对应的数据表便是 phpcms2010_c_jieju

末端多少个相关的作用作者增加上去的,在菜单管理实行增多与修改。然后再后台admin文件夹里面会对此一个*.inc.php的文件,那一个文件对模块的足够、删除、修改举行管制,那个文件对于的在include/admin 有三个*.class.php的类公事,此文件贯彻数据库的最底层模型操作,个中的沙盘文件在admin/templates里,模板文件修改很便利。

module/admin/setting.inc.php模块设置脚本
module/admin/priv.inc.php模块权限配置脚本
留心,在保管模块的时候会检验那七个公文,如若存在,那么模块的安装和权力处理就有一而再(能够管理),倘诺那三个公文空中楼阁,“设置”和“权限”就从未连接。

在后台可以管理模型数据:
图片 3
模型新闻保存在 model 表中(eg. phpcms2008_model)

其二是模型的一遍开荒,有一些相比让本人恨恶的是模型的表单都写成类了,类的使用起来有它的局限性,但可重复性高的。但自身要所需的表单得投机写。刚相当多不知晓,在它的缓存文件里把表单都写了,更新一下缓存,什么都没了,三八天的武功就白费了的。后来研讨才精通根本无需和睦别的写,在模型处理就能够非常轻松的开始展览二回开拓,

module/include为涵盖文件目录,包涵部分函数和类库。
module/include/priv.inc.php为模块权限配置文件。即使模块要求权限管理功效,则经过修改此文件举行。
此文件由二个二维数据结构组成,结构如下。
<?php
return array(功能1=>array(功能1详细),
             功能2=>array(功能2详细),   
            );
?>
键值每一个操作,二维数组为成效的事无巨细,示例:
<?php
return array('all'=>array('name'=>'模块管理', 'file'=>'', 'action'=>''),
             'add'=>array('name'=>'会员增多', 'file'=>'member', 'action'=>'add')
             'add2'=>array('name'=>'会员增多2', 'file'=>'member', 'action'=>'add2')
            );
?>
二维数据中name为操作的中文名称,file为实施文书,action为操作的动作。file和action空串('')表示全权限,不为空的话则象征有对应权限,多项用逗号隔断。
module/include/common.inc.php为模块先导化文件
module/include/global.func.php为模块函数库文件

种种模型皆有一组同样的字段,称为[系统字段]:
图片 4
在充分模型时会自动步向连串字段,系统字段不可能去除,只好禁止使用。

图片 5

module/api接口目录。

丰盛模型的操作通过 /admin/model.inc.php 中的 add 部份完成,真正管理的代码是 /include/admin/model.class.php 的 add() 方法。
透超过实际行 /include/admin/model.sql 中的 SQL 语句建模对应的数据表。

点走入还能对字段,数据等实行管理,三次开拓及其方便,但供给新鲜的表单得温馨写。呵呵,phpcms是做给非本事人员的二遍开荒的。

module/install为模块安装目录。
module/install/config.inc.php为模块表达文件,包涵如下变量
                $module   模块名称,此名字不可能和任何目录名称一致
                $modulename   模块汉语名称
                $introduce   模块简要介绍
                $author 作者
                $authorsite 我站点
                $authoremail 笔者邮件
module/install/mysql.sql为模块数据表文件,增多新的模块的表的操作,此文件可选,须求把增多的模块插入一条模块记录到phpcms_module表中。然后增多创设所须要的表的sql语句。
module/install/extention.inc.php模块菜单扩张文件,此文件可选,用于把模块相应的效果与利益菜单增添到menu表中。菜单中的子父菜单的关联得以参照:系统设置——>相关安装——>菜单管理——>管理菜单。

新创造的模子对应的数据表唯有 contentid, content, template 四个字段,除 contentid 外,并从未如 catid, title 那类模型[系统字段]。

版权注脚:本文为博主原创小说,未经博主允许不得转发。

module/uninstall为模块卸载目录。
module/uninstall/extention.inc.php为除去菜单sql语句。
module/uninstall/mysql.sql为除去模块数据表,以及在phpcms_module表中模块记录
module/uninstall/delete.txt为除去文件列表,满含语言文件,模板文件,以及模块目录下的享有文件。具体能够看“/admin/module.inc.php”中去除模块的办法。

那些系统字段放在 content 表中(eg. phpcms二〇一〇_content),那几个表有 contentid, catid, title, url, thumb 等那些主题的作品字段。


module/*.php为模块脚本文件,依照具体情状具体表述。

负有模型中的文章的 url, title, thumb 等数码都以保存在 content 表中的,除那几个字段外的字段值才保存在对应的模型数据表中,例如 content 字段就保留在模型数据表。

以上为常见模块的主导构造和停放phpcms的点子及法规,那么phpcms作为一个异样(基础)模块有个别特别的地点。
1、目录结构特殊性。
   主目录为根目录即“/”。
   目录结构中也长久以来是包括admin/,api/,include/。install/是担当整个系统的装置。因为phpcms作为基础模块不能够被卸载,那个和member模块一样,未有uninstall目录。
   phpcms作为基础模块include/目录里提供了丰盛的函数库,类库包涵缓存操作,数据库操作,目录文件操作,会话操作等等。当然这里也包括priv.inc.php权限列表文件,config.inc.php为全站配置文件,这么些跟模块安装目录里的config.inc.php差异,完全不是一律。
   那其间还只怕有二个很入眼的文件夹/include/admin/里面全部都是系统后台管理管理类。叁个file对应三个管理类。
2、效用上特殊性。
   提供一些基础意义,举个例子缓存,数据库操作,ftp,http管理等等。
   
   模型管理成效。能够轻便增加,管理内容模型。管理种种模型对应的字段设置。字段类型对应的操作都在/include/田野(field)s/目录下。

在加上一篇文章时,先把由 content 表保存的数量插入 content 表,取回插入的 contentid, 便是数据库的 insert_id ,再把任何字段值插入模型数据表中, content 表称为主表,模型数据表称为增加表,主表与扩大表经过 contentid 关联。


这种结构有以下多少个天性:

后台用户组叫“剧中人物”(role),对应表phpcms_role
前台用户组称之为组(group),对应表phpcms_member_group

  1. 全数模型中的小说都得以利用二个总是的 contentid ,由此主表的一个功能就是发出三个自行编号的 contentid 。
    2. 由此贰个主表就足以查询到持有的篇章数量,完结前台不一样栏目分化模型的多寡整合显示。
    3. 从数据库优化的角度,一个多少表若要询问速度快,尽量采用定长的字段类型(eg. char),防止使用变长的字段类型(eg. varchar, text),因而把装有变长的字段(eg. content)都献身增加表中,令主表全体字段都以定长字段类型,加速查询速度。

phpcms_search为搜索镜像表,content字段内容都镜像到那些表,做全文索引。

一个模型的字段音信保存在 model_field 表中(eg. phpcms2008_model_田野),系统字段每四个对应主表中的一个字段,所以才会不可能去除,其余字段每贰个相应扩充表中的多个字段。

本文由68399皇家赌场发布于集成介绍,转载请注明出处:phpcms二次开发有感,phpcms2008结构分析及二次开发

关键词: 68399皇家赌场

最火资讯