phalapi-入门篇1(简单介绍以及环境搭建)
#phalapi-入门篇1(简单介绍以及环境搭建)#
##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架.
笔者也是在进行接口开发时,寻找一个方便的针对与API开发的框架时,发现了这个框架,经过了短时间的尝试,发现确实很便捷效率很高 后面就立即运用到了正式的项目上,而且在后面的项目仍在一直使用,在其间也和很多希望了解这个框架的朋友有过很多交流,所以决定 写一篇关于这个框架的教程,一方面是为了帮助一些初学者快速了解,一方面是希望把自己在实际上运用的一些小技巧分享出来希望对大家受用!
附上:
开源中国Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release
##1. 简单的介绍##
官网上面有一句话让我特别有感受--接口,从简单开始!
如何的一个感受呢,在最近进行一个项目开发的时候,应为项目比较紧急需要快速的开发,从定完需求以及接口之后,仅仅花了8个小时就完成了 整个项目的接口(差不多20来个),我觉得从这点可以看出,如果这个框架用的熟练的话效率是及其高的.
其实接口最关心的就是性能,通过测试下来phalapi相对于的消耗相对于比较小,引入文件在10个左右空框架返回2核2G并发点击数在1700左右很给力, 在2核2G正常请求数据库接口相对于一套完整的业务平均下来最快的1000并发最慢的600并发,所以我觉得性能方面完全没问题(压力测试使用的是Loadrunner,ab压力基本是Loadrunner的3倍不太清楚为什么).
引用:
勿忘初心,方得始终
虽然现在这个社会的节奏很快,但如果有时间时,我们不妨静下来,稍微思考一下,然后你会发现:慢慢来,比较快。
PhalApi 的初衷:
我们之所以开源这个框架,是因为我们想致力于提供可以快速进行开发后台接口的框架,并且通过这个框架分享更多开发的最佳实践、原则和模式!这就是我们的初心,也希望我们能一直坚持下去。
PhalApi命名的来源
得益于开源社区,现在有很多优秀的开源框架。确实有很多框架值得我们去学习和使用,其中高性能的Phalcon框架和可视化代码评审工具 Phabricator都是相当令人敬佩和认可的。前者在思想、模式和原则上有很好的文档说明;后者在包管理、命名写法等都非常好地体现了代码重用。受此两个框架的影响,故取名为:PhalApi。
通过PhalApi,我们希望可以
撑轻量级项目后台接口的快速开发;阐明如何进行框架设计、对应复杂领域业务、支撑海量服务等,以及分享好的思想、技巧工具和最佳实践。最后,争取成为国内主流的PHP接口开发框架。
##2. 环境搭建##
在这里推荐使用(我后面有些配置等都会基于以下环境)lnmp:
Liunx+Nginx+php5.4以上+mysql
我使用的是centos6.5
有三种方式配置环境
1.手动编译安装(网上资料也挺多的但是容易出一些依赖什么什么的问题,新手不推荐)
2.yum或apt-get安装(yum安装无法指定目录都会装到/etc下面去不方便管理,但是要玩liunx必须要会)
3.lnmp一键安装工具(推荐:但是推荐基于上面几种都尝试过,这个安装方式基于--编译安装)
我推荐一个lnmp一键配置软件:
官网:OneinStack – 一键PHP/JAVA安装工具:http://oneinstack.com/
因为官网介绍的比较详细,在这里就不再多做说明!其余几种方式教程都比较多也不做说明!
那不了解liunx怎么办那就用wampserver在windows下还是比较好用的.
##3. 总结##
最后希望大家能够可以先了解了解此框架的文档通读一下在接着看下面的文章更容易理解一下,在这一套教程中会以构建一个完整的项目为基础 拓展开来讲解一些框架的机制,所以希望大家可以跟着一起做,能够收获的更多.
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
官网QQ交流群:421032344 欢迎大家的加入!
- go channel 通信通道
- SQl 语句(常见) 新建,删除,修改表,新增字段,修改默认值
- SQL处理表结构的基本方法整理(创建表,关联表,复制表)
- Go web之旅(路由篇)
- Golang插入排序
- Golang写的并行排序算法
- Go中调用dll示例
- python 序列化数据:pickle与json ,dumps与loads
- golang继承,和多态
- python 利用random生成验证码与MD5码加密过程
- Java内部类的继承
- Java继承类中static成员函数的重写
- Search for a range寻找上下界-Leetcode
- Basic Calculator 基本计算器-Leetcode
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 借助云开发实现小程序的登陆注册功能
- TextView显示文本控件两种方法 TextView显示link的方法
- Java入门005~Springboot2.2.4引入freemarker模板
- TabLayout使用方法详解
- Java入门006~springboot+freemarker+bootstrap快速实现管理后台
- Java入门007~springboot+freemarker+bootstrap快速实现分页功能
- ToolBar使用方法详解
- Android 中WallpaperManager用法实例
- Android实现屏幕各尺寸的获取的示例
- Android 中ContentProvider的实例详解
- Android Intent调用 Uri的方法总结
- Android 调用发送短信的方法
- Android 开发之Dialog中隐藏键盘的正确使用方法
- Android基于HttpUrlConnection类的文件下载实例代码
- Android ListView之setEmptyView正确使用方法