关于Yaf的一些说明一文中已经讲到了Yaf的一些额外信息,对于一个想了解这个框架的人来说,已经足够多了。
Yaf框架的前身是鸟哥在百度做PHP顾问时写的,在百度内部叫做AP框架,开源的版本称作Yaf框架。它们之间存在一些差异,但大部分都是相同的。可以说,有大牛经过的地方,都带着他们自己的影子,人走了,但东西都留下,方便了后来的人。
有时候觉得一些东西简单,很方便,比如Yii框架的gii,有时候又觉得什么都没有最好,比如Yaf,什么都自己写,更简单一些。全栈框架一方面确实快捷,但往往表面的东西占据了大多数功能。有种因为走的太远,可能忘记了自己是因为什么而出发的感觉。
所以介绍一下Yaf框架,对于以接口为主的应用来说,确实省掉了大量的扩展,即便是后台,也更简单,稍微维护就可以满足需求。
安装
安装很简单,现在的机器一般都很少使用源代码编译了,而是直接使用现成的包,比如mac上搜索一下:
zhgxun-pro:~ zhgxun$ brew search php71-yaf
==> Searching local taps...
homebrew/php/php71-yaf ✔
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...
zhgxun-pro:~ zhgxun$
当然线上服务器如果yum无法安装,那就考虑源代码编译吧,现如今编译一个软件,真的是一件很容易的事情了。
配置
比如使用nginx来做web服务器,直接配置应用入口即可:
zhgxun-pro:~ zhgxun$ cat /usr/local/etc/nginx/servers/yaf.conf
server {
listen 80;
server_name yaf.com;
index index.php index.html;
root /Users/zhgxun/Public/html/php/yaf/public;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php/$1 last;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}
access_log /Users/zhgxun/Public/html/logs/yaf.log main;
}
zhgxun-pro:~ zhgxun$
服务器配置,一般只要公司不是很小,都有专门的运维同学负责,完全轮不到开发啥事。如果轮到了,那说明公司真的很小,你就简单配置一下,就可以支持公司业务了。放心,不要害怕,等公司业务做大了,不要害怕自己不会,会找到更厉害的人来管理的,你只需要做好自己该做的就行了。
目录
目录按照官网给定的即可,很多项目,都不要弄的很复杂,越简单越好。
zhgxun-pro:php zhgxun$ tree yaf/
yaf/
├── application
│ ├── controllers
│ │ └── Index.php
│ ├── library
│ ├── models
│ ├── modules
│ ├── plugins
│ └── views
│ └── index
│ └── index.html
├── conf
│ └── application.ini
└── public
├── css
├── img
├── index.php
└── js
13 directories, 4 files
zhgxun-pro:php zhgxun$
配置
Yaf的配置不多,但也要注意一些默认值,可能需要你自己修改:
[product]
;支持直接写PHP中的已定义常量
application.directory=APP_PATH "/application/"
application.view.ext=html
默认配置已经很好了,但有些很奇怪的配置,可能每个人的适应不同,比如我就看不惯模板文件叫tpl,phtml这类的扩展名,不知道是因为什么,反正是每次看到都有种想要重命名的冲动。
入口
每个应用都有一个请求入口。
class IndexController extends Yaf_Controller_Abstract
{
public function indexAction()
{
$this->getView()->assign("content", "Hello World");
}
}
模板
简单的html标记语言是每个php开发者都需要掌握的知识。不过目前很少需要前后端都要写的情况了,如果有,说明你在的公司真的太小了,是时候需要考虑换一份工作,好好安心写php。
<html>
<head>
<title>Hello World</title>
</head>
<body>
<?php echo $content;?>
</body>
</html>
我写最多的时候也是后端,后端需要的js也很少,ajax就可以对付基本的业务。前端不一样,现在都要用vue来做了,jQuery做前端的网站不多了,后端同学不喜欢就不要去学了。知识太多,好好做后端就行。
重写
因为路由的关系,大多数应用都需要开启重写引擎。
#.htaccess, 当然也可以写在httpd.conf
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
好,Yaf框架就说这么多。