hxgf / dw
实用的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:39:49 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构建
官方文档https://darkwave.ltd/docs和用户指南https://darkwave.ltd/guide是持续更新中的作品,可能还需要一段时间才能完全准备好。在此期间,您可以查看users
部分的各种内容,以了解如何使用此工具包管理数据集合和执行CRUD操作的功能示例。
本节还提供了与模态框、输入验证、图像上传和缩放、表格排序等操作的工作示例。如果您想了解DW的“最佳实践”,这是一个良好的起点。
部署
部署旨在非常简单直接,只需将文件放入您的生产环境即可。除此之外,还有一些次要的要点值得考虑。
- 在您的生产
.env
文件中,将SITE_MODE
变量设置为“production”。 - 运行以下命令以优化您的composer包和CSS文件可能会有所帮助。
composer update --optimize-autoloader
purgecss --css css/lib/*.css --content "templates/**/*.hbs" --output css/build
- 出于安全目的,.htaccess文件默认禁用了某些文件扩展名。如果您需要为您的应用程序启用任何这些扩展名(例如
.json
),请记住,出于安全考虑,拒绝访问特定文件(例如composer.json
)以防止敏感信息泄露。 - 当然,还可以进行更多性能和安全优化,但请小心不要让优化妨碍为您的用户和客户提供价值:)
参考和资源
DW / 核心
Bootstrap / UI
颜色
JavaScript库
图标
杂项
-
子导航 - 在使用默认的基本模板和组件时,可以通过简单的PHP数组轻松添加子导航。请参阅索引控制器的
/demo
部分以及基本模板的subnav
部分。 -
HBS助手函数 - Slime-render提供了一些自定义的HBS助手函数,并使得添加自己的助手函数变得简单。请参阅
slime-render
类中的initialize_handlebars_helpers()
部分以获取示例。HBS食谱提供了有关构建简单和块自定义助手函数的更多信息。 -
自定义Tabler - Tabler旨在通过添加到
:root
元素的CSS变量来轻松自定义。请参阅Tabler文档中的自定义示例,以及tabler.css以获取默认变量名称和值。