# yafelement
**Repository Path**: phpbloger/yafelement
## Basic Information
- **Project Name**: yafelement
- **Description**: Yaf+element+vue 支持多域名、多平台、自动加载、常驻内存、无限极分类、自动渲染视图,自动生成表单、表单验证,element模块组件化,快速生成一个项目后台
- **Primary Language**: PHP
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: https://www.phpbloger.com
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 3
- **Created**: 2019-12-04
- **Last Updated**: 2024-03-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## Yaf-element
基于Yaf element-ui vue,带无限极分类、多级分销、权限管理后台系统,element组件集成,模块自动生成,并支持多域名、多平台、多环境(生产、测试、开发)独立配置、自动加载、常驻内存、分布式代码、已构建核心类库、一个非常灵活的api架构。
## 解决问题
- 解决了使用yaf多模块无法继承BaseController的问题
- 解决了yaf使用多域名配置只能使用多模块、并且只能通过转发设置模块的方法的问题
- 灵活的配置规则
- 核心类库分离使用多模块所有核心类库都放在library文件混乱
- 组件共享,多域名组件共享
- 项目解耦,可将项目模块化,业务单独部署
改进一下yaf,除了具备yaf的功能之外,更加拥有更加强大的能力,可以用于大型项目的基础架构;
## 后台
element ui + vue
## 功能
- 设置模型字段,自动生成表单、表格、渲染视图、表单验证等(增删改查操作),简而言之,项目中一个模块只需要设置模型,增删改查将自动生成,支持自定义和重写,总之如果你要搭建一个后台管理系统,那么它将是你不错得选择;
- 图表功能、柱形图、折线图...
- 支持本地上传、oss上传,只要开启上传将会自动上传到oss
- markdown
- 网站配置
- 菜单设置(支持无限极菜单,自动渲染,后台只需要添加即可)
- 管理员设置
- 权限设置
- 多级分销
## 组件
- composer
- pdo
- file
- api
- http curl
- session
- log(日志处理)
- server
- 腾讯oss
- redis
- apcu
- common
## 安装
- 安装yaf扩展
- 开启:use_namespace
- 开启:lowcase_path
- 开启:use_spl_autoload
- 设置:environ
php.ini 增加一下配置
```$xslt
[Yaf]
yaf.use_namespace = 1
yaf.environ = "develop"
yaf.lowcase_path =1
yaf.use_spl_autoload=1
```
- 克隆代码
```angular2html
git clone https://gitee.com/phpbloger/yafelement.git
```
由于项目增加了腾讯oss,如果需要请切换腾讯镜像:
```angular2html
composer config -g repos.packagist composer https://mirrors.tencent.com/composer/
```
不需要请删除composer.json中"qcloud/cos-sdk-v5": ">=2.0",:
- 执行
```angular2html
composer update
```
- 配置数据库:conf//开发环境//对应模块.ini
```$xslt
[db]
db.default.host = "127.0.0.1"
db.default.port = 3306
db.default.dbname = "yafelement"
db.default.charset = "utf8"
db.default.username = "root"
db.default.passwd = "root"
```
- 配置nginx 或者apache,配置在下方
- 运行即可
##注意
如果实在wamp环境下只需要开启命名空间即可。
如果实在lnmp环境上运行该框架必须确保一下配置开启:
```
#确保命名空间开启
yaf.use_namespace=1
#确保文件以小写开头加载
yaf.lowcase_path=1
#确保可以使用其他文件加载方式,我们采用psr-4加载核心类库
yaf.use_spl_autoload=1
```
##host
> 127.0.0.1 admin.yaf-element.com
> 127.0.0.1 home.yaf-element.com
##虚拟主机配置
> apache
后台
```
DocumentRoot "D:\phpStudy\WWW\yafelement\public\admin"
ServerName admin.yaf-element.com
ServerAlias
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
```
home
```
DocumentRoot "D:\phpStudy\WWW\yafelement\public\home"
ServerName home.yaf-element.com
ServerAlias
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
```
>nginx
后台
```php
server
{
listen 80;
listen 443 ssl http2;
server_name admin.yaf-element.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/admin.yaf-element.com/public/admin;
#https 配置 无需可以删除
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate /www/server/panel/vhost/cert/admin.yaf-element.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/admin.yaf-element.com/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-74.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/admin.yaf-element.com.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log off;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log off;
}
access_log /dev/null;
error_log /www/wwwlogs/admin.yaf-element.com.error.log;
}
```
home
```
server
{
listen 80;
listen 443 ssl http2;
server_name home.yaf-element.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/home.yaf-element.com/public/home;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate /www/server/panel/vhost/cert/home.yaf-element.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/home.yaf-element.com/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-74.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/home.yaf-element.com.cn.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log off;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log off;
}
access_log /dev/null;
error_log /www/wwwlogs/home.yaf-element.com.error.log;
}
```
以上配置根据自身情况修改即可;
数据库后台账号:guest 密码:guest
该版本已经集成了markdown并且组件化,增加腾讯云上传