GithubHelp home page GithubHelp logo

hyperf-admin-demo's Introduction

HyperfAdmin是前后端分离的后台管理系统, 前端基于vuevue-admin-template, 针对后台业务列表, 表单等场景封装了大量业务组件, 后端基于hyperf实现, 整体思路是后端定义页面渲染规则, 前端页面渲染时首先拉取配置, 然后组件根据具体配置完成页面渲染, 方便开发者仅做少量的配置工作就能完成常见的CRUD工作, 同时支持自定义组件和自定义页面, 以开发更为复杂的页面.

详细文档

演示站点 用户名: daodao, 密码: a1a1a1

演示站点部署在亚马逊免费主机, 国内访问可能会慢

HyperfAdmin架构

前端为vue multiple page多页模式, 可以按模块打包, 默认包含两个模块default 默认模块, system系统管理模块, 绝大部分业务组件在src/components目录

后端为composer包模式, 目前包含组件

  • 基础组件
    • composer require hyperf-admin/base-utils hyperf-admin的基础组件包, 脚手架主要功能封装
    • composer require hyperf-admin/validation 参数验证包, 对规则和参数提示做了较多优化
    • composer require hyperf-admin/alert-manager 企微/钉钉机器人报警包
    • composer require hyperf-admin/rule-engine 规则引擎
    • composer require hyperf-admin/event-bus mq/nsq/kafka消息派发器
    • composer require hyperf-admin/process-manager 进程管理组件
  • 业务组件 (业务组件为包含特定业务功能的包)
    • composer require hyperf-admin/admin 系统管理业务包
    • composer require hyperf-admin/dev-tools 开发者工具包, 主要是代码生成, 辅助开发
    • composer require hyperf-admin/cron-center 定时任务管理, 后台化管理任务
    • composer require hyperf-admin/data-focus 数据面板模块, 帮你快速制作数据大盘

前端的安装

# 环境依赖
# 1.  node ^v11.2.0 https://nodejs.org/zh-cn/download/
# 2.  npm ^6.4.1
git clone https://github.com/hyperf-admin/hyperf-admin-frontend.git
cd hyperf-admin-frontend
npm i
npm run dev

请根据实际情况修改vue.config.js中的代理 proxy.target地址

# 打包
npm run build:prod
npm run build:test

后端的安装

1. 初始化一个hypef项目

# 环境依赖 php ^7.2 composer swoole 
composer create-project hyperf/hyperf-skeleton hyperf-admin
cd hyperf-admin

2. 移除hyperf-skeleton中的日志配置, 因为 admin 底层已配置

rm config/autoload/logger.php

3. 安装hyperf-admin的依赖DB信息

hyperf-admin 为分包的模式, 此处引入的是完整仓库, 实际项目请按需引入

全部的mysql 表结构及及基础数据详见 demo/db

4. 修改项目.env

APP_NAME=hyperf-admin
ENV=dev

# Redis链接信息
REDIS_HOST=localhost
REDIS_AUTH=(null)
REDIS_PORT=6379
REDIS_DB=0

# hyperf-admin 依赖的核心db
HYPERF_ADMIN_DB_HOST=localhost
HYPERF_ADMIN_DB_PORT=3306
HYPERF_ADMIN_DB_NAME=hyperf_admin
HYPERF_ADMIN_DB_USER=root
HYPERF_ADMIN_DB_PWD=root

LOCAL_DB_HOST=localhost

5. 安装hyperf-admin扩展包

composer require hyperf-admin/hyperf-admin

hyperf-admin 为分包模式, 实际应用中请根据情况安装

6. 初始化validation的依赖文档

php bin/hyperf.php vendor:publish hyperf/translation
php bin/hyperf.php vendor:publish hyperf/validation

7. 设置用户密码的加密key, 配置节点password.salt

// config/config.php

'password' => [
    'salt' => env('HYPERF_ADMIN_PWD_SALT', 'c093d70f088499c3a837cae00c042f14'), // 用 md5(time()) 获取 salt

8. 启动

# 启动 热重启参考 https://github.com/daodao97/hyperf-watch
composer watch

nginx配置

upstream backend {
    server 127.0.0.1:9511;
}

server {
    listen 80;
    server_name hyperf-admin.com; # 设置自己的 domain
    index index.html;
    root /opt/www/hyperf-admin-front/dist;
    access_log /usr/local/var/log/nginx/hyperf-admin.access.log;
    error_log /usr/local/var/log/nginx/hyperf-admin.error.log;

    location ~ /api/(.*) {
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host hyperf-admin.com;
        proxy_pass http://backend/$1$is_args$args;
    }

    location / {
        root /opt/www/hyperf-admin-front/dist/default;
        index index.html;
    }

    location ~ /(.*) {
        set $module $1;
        if ($module ~* '^$') {
            set $module default;
        }
        try_files $uri $uri/ /$module/index.html;
    }
}

浏览器打开 http://youdomain.com:8081/default/#/dashboard 即可访问

默认账号 daodao, 密码 a1a1a1

hyperf-admin-demo's People

Contributors

daodao97 avatar itxiao6 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hyperf-admin-demo's Issues

不指定字段的时候会报错

'username|用户名' => [
'rule'=>'required|alpha_num|unique:hyperf_admin.member',
'props' => [
'size' => 'small',
'maxlength' => 20,
],
],

Unknown column '35_to_ignore' in 'where clause' 35 是 正在编辑的id

新生成了一个控制器 ,配置了路由,然后就这样??

2020-08-25 07:46:18||http.exception||ERROR||0||{"trace":"TypeError: Argument 1 passed to HyperfAdmin\BaseUtils\Scaffold\Controller\Controller::success() must be of the type array, null given, called in /Users/Documents/www/HYPERF/hyperf-admin-demo/backend/vendor/hyperf-admin/hyperf-admin/src/base-utils/src/Scaffold/Controller/AbstractController.php on line 118 and defined in /Users/Documents/www/HYPERF/hyperf-admin-demo/backend/vendor/hyperf-admin/hyperf-admin/src/base-utils/src/Scaffold/Controller/Controller.php:106

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.