yaf创建项目及配置
2021-04-13 本文已影响0人
懒人程序猿
安装yaf
安装yaf扩展参考:https://www.jianshu.com/p/35092c16cd36
php.ini配置项
选项名称 | 默认值 | 可修改范围 | 更新记录 |
---|---|---|---|
yaf.environ | product | PHP_INI_ALL | 环境名称, 当用INI作为Yaf的配置文件时, 这个指明了Yaf将要在INI配置中读取的节的名字 |
yaf.library | NULL | PHP_INI_ALL | 全局类库的目录路径 |
yaf.cache_config | 0 | PHP_INI_SYSTEM | 是否缓存配置文件(只针对INI配置文件生效), 打开此选项可在复杂配置的情况下提高性能 |
yaf.name_suffix | 1 | PHP_INI_ALL | 在处理Controller, Action, Plugin, Model的时候, 类名中关键信息是否是后缀式, 比如UserModel, 而在前缀模式下则是ModelUser |
yaf.name_separator | "" | PHP_INI_ALL | 在处理Controller, Action, Plugin, Model的时候, 前缀和名字之间的分隔符, 默认为空, 也就是UserPlugin, 加入设置为"_", 则判断的依据就会变成:"User_Plugin", 这个主要是为了兼容ST已有的命名规范 |
yaf.forward_limit | 5 | PHP_INI_ALL | forward最大嵌套深度 |
yaf.use_namespace | 0 | PHP_INI_SYSTEM | 开启的情况下, Yaf将会使用命名空间方式注册自己的类, 比如Yaf_Application将会变成Yaf\Application |
yaf.use_spl_autoload | 0 | PHP_INI_ALL | 开启的情况下, Yaf在加载不成功的情况下, 会继续让PHP的自动加载函数加载, 从性能考虑, 除非特殊情况, 否则保持这个选项关闭 |
创建yaf项目
拉取yaf源码:https://github.com/laruence/yaf
进入tools/cg目录,执行下面命令生成项目文件。意思是在当前目录生成Sample目录,参数可参考yaf_cg里面注释
php yaf_cg -d Sample
生成后的Sample目录结构如下
.
├── application
│ ├── Bootstrap.php
│ ├── controllers
│ │ ├── Error.php
│ │ └── Index.php
│ ├── library
│ │ └── readme.txt
│ ├── models
│ │ └── Sample.php
│ ├── plugins
│ │ └── Sample.php
│ └── views
│ ├── error
│ │ └── error.phtml
│ └── index
│ └── index.phtml
├── conf
│ └── application.ini
├── index.php
└── readme.txt
复制生成的Sample目录到项目中
application.ini配置文件
[common]
公用配置项
[product : common]
默认product,php.ini环境变量中设置的yaf.environ值。
可自行修改,如[test : common]、[develop : common]
; common 公用配置项
[common]
application.directory = APPLICATION_PATH "/application"
application.dispatcher.catchException = TRUE
; product对应php.ini环境变量中设置的yaf.environ
[product : common]
nginx配置
server {
listen 80;
server_name www.yaf.cn yaf.cn;
root /Users/wangxuemin/PhpstormProjects/Sample/;
index index.php index.html index.htm;
access_log /Users/wangxuemin/PhpstormProjects/yaf/log/nginx/access.log;
charset utf-8;
location /status {
access_log off;
}
if (!-e $request_filename) {
rewrite ^/(.*) /index.php?$1 last;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}