PHPCMF+php+日记(一)

今天是第一次学习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文件夹一样的,就不再赘书了

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 17:14:40

PHPCMF+php+日记(一)的相关文章

小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描

端口扫描 二三四层发现的目的只是为了准确发现所有活着主机IP,确定攻击面,端口扫描即发现攻击点,发现开放端口.端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入.[所有的扫描结果,都不要完全相信] 一个端口就是一个潜在的通信通道,也就是一个入侵通道.对目标计算机进行端口扫描,能得到许多有用的信息.进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行扫描.在手工进行扫描时,需要熟悉各种命令.对命令执行后的输出进行分析.用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能.通过

小白日记8:kali渗透测试之主动信息收集(二)三层发现:ping、traceroute、scapy、nmap、fping、Hping

三层发现 三层协议有:IP以及ICMP协议(internet管理协议).icmp的作用是用来实现intenet管理的,进行路径的发现,网路通信情况,或者目标主机的状态:在三层发现中主要使用icmp协议,arp协议属于二层协议,它是基于广播的,所以不可路由.而ICMP协议是可以路由的,理论上可以使用icmp协议发现全球的ip,如果没有边界防火墙(禁止icmp的探测包)进行过滤的话,对目标主机进行扫描,则会收到相应的响应,从而进行捕捉[有边界防火墙的现象比较普遍],但是三层发现的扫描速度也较二层要慢

学习日记之状态模式和Effective C++

状态模式(State):当一个对象内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类. (1),状态模式主要负责解决的是当控制一个对象转换的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化. (2),状态模式的好处是将与特定状态相关的行为局部化,并且将不同状态的行为分割开来. (3),将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都存在于某个ConcreteState中,所以通过定义新的子类可以很容易地增加新的状态和

天天写日记争当文艺青年 2014-5-21

纠结啊为毛感觉只过了一天,就有两天没写了,今天晚上的机票离开上海.希望小叶子不会难为我. 昨晚研究了一下插卡小哥的业务流程,发现他并不是每个房间都插的,时间在每晚的9点到11点之间.估计是会在周边每个宾馆巡回一遍,插广告的房间有两种可能,第一种就是他们和宾馆沆瀣一气,知道哪个房间有人,第二种可能就是他们只给大床房的房间发,7天没有单间所以单身旅客一般会选择大床房,这绝对是优质潜在用户哇. 晚上看了个 正者无敌 还挺好看的样子,里面男主娶了3房姨太太,不错不错~ 晚上做了个梦,醒来后还是格外清晰,

学习日记

五一耍了三天,自己的计划有泡汤,那种制止力哪里去了,不过我认真起来还有有废寝忘食的时候,不过希望这种时候多一点,回家妈妈告诉我,她给老师打电话了的,老师说了我的一些情况,不过我没有老师说的那么好,学习在班上算中等.我觉得还算不上吧!任重而道远吧. Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量

windows 下部署kafka 日记 转

windows 下部署kafka 日记 转一.下载去apache 的官网(http://kafka.apache.org/downloads.html)下载最新的二进制版的压缩包.目前的最新版本是kafka_2.11-0.8.2.1.tgz.二.解压直接解压到D 盘根目录下.三.修改配置文件注意版本不同,可能配置文件不同.请参照实际情况修改.1.修改log4j.properties 文件中的“kafka.logs.dir=logs ”为“kafka.logs.dir=/tmp/logs”.2.修

Python爬虫个人记录(四)利用Python在豆瓣上写一篇日记

涉及关键词:requests库 requests.post方法 cookies登陆 一.目的分析 利用cookie登陆豆瓣,并写一篇日记 https://www.douban.com/note/636142594/ 二.步骤分析 1.使用浏览器登陆豆瓣,得到并分析cookie 2.使用cookie模拟登陆豆瓣(使用账号密码登陆也可以,需要验证码,cookie的时效一般就几天) 3.分析浏览器写日记行为,在python中模拟post行为 4.源码及测试 三.scrapy shell 模拟登陆 1.

Java学习日记:Week1---day1-2 Java初识

前言: 新的旅程正式开始了,经过了两周的c语言预科班学习,对程序的开发有了第一步的认知.如今Java课程也如期开始,对于一个程序员究竟是先学习哪个语言好已经没有必要去探究了,如今既然上了Java的船自然要老老实实的走,能到什么程度就看自己了,个人对自己还是有点信心的. 课从昨天就正式开始了,昨天老师讲了一天大方面的东西,总之没什么具体内容,今天开始了初始java的第一课:简单理了理今天老师讲的内容,挑了一些重点的记在日记. 一.JAVA的版本以及JDK 1)Java的几个版本 java SE(j

数据库分离附加(附日记丢失的处理)

汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 数据库分离,exec sp_detach_db NewTest 数据库附加(如果日记变动则重新创建日记,此时日记名和逻辑日记名相同)[日记丢失可以这样写] exec sp_attach_db NewTest,N'E:\SQL\Test.mdf' 完整写法:exec sp_attach_db NewTest,N'E:\SQL\Test.mdf',N'E:\SQL\Test_log.ldf