phpcms v9框架的目录结构分析

了解v9框架的目录结构,有助于帮助我们快速建立起对v9框架的一个整体认识

打开”mycms”项目,有如下文件和目录

使用协议说明文档、英文版的用户手册,这两项不是项目所必须的,可暂时将其删除

|—–api 接口文件目录
|—–caches 缓存文件目录
|—–configs 系统配置文件目录
|—–database.php 数据库配置文件
|—–route.php 路由配置文件
|—–system.php 系统配置文件
|—–cache.php 缓存配置文件
|—–configs_* 系统缓存文件目录
|—–configs_commons/caches_data 主要用来存放后台设置的配置信息
|—–category_content.cache.php栏目与站点映射所对应的配置文件
|—–category_content_1.cache.php站点1下所有栏目的详细配置信息
|—–category_item_1.cache.php 文章模型下各栏目所对应的数据量
|—–category_item_2.cache.php 下载模型下各栏目所对应的数据量
|—–category_item_3.cache.php 图片模型下各栏目所对应的数据量
|—–keylink.cache.php 关联链接配置缓存文件
|—–model.cache.php 三大模型配置缓存文件
|—–mood_program.cache.php 表情配置缓存文件
|—–position.cache.php 推荐位配置缓存文件
|—–poster_template_1.cache.php广告位模板配置缓存文件
|—–sitelist.cache.php 站点列表配置文件,主要缓存所有站点的基本配置信息
|—–type_content.cache.php 多个站点下的类别配置信息
|—–type_content_1.cache.php 当前站点下类别配置信息缓存文件
|—–urlrules.cache.php url规则配置信息缓存文件
|—–urlrules_detail.cache.php url规则详细配置信息缓存文件
|—–special.cache.php 专题配置信息缓存文件
|—–role.cache.php 角色配置缓存文件
|—–link.cache.php 友情链接缓存文件
|—–configs_model/caches_data
|—–content_form.class.php 生成表单的类库缓存文件
|—–content_input.class.php 入库时,对表单数据进行验证的类库缓存文件
|—–content_output.class.php 对从数据表中查询出来的数据进行处理的函数
|—–content_update.class.php 对要更新的数据进行有效性验证的函数
|—–model_field_1.cache.php 文章模型所有模型字段的缓存信息
|—–model_field_2.cache.php 下载模型所有模型字段的缓存信息
|—–model_field_3.cache.php 图片模型所有模型字段的缓存信息

|—–phpcms phpcms框架主目录
|—–languages 框架语言包目录
|—–libs 框架主类库、主函数库目录
|—–classes
|—–form.class.php 表单生成类库文件
|—–application.class.php 应用程序类库文件
|—–image.class.php 图片处理类库文件
|—–attachment.class.php 附件处理类库文件
|—–param.class.php URL参数处理类库文件
|—–functions
|—–global.func.php 公共函数库文件
|—–extension.class.php 扩展函数库文件
|—–model 框架数据库模型目录
|—–content_model.class.php 内容模型文件
|—–admin_model.class.php 管理员模型文件
|—–attachment_model.class.php 附件模型文件
|—–modules 框架模块目录
|—–admin admin模块
|—–index.php index.php控制器文件
|—–content content模块
|—–classes content模块通用类库
|—–fields content模块模型字段
|—–functions content模块通用函数库
|—–templates content模块后台模板文件
|—–index.php index.php控制器文件
|—–templates 框架系统前台模板目录
|—–default 默认的模板风格
|—–content content模块模板目录
|—–category.html 频道页模板文件
|—–list.html 列表页模板文件
|—–show.html 内容页模板文件
|—–config.php 模板配置文件
|—–phpsso_server phpsso主目录
|—–statics 网站素材文件目录
|—–css css文件
|—–images images文件
|—–js js文件
|—–uploadfile 上传附件
|—–admin.php 后台入口文件
|—–index.php 前台入口文件

phpcms v9中的url路由规则:

浏览器中输入 http://www.mycms.com/index.php?m … ;a=list&catid=1 回车时,默认情况下会找到
phpcms 框架主目录
|—–modules 模块目录
|—–content content模块
|—–index.php index.php控制器中list方法来显示列表页面

到底是不是呢?我们打开index.php控制器文件,并在index方法中添加一些代码,运行输出,证明确实如我们所料

我们可以将浏览器中的url归纳如下:
http://域名/入口文件?m=模块名&c=控制器&a=方法名&catid=参数值

当我们在浏览器中输入http://www.myshop.com/index.php 后面没有跟任何参数, 回车时,默认情下会将首页显示出来

这是因为phpcms v9为我们指定了一个默认执行的模块、控制器和方法

默认控制器的设置在 “caches/configs/routes.php” 配置文件中进行设置的,我们可以重新设置默认的控制器

六、栏目的添加

1、pc设计者认为,栏目详情页的数据都应该属于一个模型,所以在添加栏目时,必须给栏目指定一个模型,至于要选择什么模型,完全取决于栏目详情页要显示什么类型的内容
详情页:文章信息类的内容 文章模型
详情页:图片类信息 图片模型
详情页:下载东西 下载模型
详情页:播放视频 视频模型

2、如果以上模型还不能满足项目的需要,那么我们还可以自定义模型,通常情况下,一个网站是由多种模型的数据来组成的

3、栏目添加选项:

栏目名称:在网站静态化时,创建一个以此目录名命名的目录来存放当前栏目下相关的模板文件

4、pc的设计者认为,每个栏目会对应当前所选模型的三个模板文件:

频道页模板文件

列表页模板文件

内容页模板文件

这些模板文件所在位置:phpcms/templates/default/content/ 目录下,如果想修改模板文件,只需要到此目录下找到对应的模板文件进行修改就可以了

频道页:category_*.html
列表页:list_*.html
内容页:show_*.html

至此,栏目各页面与模型的三个模板文件对应起来了

注意:频道页面的显示是有条件的(当前栏目必须有子栏目才可以)

5、栏目添加成功后,栏目信息被存储到了v9_category数据表中,同时还被缓存到了phpcms/caches/caches_common/category_content.cache.php文件中,这个缓存文件非常重要,一定要引起足够的重视,前台的很多数据都是直接从此缓存文件中获取来的

七、项目的部署:

1、素材文件:

statics
|—–images
|—–cmsimages 项目图片文件
|—–js
|—–cmsjs 项目js文件
|—–css
|—–cmscss 项目css文件

phpcms
|—–templates
|—–new 新的模板风格
|—–content 内容模块模板文件
|—–category.html 频道页模板文件
|—–list.html 列表页模板文件
|—–show.html 内容页模板文件
|—–config.php 添加模板文件的配置

    或者  

    |-----default  
        |-----content   内容模块模板文件  
            |-----category_shetu.html   频道页模板文件  
            |-----list_shetu.html       列表页模板文件  
            |-----show_shetu.html       内容页模板文件  
        |-----config.php            配置新添加的模板文件  

注意:模板文件的命名规范

2、进入后台,将栏目与模板文件对应起来

3、常量的定义:phpcms/base.php文件

4、系统类库、函数库、模型文件及配置文件的加载

pc_base::load_sys_class();//加载系统类库
pc_base::load_sys_func();//加载系统函数库
pc_base::load_model();//加载模型
pc_base::load_config();//加载配置文件或配置选项信息
pc_base::load_app_func();//加载应用程序函数库
pc_base::load_app_class();//加载应用程序类库

全局范围可用,也可以直接在模板文件中使用,在二次开发时,很有用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值