在使用Yaf框架之前首先要看自己的php是否支持yaf扩展,如果没有安装yaf扩展的话,请参考如下地址进行安装:
https://blog.csdn.net/weixin_39278982/article/details/85002833
在安装完Yaf扩展后就可以创建我们的第一个yaf项目了。^_^
下图是一个典型的目录结构,文件和文件夹都需要自己手动去创建的哦:
application是应用程序存放的主要目录,该目录下包含controllers(用来存放控制器文件)、library(自定义类库,在yaf基础上支持自己的封装)、models(用来存放数据库文件)、modules(可以创建好多个模块,模块下有controllers和views)、plugins(该目录用来存放插件)、views(用来存放视图文件)。
和application同级的有conf(主要用来存放框架的配置文件)、public(yaf默认唯一访问入口)。
下面我们就该在以上创建的文件里头添加内容喽。
1、在public下的.htaccess文件下添加如下内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !(\.(ico|gif|jpg|png|bmp|swf|css|js))
RewriteRule .* index.php
2、在public下的index.php入口文件中添加如下内容:
<?php
define("APP_PATH", realpath(dirname(__FILE__) . '/../')); /* 指向public的上一级 */
$app = new Yaf_Application(APP_PATH . "/conf/application.ini");
$app->run();
3、在config目录下的application.ini中添加如下内容:
[commen]
application.debug=1
application.directory=APP_PATH "/application/"
application.dispatcher.defaultModule="index"
application.dispatcher.defaultController="index"
application.dispatcher.defaultAction="index"
application.dispatcher.throwException=1
application.modules="index,learn,test"
application.module.dir="modules"
application.module.config="setting"
application.view.ext="phtml"
[product]
;支持直接写PHP中的已定义常量
application.directory=APP_PATH "/application/"
4、在application下的controllers下的Index.php文件中添加如下内容:
<?php
class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {//默认Action
$this->getView()->assign("content", "Hello World");
}
}
?>
5、在application下的views下的index下的index.phtml文件中添加如下内容,phtml后缀的文件表示php、html共存的一种文件,yaf中提倡页面文件中使用这种格式的文件而不是html文件,当然使用html文件的话也可以在config下的application.ini中进行如下设置:
application.ini中配置:application.view.ext="html"
index.phtml中添加如下内容:
<html>
<head>
<title>Hello World</title>
</head>
<body>
<?php echo $content;?>
</body>
</html>
到这块我们的yaf项目已经创建完成,访问的话我们可以在nginx配置文件里配置一个虚拟主机来访问,以下是配置nginx虚拟主机
server
{
listen 9880 ; #可自行设置端口号
server_name 000.00.00.00; #服务器IP或者域名,自己定义
index index.html index.htm index.php;
root /home/wwwroot/yaf/public/;
include enable-php-pathinfo.conf;#如果启动nginx这行报错的话请注释
access_log /home/wwwroot/yaf/access.log;
#匹配到所有的url请求 (包括 图片 js css php ...)
location / {
#如果没有找到请求的文件
if (!-e $request_filename) {
rewrite ^/(.*) /index.php/$1 last;
}
}
}
配置完之后保存退出,然后平滑重启nginx,命令为:
/usr/local/nginx/sbin/nginx -t
结果显示没问题的话在执行重新载入命令,命令为:
/usr/local/nginx/sbin/nginx -s reload
最后我们可以测试访问了,如果你配置里头使用的是域名,那么直接用域名访问就好了,如果设置的IP,那么就需要用IP然后:端口号来进行访问,效果如下就是创建成功了。如果失败,请检查步骤是否有误,成功如下图: