实用型Web应用程序工具包
Requires
- gumlet/php-image-resize: ^2.0
- hxgf/cookie: ^1.1
- hxgf/dbkit: ^1.2
- hxgf/http-request: ^1.2
- hxgf/slime-render: ^1.3
- hxgf/x-utilities: ^1.2
- rbdwllr/psr-jwt: ^2.0
- slim/psr7: ^1.5
- slim/slim: 4.*
- vlucas/phpdotenv: ^5.5
- zordius/lightncandy: ^1.2
This package is auto-updated.
Last update: 2024-09-22 22:37:47 UTC
README
Web应用程序开发套件
DW是一个包含所有必要组件的快速开发数据驱动Web应用程序的工具包。它是对有帮助的库、轻量级应用程序模板和用户认证及管理的即用解决方案的实用配置。它还建立了一些合理的约定,您可以利用这些约定快速构建定制的CRUD应用程序或SaaS项目,以满足您的个人需求。
包含内容:
核心工具
- Slim - 基础PHP框架
- Slime - Slim应用程序脚手架和渲染助手
- Handlebars - 通过LightnCandy进行模板渲染
- Bootstrap - 基础UI框架
- Tabler - 基于Bootstrap的UI套件
- Alpine.js - JS实用框架
- htmx - AJAX、CSS过渡、WebSockets、SSE的实用工具
- DW Utilities (PHP) - 后端认证、图像转换等实用函数
- DW Utilities (JS) - 前端认证、模态框、表单处理等实用函数
- php-image-resize - 基于GD的图像操作库
- phpdotenv - 自动加载.env变量
- psr-jwt - PSR兼容的JWT中间件
可选包含的库
- Dropzone - 文件上传器
- Litepicker - 日期选择器
- List.js - 表格排序器
- TinyMCE - WYSIWYG文本编辑器
模板功能
- 完整的认证流程(登录、注册、忘记/重置密码)
- 示例空白应用程序起始框架
- 用户管理系统,还提供了使用DW进行CRUD操作、表单处理、照片上传等操作的完整栈示例
要求
- PHP >= 7.4 (推荐8.1) 并编译了GD
- MySQL(其他PDO兼容数据库应该也可以,但尚未测试)
- Apache
安装
使用Composer进行最简单的安装
composer create-project jyoungblood/dw new-project-name
您也可以下载zip文件包含所有文件,或者使用GIT或Degit(npx degit jyoungblood/darkwave
)克隆此存储库。如果您执行了这些操作中的任何一项,请确保运行composer install
以将文件安装到您的系统上。
入门
Darkwave旨在在LAMP环境中运行,因此我们建议在真实的Web服务器(VPS或共享主机)上开发。
当然,您仍然可以使用常见的php -S localhost:8080
命令在本地开发您的应用程序。只需确保您在本地环境中也运行了一个MySQL主机(例如MAMP,DBngn等)。
一旦您的环境设置完毕,请访问您的站点URL以启动配置过程。这将生成一个包含您的数据库连接和基本站点信息的.env
文件,并为您的应用程序创建一个“管理员”用户。
* 注意,DW附带了一个空的.env
文件,作为仓库的一部分。这对于应用程序运行是必需的,但作为最佳实践,我们建议在创建自己的带有此代码库的仓库之前将其添加到.gitignore
中。
配置完成后,使用新创建的管理员账户登录,以查看样板应用程序框架和DW主要功能的介绍性演示。
使用DW构建
官方文档和用户指南是持续进行的工作,可能需要一段时间才能完全准备就绪。在此期间,请查看users
部分的各个部分,以了解如何使用此工具包管理数据集合和执行CRUD操作的功能示例。
本节还提供了与模态框、输入验证、图片上传和缩放、表格排序等一起工作的示例。如果您正在寻找DW的“最佳实践”说明,这是一个很好的起点。
部署
部署旨在非常简单,只需将文件放入您的生产环境即可。除此之外,还有一些值得考虑的细微之处
- 在您的生产
.env
文件中,将SITE_MODE
变量设置为“生产” - 运行以下命令以优化您的composer包和CSS文件很有帮助
composer update --optimize-autoloader
purgecss --css css/lib/*.css --content "templates/**/*.hbs" --output css/build
- 出于安全考虑,.htaccess文件已禁用某些文件扩展名默认提供服务。如果需要为您的应用程序启用其中任何一个(例如
.json
),请记住保持警惕,拒绝访问特定文件(例如composer.json
),以防止敏感信息泄露。 - 当然,还可以进行进一步的性能和安全优化,但请小心不要让优化妨碍了为您的用户和客户提供价值 :)
参考和资源
DW / 核心
Bootstrap / UI
颜色
JS库
图标
其他
-
子导航 - 在使用默认的基本模板和组件时,可以通过简单的PHP数组轻松添加子导航。请参阅索引控制器的
/demo
部分,以及基本模板的subnav
部分。 -
HBS助手 - Slime-render提供了一些自定义的HBS助手,并使得添加自己的助手变得简单。请参阅
slime-render
类中的initialize_handlebars_helpers()
部分以获取示例。在HBS食谱中提供了更多关于构建简单和块自定义助手的信息。 -
自定义Tabler - Tabler设计为可以通过添加到
:root
元素的CSS变量轻松自定义。请参阅Tabler文档中的自定义示例,以及tabler.css以了解默认变量名称和值。