dandisy/webcore

Webcore 平台 - 单一平台 Laravel 网站可根据需求构建

安装: 284

依赖: 0

建议者: 0

安全: 0

星标: 52

关注者: 7

分支: 27

公开问题: 6

类型:项目


README

单一平台可用于管理面板或Web CMS(根据您的需求构建)

文档请访问https://dandisy.github.io

1. Webcore

安装

复制、粘贴并在控制台逐行按Enter键

  • 使用Git

      git clone https://github.com/dandisy/webcore.git
    
      cd webcore
    
      composer install
    
      cp .env.example .env
    

确保您的服务器已创建 "webcore" 数据库,使用您喜欢的编辑器编辑 .env,例如使用 nano 编辑器,在控制台运行以下命令

sudo nano .env

然后

php artisan key:generate
  • 使用Composer

      composer create-project dandisy/webcore {your-project-name}
    
      cd {your-project-name}
    

然后

php artisan migrate --seed

php artisan storage:link

现在在您喜欢的浏览器中获取它

https:///webcore/public

and

https:///webcore/public/admin

默认用户是

- superadminstrator@app.com
- administrator@app.com
- user@app.com

with default password is password

--可选--

如果您想激活 oauth,

编辑资源/assets/js/components/passport 中的 vue 文件中的 uri oauth

php artisan passport:keys

npm install

npm run dev

然后您可以通过访问 oauth 管理面板来管理您的 oauth 客户端

https:///webcore/public/oauth-admin

使用方法

  • 作为管理面板(前端无公开网站)

在您的控制台中运行以下 artisan 命令

如果您有模式模型文件,将 YourModel 改为您要生成的模型名称

php artisan generate:api_scaffold YourModel --fieldsFile=YourModel.json --datatables=true

或如果您想在控制台中交互式地指定字段

php artisan generate:api_scaffold YourModel --datatables=true
  • 作为 Web CMS

概念

Admin Page - UI Component - Front Page
  1. 后端页面(管理端)

    管理端页面范围
    提供内容管理、展示管理、资产管理以及配置

  2. UI 组件(页面的一部分)

    UI 组件范围(小部件)
    提供可重复使用的 UI(小部件)部分,用于页面模板(带有布局位置),(并提供用户交互跟踪以实现个性化)

    页面范围
    通过整合模板将 UI 组件全局布局和样式作为页面

  3. 前端页面

    前端页面范围
    提供具有内容个性化的用户体验

在您的控制台中运行以下 artisan 命令

php artisan generate:api_scaffold Page --fieldsFile=Page.json --datatables=true --prefix=admin --logs

php artisan generate:api_scaffold Post --fieldsFile=Post.json --datatables=true --prefix=admin --logs

然后运行

composer require dandisy/webcore-page:dev-master

php artisan vendor:publish --provider="Webcore\Page\PageServiceProvider" --tag=config

如果您想获取 Webcore 前端页面系统主题和组件示例代码

请在此下载https://github.com/dandisy/themes(请勿克隆!)

然后提取到您的项目根目录

更多信息请参阅https://github.com/dandisy/webcore-page

然后

composer require dandisy/webcore-menu:dev-master

php artisan vendor:publish --provider="Harimayco\Menu\MenuServiceProvider"

php artisan vendor:publish --provider="Webcore\Menu\MenuServiceProvider" --tag=models

php artisan migrate

更多信息请参阅https://github.com/dandisy/webcore-menu

为了整洁,您可以在 resources/views/layouts/menu.blade.php 中安排管理端侧菜单

可直接使用

如果您对上述使用说明仍感到困惑,您可以自己探索并尝试安装可直接使用的 Webcore 示例作为网站 CMS

请在此下载https://github.com/dandisy/webcore-sample

或者,为了更好的用户体验 CMS 结构,请使用https://github.com/dandisy/eloguihttps://github.com/dandisy/webcore-presentation

请在此下载https://github.com/dandisy/webcore-cms

