webit-de / php-version-pickup
通过一个`.php-version`文件设置在shell会话中使用的PHP版本
README
通过一个.php-version
文件设置在shell会话中使用的PHP版本。
愿景
这个工具是一个小的shell脚本,通过从.php-version
文件中读取期望的版本号来设置shell会话中使用的PHP版本。
这允许在本地开发环境中处理多个PHP版本,并在项目中动态切换版本。通过在文件中固定版本,也允许团队成员在使用项目时使用相同的PHP版本。
这个脚本灵感来源于nvm use
和php-version
。前者是为Node准备的,功能非常多(构建和安装版本等)。后者与PHP配合得很好,但不存储文件,也不支持由操作系统包管理器安装的PHP版本。这就是创建这个脚本的原因。
.php-version
文件已被像Symfony Server这样的流行PHP包使用。
主要功能
- 仅为shell会话设置PHP版本(在新shell中忘记版本,不要修改系统默认设置)
- 将版本传递给子脚本(运行Composer时使用所选版本,Composer会将版本传递给其他执行的PHP脚本)
- 从
.php-version
文件中获取版本 - 支持通过PPA安装的PHP版本
- 使用Bash编写,以在运行PHP脚本之前获取版本
- 不尝试管理操作系统或Web服务器(Apache、Nginx)使用的版本
当前限制 ✨ 欢迎发送PR来解决问题✨
- 只支持主要PHP版本号(
7.3
、7.4
,不支持7.3.10
) - 没有
最新
版本等。 - 不安装缺失的版本
- 没有自动执行(
cd
钩子) - 不显示本地可用的版本
- 不显示远程可用的版本(所有PHP版本发布)
要求
- PHP(脚本会获取现有的PHP版本,但由于它是一个shell脚本,因此不需要PHP)
安装
-
克隆仓库
cd ~/ git clone https://github.com/webit-de/php-version-pickup.git .php-version-pickup
-
»源«脚本
echo 'source $HOME/.php-version-pickup/bin/php-version-pickup.sh' >> $HOME/.bashrc
或将行手动添加到您的
.bashrc
文件中source $HOME/.php-version-pickup/bin/php-version-pickup.sh # or your place of choice
-
🏗️ 安装多个PHP版本(手动构建,使用Ondřej Surý的出色PPA,或使用类似php-build或homebrew-php的工具)
-
创建指向本地可用PHP版本的符号链接
这非常取决于您安装多个PHP版本的方式。每个符号链接的一般结构是
$HOME/.php/versions/<version>/bin/php -> <path to desired version binary>
以下示例假设您通过Ondřejs PPA安装了三个版本。根据您的设置进行调整。
mkdir -p $HOME/.php/versions/7.3/bin && ln -s /usr/bin/php7.3 $HOME/.php/versions/7.3/bin/php mkdir -p $HOME/.php/versions/7.4/bin && ln -s /usr/bin/php7.4 $HOME/.php/versions/7.4/bin/php mkdir -p $HOME/.php/versions/8.0/bin && ln -s /usr/bin/php8.0 $HOME/.php/versions/8.0/bin/php
-
💡 您可能想将别名添加到
.bashrc
中,作为快捷命令,例如alias pvm="php-version-pickup"
源代码
https://github.com/webit-de/php-version-pickup/
用法
脚本从文件中读取版本。
在你的项目中选择创建一个版本文件
⚠ 目前只允许使用 主版本的PHP版本号,这意味着类似 7.4
或 8.1
(不是特定的版本,如 7.4.10
)。
设置项目中的PHP版本为7.4的示例
php-version-pickup set 7.4
(这与手动运行 echo "7.4" > .php-version
相同)。
拾取版本
在你的目录中运行 php-version-pickup use
以拾取版本号。你应该会看到一个消息告诉你已经找到了文件,并且从现在起你的shell会话中将使用该版本。
运行 php --version
来检查版本。
现在你可以使用设置的版本运行PHP脚本、Composer等。
🥏 在版本文件上玩玩,打开和关闭shell,运行一些PHP脚本,让自己对这个简单的版本选择器感到舒适。
提供反馈
此脚本是一个原型,它帮助我们解决了一个非常特定的用例。因此,存在一些限制(见 愿景)。请随时发送一些反馈或创建PR来增强此脚本。
许可证
GNU通用公共许可证版本2或更高版本
GNU通用公共许可证可在 https://gnu.ac.cn/copyleft/gpl.html 找到。
作者
丹·恩滕茨乌(untenzu@webit.de / @pixelbrackets)为webit! Gesellschaft für neue Medien mbH(http://www.webit.de/)
变更日志
贡献
TYPO3 - 激励人们分享!
此包是开源的,所以请使用、修补、扩展或分叉它。