dandisy / webcore
Webcore 平台 - 单一平台 Laravel 网站可根据需求构建
Requires
- php: >=7.0.0
- arrilot/laravel-widgets: ^3.7
- dandisy/adminlte-templates: ^1.0.0
- dandisy/filemanager: ^1.0.0
- dandisy/laravel-generator: ^1.0.0
- dandisy/swagger-generator: ^1.0.0
- doctrine/dbal: ~2.3
- fideloper/proxy: ~3.3
- itsgoingd/clockwork: ^3.1
- jlapp/swaggervel: dev-master
- laravel/framework: 5.5.*
- laravel/passport: ^4.0
- laravel/tinker: ~1.0
- laravelcollective/html: ^5.5.0
- league/glide-laravel: ^1.0
- santigarcor/laratrust: ^4.0
- spatie/laravel-cors: ^1.0
- yajra/laravel-datatables-buttons: 3.0
- yajra/laravel-datatables-oracle: ~8.0
Requires (Dev)
- filp/whoops: ~2.0
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~6.0
This package is auto-updated.
Last update: 2024-08-30 01:17:36 UTC
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
-
后端页面(管理端)
管理端页面范围
提供内容管理、展示管理、资产管理以及配置 -
UI 组件(页面的一部分)
UI 组件范围(小部件)
提供可重复使用的 UI(小部件)部分,用于页面模板(带有布局位置),(并提供用户交互跟踪以实现个性化)页面范围
通过整合模板将 UI 组件全局布局和样式作为页面 -
前端页面
前端页面范围
提供具有内容个性化的用户体验
在您的控制台中运行以下 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/elogui或https://github.com/dandisy/webcore-presentation
请在此下载https://github.com/dandisy/webcore-cms
功能
-
管理端模板
-
文件管理器
-
菜单管理器
-
图片处理
要处理图片,请使用
https:///webcore/public/img/{path}?{param=value}
默认 {path} 配置相对于 public_path,请参阅 .env 中的 FILESYSTEM_DRIVER 和 config/filesystems.php
有关手动指南,请参阅http://glide.thephpleague.com
-
基于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中的示例模型模式文件
-
首页系统(支持主题、模板位置和视图组件)
示例代码可以在此下载https://github.com/dandisy/themes
-
可重用组件
-
使用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包,可以作为示例使用
-
-
预配置OAuth使用Laravel Passport
使用Elorest作为Laravel eloquent RESTAPI包,请参阅https://github.com/dandisy/elorest
-
登录(密码授权)使用https:///webcore/public/oauth/token
with params : - client_id - client_secret - grant_type - username - password - scope
-
获取资源示例https:///webcore/public/api/product
with header Authorization = Bearer {your-token}
-
-
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/elogui或https://github.com/dandisy/webcore-presentation
在https://github.com/dandisy/webcore-cms中下载Webcore CMS
- 示例首页
- 登录页面
- 管理员页面
//---------------------------------------------#
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\*
指导
-
要添加额外的HTML类型定义,添加和编辑这些
-
在adminlte-templates\templates\scaffold\fields中添加stub文件
-
在adminlte-templates\templates\vuejs\fields中添加stub文件
-
编辑Utils\HTMLFieldGenerator
-
编辑Generators\ViewGenerator
-
编辑Generators\VueJs\ViewGenerator
-
-
要添加额外的命令、命令选项或字段选项
- 编辑或添加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