功能

  1. 管理端模板

    AdminLTE

  2. 文件管理器

    File Manager

  3. 菜单管理器

    Menu Manager

  4. 图片处理

    要处理图片,请使用

     https:///webcore/public/img/{path}?{param=value}
    

    默认 {path} 配置相对于 public_path,请参阅 .env 中的 FILESYSTEM_DRIVER 和 config/filesystems.php

    有关手动指南,请参阅http://glide.thephpleague.com

  5. 基于http://labs.infyom.com/laravelgenerator的Laravel生成器,具有额外功能

    • 日期时间选择器(htmltype = date-picker, time-picker或datetime-picker)
    • Select2(所有选择输入将使用select2,对于多个选择使用htmltype = multi-select)
    • 双边多选(htmltype = two-side-select)
    • HTML文本编辑器(htmltype = text-editor)
    • 文件管理器(htmltype = file-manager或files-manager)
    • 迁移中的可空字段(控制台选项 = n,或在json模式文件中使用dbNullable = true)
    • 日志字段:created_by和updated_by( artisan命令选项 = --logs)
    • 相关下拉菜单(在控制台使用--relations选项):在控制器中添加视图模型,并在视图中添加相关输入表(htmltype = select,relation:{view-model}={field-to-show}={field-as-value})
    • 相关表单(在控制台使用--relations选项):在控制器中添加视图模型,并在视图中添加相关输入表(dbtype = table和htmltype = related-form,related-field1,related-field2,related-field3,...)
    • 组件和主题目录读取生成器(htmltype = select,component或select,theme)
    • 模型目录读取生成器(htmltype = select,model)

请参考资源/model_schemas中的示例模型模式文件

  1. 首页系统(支持主题、模板位置和视图组件)

    示例代码可以在此下载https://github.com/dandisy/themes

  2. 可重用组件

    • 使用Webcore组件展示系统为首页组件

      代码示例可以在此下载https://github.com/dandisy/themes

    • 使用Widget(Widget类 & Widget视图)使用arrilot/laravel-widgets进行UI组件

      尽可能使widget具有松散耦合,动态传递数据,避免直接在widget类中包含/使用

      webcore包含一个widget,使用此功能,您可以在页面描述字段中使用简码来从模型获取数据源,使用语法:[source=ModelName,where=some_field_name:value,position=some_theme_position,widget=some_widget_view]

    • 使用Laravel包

      webcore在package/webcore文件夹中包含dandisy/elorest包,可以作为示例使用

  3. 预配置OAuth使用Laravel Passport

    使用Elorest作为Laravel eloquent RESTAPI包,请参阅https://github.com/dandisy/elorest

  4. EloREST

    使用Laravel的Eloquent语法(方法 & 参数)进行REST API

    示例API查询

     https://your-domain-name/api/elorest/Models/Post?leftJoin=comments,posts.id,comments.post_id&whereIn=category_id,[2,4,5]&select=*&get=
     https://your-domain-name/api/elorest/Models/Post?join[]=authors,posts.id,authors.author_id&join[]=comments,posts.id,comments.post_id&whereIn=category_id,[2,4,5]&select=posts.*,authors.name as author_name,comments.title as comment_title&get=
     https://your-domain-name/api/elorest/Models/Post?&with=author,comment&get=*
     https://your-domain-name/api/elorest/Models/Post?&with=author(where=name,like,%dandisy%),comment&get=*
     
     multi first nested closure deep
     https://your-domain-name/api/elorest/Models/Post?&with=author(where=name,like,%dandisy%)(where=nick,like,%dandisy%),comment&get=*
     
     second nested closure deep
     https://your-domain-name/api/elorest/Models/Post?&with=author(with=city(where=name,like,%jakarta%)),comment&get=*
     
     https://your-domain-name/api/elorest/Models/Post?&with[]=author(where=name,like,%dandisy%)&with[]=comment(where=title,like,%test%)&get=*
     https://your-domain-name/api/elorest/Models/Post?paginate=10&page=1
    

依赖

