Download the PHP package dvaknheo/duckadmin without Composer
On this page you can find all versions of the php package dvaknheo/duckadmin. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dvaknheo/duckadmin
More information about dvaknheo/duckadmin
Files in dvaknheo/duckadmin
Package duckadmin
Short Description a backend by duckphp
License MIT
Homepage https://www.github.com/dvaknheo/duckadmin
Informations about the package duckadmin
DuckAdmin
简介
你一定会见过很多后台系统,都是在基线工程之上做二次开发。但是,这不符合DuckPhp
的思维。
DuckAdmin
是个使用 DuckPhp
框架的库,你的工程使用DuckPhp
的功能,不需要魔改。
DuckAdmin
是二次开发的基线库,注意,是基线库,而不是基线工程。
DuckAdmin
只做了公司员工结构的基本代码,通用业务。你可以在这之上添加更多符合公司业务的功能。 甚至还带有 覆盖测试的库。
DuckAdmin 要解决什么问题
- 现在的管理后台,二次开发,都是在别家管理后台上改代码,但是 DuckAdmin 独树一帜的是基线库,不是基线工程
- 静态资源 和代码分离 ,可部署在不同机器
- 这个composer 库里,不仅仅包括 DuckAdmin 还包括了 DuckUser, DuckUserManager ,SimpleBlog 四个独立工程,以及一个独立演示的 DuckAdminDemo 工程。
- DuckUser 是个用户基线库,你也可以类似 DuckAdmin 那样在外面修改它
- DuckUserManger 则是 用户管理系统
- SimpleBlog SimpleBlog 演示了用以上管理系统,用户系统的博客系统。
- 甚至还包括了覆盖测试的库。 DuckCoverage ,用于做覆盖测试
演示 demo
扩展需求: sqlite
DuckAdmin
支持 mysql,只需改配置,后面再演示
访问 http://127.0.0.1:8080/
打开 Demo
重新安装
demo 里
你的数据会保存在 vendor/dvaknheo/duckadmin/demo/runtime/database.db
动态配置文件保存在 vendor/dvaknheo/duckadmin/demo/config/DuckPhpApps.config.php
删除这两个,可重新执行下列安装程序。
正常使用模式
第一种模式:快速 duckphp 工程并应用。
当你想复制 demo 例子,不想做任何操作,执行以下命令
访问 http://127.0.0.1:8080/duck-admin/ 打开管理后台。
第二种模式:独立工程嵌入
当你要给个没有后台系统的 php-fpm 工程里使用。 demo 里的 另一个简洁版本
指向的 main.php
演示的这种情况
composer require dvaknheo/duckadmin
核心功能代码如下
可以看出,多了 skip_404 选项。 当返回404 的时候,自行处理其他业务 这里得到的 admin_id 就是登录后获得的id.
第三种模式,手动修改 duckphp工程嵌入
零代码虽然舒服,但不是最后解决方案
当你熟悉了 duckphp 工程结构之后。
在你的duckphp工程里修改你的 System/App.php 相关 配置
运行
访问 http://127.0.0.1:8080/app/admin/index 打开管理后台。
这里只是 DuckAdmin 后台,不包括demo里的用户系统,用户管理,而博客例子
二次开发
前置知识
一些 duckphp 框架的基础知识不再这里重复
调整选项
DuckAdmin 支持 sqlite /mysql 两种模式的数据库 你可以在选项里切换 database_driver
希望几个版本之后 我们可以在安装程序里切换(目前只能手动切换
静态资源
原生时代,我们直接解压文件在web目录就行。
但是我们要做动态和静态资源分离。减缓服务器压力。
所以我们有了controller_resource_prefix
选项。
那资源文件在哪里呢? src/DuckAdmin/res
目录之下。
你可以设置这个选项为完整的 http 路径,而不使用默认的
也可以设置成 / 开始的绝对路径。 默认是 'res/', 安装程序会把他们复制到相应目录。
资源文件安装要点
因为扯到安装 ,我们设置 controller_resource_prefix
,克隆文件的必要性
接管视图
demo/view/DuckAdmin
目录 就是demo工程调整后的视图
使用 API
在你的工程里
使用 DuckPhp\Foundation\Helper::Admin()
获得 Admin 对象,
AdminId($check_login)
, AdminName($check_login)
则是获取当前Id, 管理员名称
具体看 DuckPhp的文档, DuckPhp\GlobalAdmin\GlobalAdmin
的类介绍。
使用 DuckPhp\Foundation\Helper::User()
获得 User 通用对象,
具体看 DuckPhp的文档, DuckPhp\GlobalUser\GlobalUser
的类介绍。
修改现有实现
在 duckphp 框架的基础知识,不再阐述。
高级
菜单和权限。 如何在我的控制器里,加入菜单。 参考 demo 里 用户管理系统 的实现。
覆盖测试测试
testname 会在 demo/runtime 目录底下生成 test_coverage 生成报告
其他非 DuckPhp 框架代码如何整合 DuckAdmin 的管理后台系统
登录事件管理
暂缺
Demo 的文件结构
和典型的 DuckPhp 工程一样 System/DemoApp 是入口文件。
我们把主页嵌入到 DemoApp 类里。从而少了控制器目录
View 下是各种对 DuckAdmin 的视图的覆盖
Test 是测试覆盖
runtime 是数据库文件
TODO
缺乏 validor 验证系统 本来用 thinkphp 的应该可以,可惜太过复杂,后面版本又专一
缺乏 表单生成器, 这其实不重要。
All versions of duckadmin with dependencies
gregwar/captcha Version ^1.1
dvaknheo/workermanhttpd Version 1.0.6
dvaknheo/duckphp Version ^1.3