十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
cms提供直接输出、PHP代码体两种方便开发者使用的数据输出接口。
我们提供的服务有:成都做网站、网站制作、微信公众号开发、网站优化、网站认证、田东ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的田东网站制作公司
1、直接输出
本类型是将后台录入的数据格式原样输出到客户端
返回格式为:
array(3) { ["code"]= int(1) ["msg"]= string(2) "ok" ["data"]= string(7) "test123" }
2、JSON数组
本类型数据内容必须是一个json格式的数组字符串
返回格式为:
array(3) { ["code"]= int(1) ["msg"]= string(2) "ok" ["data"]= array(3) { [0]= string(1) "1" [1]= string(1) "2" [2]= string(1) "3" } }
3、php执行代码
4、模板查询标签
本类型需要有CMS模板标签的使用经验,直接写标签代码返回结果
例如调用news模块全部数据:
{module module=news} 或者 {list action=module module=news}
模板标签只能写一段,不能写多段
通过以上的list查询方法可调用循环标签的全部数据,当然你可以对结果进行格式化处理,使用回调方法。
5、自定义模板标签
本类型需要有CMS模板标签的使用经验,直接写标签代码返回结果,区别于(4),本类型可以直接在标签里面写赋值方法和格式化显示,不需要写回调方法
这里循环出news模块的全部数据,只显示id,title,再把thumb转换为url地址。
也可以这样写,原理是将输出变量赋值给$api数组:
{module module=news} {php $api[$key]['id']=$t['id'];} {php $api[$key]['title']=$t['title'];} {php $api[$key]['thumb']=dr_thumb($t['thumb'], 200,200);} {/module}
以上语法格式为:
6、自定义PHP代码
本类型需要有PHP的开发使用经验,直接将php业务代码写进去
$api变量为直接返回,例如:
$api = '我的自定义返回变量值';
返回截图如下:
也可以自定义强制返回
$api = '我的自定义返回变量值'; PhpcmfService::C()-_json(1, '我的返回脚本成功了', $api); // 成功写法 PhpcmfService::C()-_json(0, '我的返回脚本失败了'); // 失败写法
什么是封装? ------------------------------------
封装是php面向对象的其中一个特性,将多个可重复使用的函数封装到一个类里面。在使用时直接实例化该类的某一个方法,获得需要的数据
如果是私有的方法和属性值,外部无法访问,具有一定的保护作用。
《封装即隐藏》
public
当类的成员被声明为public的访问修饰符时,该成员能被外部代码访问和操作。
private(私有的)
被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。
protected(受保护的)
protected稍微有点复杂,被声明为protected的成员,只允许该类的子类进行访问。
什么是抽象?抽象的关键字以及用法-----------------------------------
定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。
abstract
一个类中至少有一个方法是抽象的,我们称之为抽象类。所以如果定义抽象类首先定义抽象方法。
abstract class class1{
abstract function fun1();
……
}
抽象类的几个特点:
1、不能被实例化,只能被继承
2、继承的派生类当中要把所有抽象方法重载才能实例化
什么是接口?接口的关键字以及用法--------------------
PHP 类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此 PHP 引入了类的接口技术。
如果一个抽象类里面的所有方法都是抽象方法,且没有声明变量,而且接口里面所有的成员都是 public 权限的,那么这种特殊的抽象类就叫 接口 。
implements
class 子类 extends 父类 implemtns 接口1, 接口2, ...
{
......
}
接口是特殊的抽象类,也可以看做是一个模型的规范。接口与抽象类大致区别如下:
一个子类如果 implements 一个接口,就必须实现接口中的所有方法(不管是否需要);如果是继承一个抽象类,只需要实现需要的方法即可。
如果一个接口中定义的方法名改变了,那么所有实现此接口的子类需要同步更新方法名;而抽象类中如果方法名改变了,其子类对应的方法名将不受影响,只是变成了一个新的方法而已(相对老的方法实现)。
抽象类只能单继承,当一个子类需要实现的功能需要继承自多个父类时,就必须使用接口。
区别:
1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。
2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。(另JAVA接口中的成员变量都要声明为public static final类型)
3、接口没有构造函数,抽象类可以有构造函数。
4、接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。
5、一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。
抽象类还是接口。
如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建将由一些不相关对象采用的功能,就使用接口。
如果必须从多个来源继承行为,就使用接口。
如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。
都一样的 只是由于app不是浏览器不能正常使用cookie所以不支持session认证 在做app接口的时候一般都会使用自己定义的token来认证 其他的都是一致的