今天是第一次学习PHP   由于后台是用PHP写的,而且是用的开源框架PHPCMF   所以自己必须要来一遭啊,

不过PHP写后台确实是方便快,比java来的爽快些,先抛开其他的因素  只求速度,只求测试

可能我学习PHP是半吊子上路,连语法都没有学习过,直接接触PHPCMF,所以先找人熟悉下框架的使用

如何快速的用PHPCMF建一个模块才是我最关心的。

好了,废话少说,直接入正题。

首先将phpcmf官方下载包导入zend编辑器中,出现错误不要管它,有x敏感者就没有办法了,如下所示:

我们关心的也就是上面四个文件夹,就可以快速开始了,其他的先不用管了,

(一)application文件夹

假如我现在需要做个新闻模块,我们首先需要做的就是在application下面新建一个News文件夹,如下:

其他的文件夹都是自带的,不用管,接下来是需要知道我们还要有什么?

控制器,对的,就是控制器,在PHP中这个很重要,如果你不知道该如何建,如果你跟我一样是刚刚开始,那么你可以看看application下面任何其他的一个文件夹,比如User   它下面有个Controller文件夹,我们也需要建这样的一个文件夹

看到没有,我们只需要去建一个一样的文件夹Controller,其他的先不用管,比如Conf和Menu文件夹目前用不上,不用管,建完了文件夹,接下来我们需要去写接口了,就是在Controller文件夹下面创建一个php文件就可以了,不过接口分为前端和后台,比如新闻有前端显示的,有后台的编辑增删改等等,我们需要去关心这个的,而且命名有一定的要求,

看News下面是我建立的两个php文件,首先说下命名规则方面的问题,

首先自己可以随便起个名字,然后加上Controller.class,如果该接口是后台接口的话,那么你需要加上AdminController.class 这很重要,

接下来需要了解的就是这个类文件怎么写啊,

第一步是命名空间必须要有的,namespace 模块名\Controller

第二步是申明父类是谁,如果接口是前端的,你就用HomeBaseController,如果接口是后台的,你就用AdminbaseController,如下图所示:

第三步是创建一个类,class NewsController extends HomeBaseController{}

第四步是类里面写方法了,也就是接口了,比如我上面写的就是getNewsList() 最后要把返回的数据echo就行了

至此application就结束了一半了,没有啥,图上我还画了个圈,就是访问这个接口的地址,它的结构也很好理解

// www.fsfd.com/XXXX/index.php?g=News&m=News&a=getNewsList

其中www.fsfd.com/是域名或者公网ip,XXXX/ 是项目名称,就是工程名,index.php?这个是固定的,在项目名下面有这个文件的,不用你改什么,g=News这个代表application下面哪个文件夹,也就是哪个模块了,&m=News这个代码你在Controller文件夹下面创建的php文件的那个命名的最前段(NewsController.class.php),这个名字自己可以随便起,&a=getNewsList这个代表该类下面的方法。接下来就是需要熟悉也是我们比较关系的application的另一半了,数据库,

在application文件下面有个Common文件夹,它下面还有个Model文件夹,就是 这个Model文件夹是我们需要关心的,其实下面的每个model文件就是代表数据库中的一个表,

我们先看看它自带的model都是些啥,比如User

第一步还是命名空间,namespace Common\Model;

第二步还是申明父类的,use Common\Model\CommonModel;

第三步就是class的定义了class UsersModel extends CommonModel{},里面的东西就不需要去管它了,可以看到的User下面是数据验证,时间转换,好像是对密码进行处理的,反正我现在也是看不懂,好像不需要跟我们想想的中那种连接数据所需要的字段定义啊,等等,

那么接下来我们是需要写自己的了,很简单就是一个申明而已

就这样结束了,php自己会跟你MySQL中的匹配的,它解析的方式是这样的,数据表都有个前缀的,后面是小写的表名字,共同组成了一个数据库表的名字,比如说我的数据库中的表为wust_news,然后再Model下面你必须跟数据库表字段的后半部分是一致的,只不过首字母大写就OK了,这样他就自动解析并且匹配成功的,

至此application就结束了

(二)data文件夹

这个其实没什么说的,看英文名字也知道,这个文件夹下面放的是数据,比如缓存数据,在runtime文件下面,你在后台管理界面上传的图片啊,视频啊,等都可以在这里面建个文件夹,在conf文件夹下面是路由设置,具体的我也不懂,好像说这个不需要自己手动设置的 完了,这里面不需要特地的说什么

(三)tpl文件夹

放前端模板的文件夹,一说你就懂,比如你打开一个网页,显示的东西就放在这个里面的,主要是看下他的层次结构

这个主要是看application下面有哪些模块,比起那个模块下面必须有Controller这个文件夹,那么这个tpl文件夹下面也就有这个了,一个是客户端的,一个手机端的,下面我们看看User下面有什么,注意名称要一致,

这个上面的红×不代表错,是导入进来就这样,不要管它,我们最终写的代码是要上传到服务器中,他就没有错了,有敏感者的就没有办法了,呵呵,首先我们需要看看application文件夹下面的User文件夹下面的Controller,我们随便看一个类,CenterController个人中心,注意$this->display();和$this->display(':center');这两种情况就行了,用了:这个东西的话,那么在tpl下面User文件夹下面一级里面必须有center.html,

