From 324e7e855c37115e9e51e5ca3a1252b893f1a1c7 Mon Sep 17 00:00:00 2001 From: Mars Date: Thu, 27 Mar 2025 13:49:19 +0800 Subject: [PATCH] =?UTF-8?q?PHP=E5=BC=80=E5=8F=91=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 53 +++++++++++++++++++++++++++++++++++++++++++++ scripts/php/dnmp.sh | 39 +++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) diff --git a/README.md b/README.md index 56ef60f..8853ae2 100644 --- a/README.md +++ b/README.md @@ -175,6 +175,59 @@ scripts\system\check_windows_wsl.bat ### PHP 开发环境脚本 - `scripts/php/dnmp.sh`: 安装和配置 PHP 开发环境(使用 DNMP) + - 自动安装 Docker 和 DNMP 环境 + - 配置 PHP 8.2、MySQL 8.0、Redis 7.0 等最新版本 + - 提供优雅的 PHP 和 Composer 命令别名 + - 支持 Laravel 开发环境 + - 使用方法: + 1. 运行安装脚本:`sudo ./scripts/php/dnmp.sh` + 2. 使别名生效:`source ~/.zshrc` 或 `source ~/.bashrc` + 3. 访问 http://localhost 查看 PHP 信息页面 + +#### PHP 开发环境特性 +1. 优雅的命令行工具 + - 直接在宿主机使用 `php` 命令:`php -v` + - 直接在宿主机使用 `composer` 命令:`composer install` + - 所有命令都会在 Docker 容器中执行,无需进入容器 + +2. Laravel 开发支持 + - 提供常用 Laravel 命令别名: + - `laravel`: 执行 artisan 命令 + - `laravel-make`: 创建新的 Laravel 组件 + - `laravel-migrate`: 执行数据库迁移 + - `laravel-seed`: 执行数据库填充 + - `laravel-test`: 运行测试 + - `laravel-route`: 查看路由列表 + - `laravel-config`: 清除配置缓存 + - `laravel-cache`: 清除应用缓存 + - `laravel-view`: 清除视图缓存 + - `laravel-optimize`: 优化应用 + +3. 开发工具支持 + - PHPUnit 测试框架 + - PHP_CodeSniffer 代码规范检查 + - PHP_CodeBeautifier 代码格式化 + +4. 默认配置 + - MySQL 密码:123456 + - Redis 密码:123456 + - 安装目录:/opt/dnmp + - 网站目录:/opt/dnmp/www + +5. 常用命令 + - `dphp`: 进入 PHP 容器 + - `dcomposer`: 在容器中执行 Composer 命令 + - `dphpunit`: 执行 PHPUnit 测试 + - `dphpcs`: 执行代码规范检查 + - `dphpcbf`: 执行代码格式化 + +6. 注意事项 + - 首次使用 Composer 时,建议配置国内镜像: + ```bash + composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ + ``` + - 如果遇到权限问题,请确保当前用户在 docker 组中 + - 建议在项目根目录下创建 `.env` 文件配置数据库连接信息 ### 系统工具脚本 - `scripts/utils/git.sh`: 配置 Git 和安装 Git 工具 diff --git a/scripts/php/dnmp.sh b/scripts/php/dnmp.sh index 26eebe3..8874d69 100644 --- a/scripts/php/dnmp.sh +++ b/scripts/php/dnmp.sh @@ -107,6 +107,45 @@ alias dcomposer='docker exec -it php82 composer' alias dphpunit='docker exec -it php82 phpunit' alias dphpcs='docker exec -it php82 phpcs' alias dphpcbf='docker exec -it php82 phpcbf' + +# 优雅的PHP和Composer命令别名 +php () { + tty= + tty -s && tty=--tty + docker run \\ + \$tty \\ + --interactive \\ + --rm \\ + --volume \$PWD:/www:rw \\ + --workdir /www \\ + dnmp_php php "\$@" +} + +composer () { + tty= + tty -s && tty=--tty + docker run \\ + \$tty \\ + --interactive \\ + --rm \\ + --user www-data:www-data \\ + --volume /opt/dnmp/data/composer:\$HOME/dnmp/data/composer \\ + --volume \$(pwd):/app \\ + --workdir /app \\ + dnmp_php composer "\$@" +} + +# Laravel开发相关别名 +alias laravel='docker exec -it php82 php artisan' +alias laravel-make='docker exec -it php82 php artisan make' +alias laravel-migrate='docker exec -it php82 php artisan migrate' +alias laravel-seed='docker exec -it php82 php artisan db:seed' +alias laravel-test='docker exec -it php82 php artisan test' +alias laravel-route='docker exec -it php82 php artisan route:list' +alias laravel-config='docker exec -it php82 php artisan config:clear' +alias laravel-cache='docker exec -it php82 php artisan cache:clear' +alias laravel-view='docker exec -it php82 php artisan view:clear' +alias laravel-optimize='docker exec -it php82 php artisan optimize' EOF # 添加别名到用户shell配置