π框架从入门到放弃,判断访客是否是移动设备访

作者:澳门金莎娱乐网站

全称Phalapi,是一个PHP轻量级开源接口框架,以下是他的优点:

一直在懵逼nginx 的路由配置,经过今天几个小时的努力这次终于弄明白了。

/** * 判断访客是否是移动设备访问 * @return boolean [description] */ public function isMobileDevice() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) { return true; } // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息 if (isset($_SERVER['HTTP_VIA'])) { // 找不到为flase,否则为true return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false; } // 脑残法,判断手机发送的客户端标志,兼容性有待提高 if (isset($_SERVER['HTTP_USER_AGENT'])) { $clientkeywords = array('nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-', 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 'operamobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile', ); // 从HTTP_USER_AGENT中查找手机浏览器的关键字 if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) { return true; } } // 协议法,因为有可能不准确,放到最后判断 if (isset($_SERVER['HTTP_ACCEPT'])) { // 如果只支持wml并且不支持html那一定是移动设备 // 如果支持wml和html但是wml在html之前则是移动设备 if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) { return true; } } return false; }

免费:最好的往往是免费的;不断更新:15年发布,到现在不断的更新和完善,现已达到2.X版本;简单易学:新版本引入了命名空间和composer统一管理依赖包,相对有thinkphp5框架学习基础的人,很快就可以从入门到实战了;提供很多接口服务:可用于快速搭建微服务、RESTful接口或Web Services;

如果有不对的地方,希望有前辈指出错误,让我更上一层楼,也让我别再错误的道路上越走越远。

2.X版本

使用了composer统一管理依赖包引入了命名空间遵循PSR-4规范

1.index

适用场景

为移动App(包括iOS、iPad、Android、Windowns Phone等终端)提供接口服务用于搭建接口平台系统,提供聚合类接口服务,供其他后端系统接入使用为前后端分离的H5混合页面应用,提供Ajax异步接口

前面说了,phalapi框架新版本2.x与旧版本1.x传统的设计理念的不同,学过thinkphp5的人,半天就可以入门π框架,但如果没学过thinkphp5的人岂不是一脸懵逼?不用担心,下面小编带你简单的过一下学习的流程。

我的理解是默认路径,也就是当找不到文件的时候的一个默认的路径,可以配置多个。

下载

从官网【

具体的用法稍后说,请先记住这个东西当你找不到其他合适的东西,默认给你分配的。

访问默认接口

安装完相应工具,你离成功就不远啦!在火狐浏览器输入:

澳门金莎娱乐网站 1澳门金莎娱乐网站,image.png

ps:与我不同的是,你没显示debug数据,可在config/sys.php修改debug为true

那么为什么会有数据显示呢?我们明明就没有写接口呀?因为这个默认接口服务,也可以说是example;

澳门金莎娱乐网站 2image.png

红框:入口文件黄框:默认访问api类Site篮框:默认访问接口服务

项目源代码放置在上图中的src文件,里面各个命名空间对应一个子目录,默认命名空间是app,里面主要有Api、Domain、Model这三个目录以及存放函数的functions.php文件。当需要新增一个接口时,先要在Api层添加一个新的接口文件。例如对于Hello World示例,可以使用你喜欢的编辑器创建一个./src/app/Api/Hello.php文件,并在里面放置以下代码。

// 文件 ./src/app/Api/Hello.php<?phpnamespace AppApi;use PhalApiApi;class Hello extends Api { public function world() { return array('title' => 'Hello World!'); }}

2.location

访问一个接口

通常情况下,建议可访问的根路径设为/path/to/PhalApi2/public。若未设置,此时接口访问的URL格式为:接口域名/public/?s=Namespace.Class.Action。其中,s参数用于指定待请求的接口服务,由三部分组成

组成部分 是否必须 默认值 说明
Namespace 可选 APP Api命名空间前缀,多级命名空间时用下划线分割
Class 必须 待请求的接口类名,通常首字母大写
Action 必须 待请求的接口类方法名,通常首字母大写。若Class和Action均未指定时,默认为Site.Index

这个东西匹配你需要的路径

效果

澳门金莎娱乐网站 3image.png

PS:当响应成功时,http状态码应该为200,我在源代码里修改响应类ret为1

原文作者:------ 沙蒿 ------关注我吧《程序员的碎碎念》作者,不会ui的前端不是好后端不忘初心,牢记使命,对于文章内容有疑问的或者想深入交流学习的朋友可以加我微信:2283743369

[图片上传失败...(image-142a00-1527905370923)]

server {listen 80;server_name localhost;

 root html/; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php?$args; proxy_pass http://www.baidu.com; } location ~ .$ { try_files $uri = 404; } location ~ .php$ { try_files $uri = 404; include fastcgi.conf; fastcgi_pass 127.0.0.1:9000; }}

你可以匹配你需要的所有的uri

想要具体了解的话。

3.try_files

这个东西是重定向用的,我感觉和index 差不多,不过确实比index 要好用

本文由澳门金莎娱乐网站发布,转载请注明来源

关键词: