phpcms V9 框架目录结构
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();//加载应用程序类库
全局范围可用,也可以直接在模板文件中使用,在二次开发时,很有用
5、模板语法:
(1)常量表示:
{JS_PATH}//相当于 或者
phpcms V9 框架目录结构的更多相关文章
- phpcms v9框架的目录结构分析
phpcms v9框架的目录结构分析: 了解v9框架的目录结构,有助于帮助我们快速建立起对v9框架的一个整体认识 打开"mycms"项目,有如下文件和目录 使用 ...
- PHPCMS V9 框架代码分析(入口程序)
PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口. 入口程序是在前期处理用户请求的引导程序.它是 ...
- php CI框架目录结构及运行机制
CI目录结构 CI主要组成部分为,application(应用文件夹).system(系统文件夹)和index.php入口文件. 应用文件夹中主要是存放控制器.模型和视图等,系统文件夹中主 ...
- phpcms V9二级目录下分页路径不正确问题的彻底解决方法
在用phpcms V9做二次开发的时候,我们有时候会把一个栏目生成到根目录下,而且这个栏目又有子栏目,我们生成静态的时候分页会出现问题,就是分页的路径的地址错误.有一种解决方法就是,把这个栏目生成动态 ...
- tp 框架目录结构
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.ThinkPHP从诞生以来一 ...
- express框架目录结构
. ├── app.js ├── bin │ └── www ├── node_modules │ ├── body-parser │ ├── cookie-parser │ ├── ...
- laravel框架目录结构详解
- PHPCMS V9教程之快速入门
这篇文章要为大家来介绍PHPCMS V9这个系统的一些基本知识,PHPCMS是基于面向对象的,严格的安装MVC开发模式开发的CMS系统,同时他还是一个非 常不错的PHP框架.下面我们一起看一下PHPC ...
- Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]
您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...
随机推荐
- Linux extundelete命令
一.简介 extundelete的文件恢复工具,支持ext3/ext4双格式分区恢复. 二.安装 yum install -y e2fsprogs* e2fslibs* wget http://nch ...
- 金融卡IC卡知识50问
1.什么是金融IC卡? 金融IC卡又称为芯片银行卡,是以芯片作为介质的银行卡.芯片卡容量大,可以存储密钥.数字证书.指纹等信息,其工作原理类似于微型计算机,能够同时处理多种功能,为持卡人提供一卡多用的 ...
- 列表推导式对比For循环执行效率
我们在前面的学习中都知道,如果把1-10以内的元素追加到一个新的列表表中,如果使用for循环我们可以这么做: a = [] for i in range(1,11): a.append(i) prin ...
- [转]xe6 android 使用距离传感器(Proximiry)
The first step it's a run sample from RAD Studio that named SensorInfo on your device. On the tab Bi ...
- C#在线运行--cmd方法
此次C#在线运行采用cmd.exe用csc对文件进行编译,然后再运行的思路实现在线运行的效果.不过会生成二个文件(.cs和.exe),可能需要定期清除临时文件夹. 首先利用时间戳生成唯一文件名, ...
- 分享我访问google的方法
对于程序员来说,有很多技术问题还是通过互联网搜索来解决的.所以百度.google对于我们是多少的重要.但是GOOGLE现在无法访问了.怎么办呢.以下是我访问google的方法. 首先自己制作了一个简单 ...
- .Net Core 自动化部署:使用docker版jenkins部署dotnetcore应用
安装docker版jenkins 因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins Docker Contai ...
- SpringMVC+Hibernate 项目开发之三 (创建SpringMVC项目)
引用(很全面了):http://blog.csdn.net/dhx20022889/article/details/38041039 我只想说默认创建的项目使用的Spring版本可能不是你想要的,可以 ...
- 【连载】redis库存操作,分布式锁的四种实现方式[一]--基于zookeeper实现分布式锁
一.背景 在电商系统中,库存的概念一定是有的,例如配一些商品的库存,做商品秒杀活动等,而由于库存操作频繁且要求原子性操作,所以绝大多数电商系统都用Redis来实现库存的加减,最近公司项目做架构升级,以 ...
- [SinGuLaRiTy] 树链问题
[SinGuLaRiTy-1035] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 关于树链 树链是什么?这个乍一看似乎很陌生的词汇表达的其 ...