* dandisy/adminlte-templates based on infyomlabs/adminlte-templates
* dandisy/laravel-generator based on infyomlabs/laravel-generator
* dandisy/swagger-generator based on infyomlabs/swagger-generator
* dandisy/filemanager based on infinety-es/filemanager

* dandisy/webcore-page
* dandisy/webcore-menu

* arrilot/laravel-widgets
* barryvdh/laravel-debugbar
* league/glide-laravel
* santigarcor/laratrust
* harimayco/laravel-menu
* atayahmet/laravel-nestable

* ixudra/curl or guzzlehttp/guzzle

If you use laravel passport :
* spatie/laravel-cors

* barryvdh/laravel-dompdf or seguce92/laravel-dompdf
* phpoffice/phpspreadsheet or maatwebsite/excel

* pragmarx/tracker or jeremykenedy/laravel-logger
* spatie/laravel-activitylog

* fireguard/report or jimmyjs/laravel-report-generator

* khill/lavacharts or consoletvs/charts

//--------------------------------------------#

更多截图

Webcore CMS使用https://github.com/dandisy/eloguihttps://github.com/dandisy/webcore-presentation

https://github.com/dandisy/webcore-cms中下载Webcore CMS

  • 示例首页

sample front page

  • 登录页面

login page

  • 管理员页面

Webcore Admin Dashboard

Webcore Page Presentation

Webcore Datasource Elogui

//---------------------------------------------#

2. Laravel生成器

Webcore使用infyomlabs/laravel-generator,通过更改artisan命令使其更通用

php artisan generate[.command]:{command} {Model_name} [option]

在此处参阅infyomlabs/laravel-generator文档http://labs.infyom.com/laravelgenerator

视角

HUMAN
Interface       -   Tools (Worker)                      -   Executor
Commands\*      -   Common\*, Utils\* and helper        -   Generators\* 

COMPUTER
Interface       -   Tools (Worker)                      -   Executor
Generators\*    -   Common\*, Utils\* and helper        -   Commands\*

指导

  1. 要添加额外的HTML类型定义,添加和编辑这些

    • 在adminlte-templates\templates\scaffold\fields中添加stub文件

    • 在adminlte-templates\templates\vuejs\fields中添加stub文件

    • 编辑Utils\HTMLFieldGenerator

    • 编辑Generators\ViewGenerator

    • 编辑Generators\VueJs\ViewGenerator

  2. 要添加额外的命令、命令选项或字段选项

    • 编辑或添加Common\*
    • 编辑或添加Commands\*(BaseCommand等)

注意

  • 命令\*

    使用 Common\CommandData, 使用 Utils\FileUtil, 使用 Generator\*

    基于 Commands\BaseCommand

    • 解析控制台命令
    • 初始化 commandData
    • 执行 Generators\* 以生成文件和迁移数据库表
  • Utils\GeneratorFieldsInputUtil

    使用 Common\GeneratorField

    • 从控制台命令获取字段规格
    • 通过使用 Common\GeneratorField 返回字段规格
  • Utils\HTMLFieldGenerator

    使用 Common\GeneratorField

    • 返回将使用的字段模板
  • Common\GeneratorField

    • 解析字段规格的部分(数据库类型,HTML 输入,选项)
    • 准备迁移
  • Common\GeneratorConfig

    • 加载、初始化和设置配置
    • 获取控制台命令选项
  • Common\CommandData

    使用 Utils\GeneratorFieldsInputUtil,使用 Utils\TableFieldsGenerator

    • 从配置、文件和控制台获取和设置 commandData
  • Generators\*

    在 Generators\Scaffold\ViewGenerator 中使用 Utils\FileUtil,使用 Common\CommandData,使用 Utils\HTMLFieldGenerator

    基于 Generators\BaseGenerator

    • 使用数据和模板参数定义生成器功能
    • 定义回滚

//--------------------------------------------#

3. 路线图

版本

1.0.0 Single Platform
1.1.0 Easy Platform
1.2.0 In Context Platform
1.3.0 Experience Platform
1.4.0 Enterprise Platform
1.5.0 Digital Solution

dandi@sgdigitals.com