logo
0
0
WeChat Login
docs(readme): 更新项目标题和移除配置文件

CNB PHP 多版本开发环境

Ubuntu Noble PHP License Build Schedule Build Status

基于 CNB 默认开发环境构建,内置 PHP 7.4 与 PHP 8.1 多版本共存,使用 phpenv 进行版本管理,支持 项目级自动切换 PHP 版本,默认启用 PHP 8.1,适用于多项目并行开发场景。


💿 镜像信息

  • 镜像名称: docker.cnb.cool/scaffold/examples/php:latest
  • 镜像基础: docker.cnb.cool/scaffold/examples/defaultworkenv:latest
  • 基础系统: Ubuntu Noble
  • PHP 管理方案: phpenv(类 nvm / pyenv
  • 软件源: 腾讯云 APT 源(系统依赖)

🛠️ 内置组件

  • PHP 版本:

    • PHP 7.4.x
    • PHP 8.1.x
  • 默认版本: PHP 8.1

  • PHP 版本管理: phpenv

  • PHP 包管理: Composer

  • 调试支持:

    • Xdebug(按 PHP 版本隔离)
    • php-dev
    • 常用扩展(mbstringcurlxmlmysqlzipbcmath 等)
  • 开发插件(已内置):

    • Intelephense(智能提示)
    • PHP Debug(断点调试)
    • Namespace Resolver(命名空间导入)
    • PHP DocBlocker(注释生成)

🚀 使用方式

在远程开发环境中使用(.cnb.yml 示例)

main: vscode: - docker: image: docker.cnb.cool/scaffold/examples/php:latest services: - vscode - docker

🧪 PHP 版本管理

查看当前 PHP 版本

php -v

默认输出 PHP 8.1.x

查看已安装的 PHP 版本

phpenv versions

切换 PHP 版本(全局)

phpenv global 7.4.x phpenv global 8.1.x

切换后,php / composer / phpize 会同步生效。


项目级 PHP 版本控制(⭐ 强烈推荐)

在项目根目录创建 .php-version 文件:

echo "7.4.x" > .php-version

进入该目录后,PHP 版本会 自动切换

cd project-a php -v # PHP 7.4 cd ../project-b php -v # PHP 8.1

无需手动切换,适合同时开发多个 PHP 项目


快速运行指定版本(无需切换环境)

PHPENV_VERSION=7.4.x php -v PHPENV_VERSION=8.1.x php -v

📦 使用 Composer 安装依赖

composer install

Composer 会自动使用 当前 phpenv 选中的 PHP 版本,无需额外配置。


🌟 设计特点

  1. 多版本共存 PHP 7.4 / 8.1 同时存在,互不干扰,满足旧项目与新项目并行开发需求

  2. 项目级自动切换 使用 .php-version 文件,实现目录级 PHP 版本控制,避免频繁手动切换

  3. 即装即用 Composer、Xdebug、调试扩展已集成,开箱即用

  4. 跨版本开发体验一致 同一开发环境下可同时维护 Laravel 7 / Laravel 10、ThinkPHP、Yii 等不同技术栈项目