如果是$this->display();那么首先就需要看控制器的名称是什么,然后到User下面建立那个名称前半部分的文件夹,首字母大写,然后在下面,就可以看到与方法名称一致的html文件,

看图应该是很明白的,至此这部分就结束了,

(四)tpl_admin 后台管理模块

这部分请看(三)这里专门放置后台管理的东西,情况跟tpl文件夹一样的,就不再赘书了

PHPCMF+php+日记(一)相关推荐

  1. 《帝企鹅日记》观后感

    第一次看到是在高中的英语周报上,那时候蛮好奇的,企鹅也写日记,呵呵,后来想了想应该是纪录片,时隔三年,发现当初的猜测果然不假. 我觉得那些企鹅很可爱,也很漂亮.最重要的是,那一条条小生命有着顽强的毅力 ...

  2. axure 模板_《惢客创业日记》2019.09.03(周二) 用Axure管理项目流程

    今天,花了一整天的时间,搭建了一个本地服务器,并且,把Axure生成的网页系统部署在了IIS上.之所以,用Axure来把整个项目的资源做一个汇总,主要目的有三个: 第一.用Axure实现基于网页的项目 ...

  3. [UWP小白日记-10]程序启动屏(ios解锁既视感)

    [UWP小白日记-10]程序启动屏(ios解锁既视感) 原文:[UWP小白日记-10]程序启动屏(ios解锁既视感) 讲一下 微软爸爸的开发者大会2016又暴了个表达式动画和Windows.UI.Co ...

  4. 我先了解一下博客园创建随笔/文章/日记的过程与三者的区别(隐私等级,是否审核等)...

    我先了解一下博客园创建随笔/文章/日记的过程与三者的区别(隐私等级,是否审核等) 转载于:https://www.cnblogs.com/Totooria-Hyperion/p/5260289.htm ...

  5. 网络工程师成长日记333-某城市政府项目

    网络工程师成长日记333-某城市政府项目 这是我的第333篇原创文章,记录网络工程师行业的点点滴滴,结交IT行业有缘之人 直接上干货,拓扑图: 工程目的:排除故障 配置如下: LinWei#show ...

  6. Crystal Reports 财务日记帐凭证套打设计

    Crystal Reports 财务日记帐凭证套打设计 一.首先大家看下财务日记帐凭证的纸张格式: 下面我们来分析下有几点要素:1.每页显示5行记录,2.就是在合计处的中文金额大写了.其他页眉页脚在水 ...

  7. 国家地理:子宫日记 Womb

    写在前面 周末科普时间又到了,可惜我还在加班.带比大家一部优秀的科普视频,非常适合和孩子一起看. 每家的孩子都会经常问,我从那里来的.我家的孩子5岁,自己看了此片后,还跟我讲解:"这就是小时 ...

  8. 我们从那里来—NG子宫日记 Womb

    本文转载自宏基因组公众号,更佳阅读体验.更多相关文章请跳转至公众号阅读 写在前面 周六科普时间又到了,可惜我还要上班.但是幼儿园居然提前放假了,你説我该怎么办.还好宝妈单位也提请放假了,可以在家陪孩子 ...

  9. 我们从那里来—子宫日记 Womb

    写在前面 每家的孩子都会经常问,我从那里来的.我家的孩子5岁,自己看了此片后,还跟我讲解释:"这就是小时候的我,我是从妈妈的肚子里来的". 影片基本信息 中文名: 国家地理 子宫日 ...

最新文章

  1. python使用fpdf将生成的长字符串手动换行写入pdf
  2. 关于过往与未来的思考
  3. jQuery dataTables 的使用
  4. html校园首页设计说明范文,网页设计作品设计说明-必看请相互转告
  5. C语言keywordstatic的绝妙用途
  6. python中什么叫类、什么叫对象_python中的类面向对象的基本概念!
  7. java系列:命令行启动mysql
  8. 护航敏捷开发和运维 BCS2020举办DevSecOps论坛
  9. 简述Java三大特性
  10. hive窗口函数和hive基础使用
  11. 关于killer网卡与win10 擦出火花 内存爆炸的原因
  12. 【实用工具】【图像处理,超大图片识别,方案篇:化繁为简】
  13. 当你们在用算法获取流量和金钱时,微博和知乎是这样做的
  14. 笔记本高负荷时撞功耗墙、温度墙问题解决方案
  15. 使用keil安装目录下的相关驱动进行安装
  16. 人力资源数据分析师前景_人力资源数据分析师——大数据下的精英岗位
  17. 各大高校自曝状态一览,排名不分先后
  18. (一)框架搭建,前端路由设置,自定义寻找指定路径(Django+Vue+Mysql,数据库管理数据分析网站)
  19. 软件自动化测试可行性分析,基于 AI 的软件自动化测试思考与实践—kylinTOP 测试与监控平台...
  20. OpenCV实战(7)——OpenCV色彩空间转换

热门文章

  1. uml序列图参照画法
  2. nacos 官方以及社区文档
  3. 逻辑推理:谁打碎了玻璃
  4. Java中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
  5. 亚马逊广告API对接概述
  6. Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected characterwas expecting double-q
  7. 阿宇wifi球机如何连接手机
  8. React学习分享(三)
  9. Mybatis的mapper.xml文件对大于号和小于号进行处理
  10. Hive 数据倾斜hive.optimize.skewjoin