因为一时对微信小程序感起了兴趣,所以想要学习怎么自己写个小程序玩下,在网上看了挺多的教程,不过主要都是微信小程序的页面开发,有实战的却要钱,而且好像也是主打小程序的前端。
在这里,我先写下我怎么入坑PhaApi框架的。我没有学过后端,也没有写过app,所以对微信小程序后端和前端的数据交互是一脸懵逼,去网上看了教程,发现php做后端好像挺火的,而且同学那正好有一本相关的书,所以就直接选定了php作为我第一小程序的后端语言,学了一段时间发现php确实简洁好学,但tm的学完在去看网上那些教程都是教怎么写网页后端的,作为一个初学者根本弄不懂网页后端跟app后端怎么转换,所以只能网上查了,一个看不懂就多看几个,慢慢才了解什么是网页什么是api(二者到底有什么本质的区别我也不知道,只是知道了数据格式不同)。好了,话题回到怎么学后端这个坑,特么真坑,一开始看到Thinkphp这个框架,还是国产的,抱着支持国产的心里就去各个学习网站看关于ThinkPHP的课程了,可是这个框架是定位在能开发企业级的网页的(我就是想写个简单的小程序装装逼而已),基础课程里讲的大部分都是怎么配置mvc,什么工厂模式什么什么生产模式啊什么的,讲的详细到我都哭了但还是不知道怎么写,所以果断的放弃了(这里不是黑,这是成熟的框架所应该具备的的,只是我因为有其他事而且专业不对口所以花不了太多时间在上面又想能快速做出点什么东西来所以才放弃),之后又找了下laravel框架,发现也跟ThinkPHP是一个等级的,所以也就没学,但是突然在无意中发现了一个论坛推荐了专门写Api的php框架而且急速入门,我去,这不是正是我梦寐以求的吗,找到这个的框架的官网发现还是国人写的,壮哉,首页介绍内容直接写一个怎么极速创建一个api的例子简直让我像饿了几天的人看到一顿大餐一样兴奋,当即就选择入坑了。
可是后来发现这个框架是一个新生的框架,而且开发团队和社区的活跃度感觉很有限,能让我找到这个框架也不知道算运气好还是坏,不过都已经入坑了就先被坑几把再说,首当其冲的坑就是配置环境了,而且官网推荐使用nginx,反正我啥也没用过,他们说用什么我就用什么吧,在这我先介绍下我的环境:
腾讯云的学生服务器(感谢马化腾) 服务器系统是Ubuntu16.x 用sudo apt-get install 安装的php nginx
用远程登录服务器git clone Phalapi框架下来,然后按照官网的手册配置nginx,然后就来坑了,虽然这个框架是个新生的框架,但也有两岁多了,我的系统和nginx版本都跟手册对不上,按照手册写的配置的nginx直接用不了,而官网的手册走心程度有限,代码什么的都没个注释,而且直接是描述过程而不解释作用,本来看到这我就想直接弃了,可是不知道哪来的倔劲让我跟他刚了起来,我去找了nginx的课程,借鉴了里面的基础配置,而且去网上百度了一堆的nginx配置名称解释,最后再加上Phalapi手册里的配置硬是拼接了一个可行的配置
server {
listen 80 ;
server_name api.phalapi.net; #设置成自己的服务器的域名能远程访问了。
root /home/ubuntu/PhalApi/Public;
charset utf-8;
# Add index.php to the list if you are using PHP
index index.html index.htm index.php index.nginx-debian.html;
location / {
index index.html index.htm index.php;
try_files $uri $uri/ =404;
}
location ~ \.php$ {
root /home/ubuntu/PhalApi/Public;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
这个配置内容不一定全对,但实测有用(是我一条一条增删得出来的),可是这时候,问题又来了,这个框架创建一个项目不是以手动的形式而是用浏览器浏览特定的本地网址再在网页输入参数才能,我去,我的服务器系统是都没个图形界面还怎么浏览,而官网手册又没给其他办法,还好我机智,替换了server_name 的参数,这个配置项表示通过这个网址(写入的参数)还有listen的端口访问会转发到root 目录下的服务。
然而坑又来了,虽然可以远程访问那个网址,但是依然符合不了框架的要求,提示创建成功但找到手册所说的文件,就算我安装上了PHP的Memcache扩展也还是没用。
不过,哈哈,我发现框架自带的Demo项目可以正常使用(正常使用指的的是能访问到数据,而且可以完成手册前面给的例程),所以我就跳过网页的方式,直接用复制文件夹的方法,用cp命令复制Phalapi目录的Demo文件夹并且重命名为Test(注意这里又是一个坑,一定要首字母大写,不知道是不是因为我的方法问题还是),在用复制Phalapi目录下的Public下的demo文件夹并且重命名为test(这里好像也写成Test更好,不过访问的路径也要为Test)。然后你就可以照着官网手册做例程了。
这篇笔记我也只是刚开始学时写的,所以并没有太多实际内容,只是我个人初学PhalApi的经验和方法,希望对有同样想法的同学有点用。也希望PhalApi框架能越来越好(虽然现在确实还很不完善,但框架确实简单易用,而且为api而生的立义真的很不错,如果想只是简单入门下api开发考虑这个框架还是可以的)
复制完了一定要更改下文件内容,使入口文件能定位到你项目目录相应的文件夹中。