本篇文章给大家谈谈yii2 开发api接口,以及yii2项目实战对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享yii2 开发api接口的知识,其中也会对yii2项目实战进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
如何在yii2上开发自己的api
应该是权限问题(无法创建目录)要么把整个项目可写(不推荐)要么把目录权限付给执行php的进程用户:比如我用的是php-fpm,配置php-fpm.conf(忘记名字了,应该在php安装目录的etc目录下)中的user是nobody,你把目录的权限分给这个用户即可(你也可以分给你当前的用户和用户组)
如何使用yii2开发
1.安装PHP环境(略过,自行百度)
2.安装代码编辑器(略过,都非常简单)
3.下载Yii2.0高级框架
配置项目访问的域名,如:c.com
1.打开hosts文件
路径:windows xp/2003/vista/2008/7/8用户HOSTS文件是在“c:\windows\system32\drivers\etc
输入:
127.0.0.1 localhos127.0.0.1 c.com
保存
2.打开
D:\phpStudy\Apache\conf\vhosts.conf
添加如下内容:
<VirtualHost _default_:80DocumentRoot "D:\WWW" <Directory "D:\WWW" Options -Indexes +FollowSymLinks +ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </Directory</VirtualHost<VirtualHost *:80 DocumentRoot "D:\WWW\c" ServerName c.com ServerAlias c.com </VirtualHost
保存
3.在项目根目录写一个index.php页面,然后重启Apache 测试一下
index.php 内容如下:
<?phpecho "你好";
4.将Yii2.0 框架,加压并复制到项目根目录中
5.对Yii2.0框架,进行web项目初始化
a、双击打开init.bat文件
b、输入0 回车
c、输入yes 回车
初始化完成,在前后台,都创建了入口文件,接下来我们在浏览器上访问以下
6.访问以下前台和后台
前台:c.com/frontend/web/index.php
后台:c.com/backend/web/index.php
在Yii2.0 中怎么使用 sphinx 搜索
如何调用Sphinx
按上面配置,第5节点对数据库进行了索引,通过Sphinx自带的search(在bin/release目录)就可以在命令行进行搜索:
(搜索CGArt)
windows上:
search -c d:/sphinx/sphinx.conf CGArt
Linux上:
cd /usr/local/sphinx
./bin/search -c sphinx.conf CGArt
运行后,系统提示一堆信息:
....
....
words:
1. 'cgart': 36 documents, 189 hits
这个表示库中有36条记录符合要求,出现CGArt的有189处。应用程序如果想调用Sphinx,可以从两个方面:
一是通过Sphinx官方提供的API接口(接口有Python,Java,Php三种版本)
二是通过安装SphinxSE(具体见1.2部分),然后创建一个中介sphinxSE类型的表,再通过执行特定的SQL语句实现。
通过官方API调用Sphinx(以PHP为例)
在sphinx安装目录有一个API目录,里面有三个PHP文件:test.php,test2.php和sphinxapi.php。 sphinxapi.php是sphinx调用接口封装文件,test.php是一个在命令行下执行的查询例子文件,test2.php是一个生成摘要的 例子文件。
在命令下行运行test.php(Linux上没有API目录,需要从源程序包中复制api目录至/usr/local/sphinx)
Windows上:
D:\sphinx\bin\releasec:\php5.2\php.exe -c c:\php5.2\php.ini ..\..\api\test.php -i cgfinal CGartLinux上(php在/usr/local/php目录,sphinx.conf在/usr/local/sphinx目录):
cd /usr/local/sphinx
/usr/local/php/bin/php api/test.php -i cgfinal CGArtSphinx的API查询接口主要有这些内容(其实对照 一下sphinxapi.php就清楚了):
//创建Sphinx的客户端接口对象
$cl = new SphinxClient ();
//设置连接Sphinx主机名与端口
$cl-SetServer('localhost',3312);
//可选,为每一个全文检索字段设置权重,主要根据你在sql_query中定义的字段的顺序,Sphinx系统以后会调整,可以按字段名称来设定权重
$cl-SetWeights ( array ( 100, 1 ) );
//设定搜索模式,SPH_MATCH_ALL,SPH_MATCH_ANY,SPH_MATCH_BOOLEAN,SPH_MATCH_EXTENDED,SPH_MATCH_PHRASE
$cl-SetMatchMode(SPH_MATCH_ALL);
//设定过滤条件$attribute是属性名,相当于字段名(用SPH_MATCH_EXTENDED时),$value是值,$exclude是布尔型,
当为true时,相当于$attribute!=$value,默认值是false
$cl-SetFilter($attribute, $values, $exclude);
//设定group by
//根据分组方法,匹配的记录集被分流到不同的组,每个组都记录着组的匹配记录数以及根据当前排序方法本组中的最佳匹配记录。
//最后的结果集包含各组的一个最佳匹配记录,和匹配数量以及分组函数值
//结果集分组可以采用任意一个排序语句,包括文档的属性以及sphinx的下面几个内部属性
//@id--匹配文档ID
//@weight, @rank, @relevance--匹配权重
//@group--group by 函数值
//@count--组内记录数量
//$groupsort的默认排序方法是@group desc,就是按分组函数值大小倒序排列
$cl-SetGroupBy($attribute, $func, $groupsort);
//设定order by的内容,第一个参数是排序方法名,值有
// SPH_SORT_RELEVANCE,SPH_SORT_ATTR_DESC,SPH_SORT_ATTR_ASC,SPH_SORT_TIME_SEGMENTS,SPH_SORT_EXTENDED
//$sortby的值如"HITS desc"
$cl-SetSortMode(SPH_SORT_EXTENDED, $sortby);
//set count-distinct attribute for group-by queries,$distinct为字符串
$cl-SetGroupDistinct ( $distinct );
//相当于mysql的limit $offset,$limit
$cl-SetLimits($start,$limit)
//$q是查询的关键字,$index是索引名称,当等于*时表查询所有索引
Yii2 EasySwoole Hyperf 并发对比
使用 ab 进行并发测试
环境
URL地址
yii2 开发api接口:nginx 转发
服务器:CentOS 7 64位
yii2 开发api接口,1G 内存
并发:100
总请求数:10000
并发测试命令:
ab -c 100 -n 10000 http://hyperf.apptest.com:9501/
Yii2 测试并发结果
EasySwoole 测试并发结果
Hyperf 测试并发结果
结论
综合来说: Hyperf
yii2 开发api接口的效率高一点
yii2 开发api接口,EasySwoole也还不错,都可以考虑使用。
它们的底层是 swoole,用于开发 API ,效率好一点。
高并发的API接口选用什么PHP框架合适
Yaf的其实本质上讲
yii2 开发api接口,是个基础框架
yii2 开发api接口,仅提供了一个简单粗暴的基础URI路由功能,完事了。
最关键是并发和多线程以及定时器等等,Yaf本身不能实现。
这点小性能没有必要在乎,c框架有些bug让
yii2 开发api接口你无从下手,phalcon就被坑过
如果想用的6都会去看框架源码,用c写的框架看源码多么痛苦
我觉得随着php逐渐的发展,性能逐渐的优化,这种类型框架迟早会被淘汰的
关于yii2 开发api接口和yii2项目实战的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
yii2 开发api接口的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于yii2项目实战、yii2 开发api接口的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~