我正在尝试使用 wamp 在 Windows 上运行作曲家。我使用 cmd 提示符安装了作曲家,现在我正在尝试为 SDK 运行“作曲家更新”。但是,当我输入“composer.phar update”时,windows 会询问我想用什么应用程序来运行这个程序。我希望命令提示符处理它!我如何通过 cmd 运行它,而不出现这个“什么应用程序”窗口?
4 回答
You have to set php.exe as your default application for phar files.
.phar
代表 PHP 存档
通常.phar
s 带有一些参数,因此它们旨在从命令提示符运行。Linux/BSD/OS X shell 或 Windows 命令提示符。
Linux.phar
用例场景假设.phar
s 被复制到某个 /bin 并重命名为不带 .phar 扩展名,因此您可以像使用任何其他 linux 命令一样使用 php 存档。所以我建议按照以下方式对 Windows 做同样的事情:
- 将所有
.phar
文件放在一个目录中,例如C:\php\phars
- 添加
C:\php\phars
到系统环境变量(右键我的Computer -> Properties -> Advanced System Settings -> Environment variables
) - 启动提升的命令提示符(在开始菜单中找到命令提示符,然后右键单击并选择
Run as Administrator
) - 键入以下命令,将路径替换为
C:\phpdev\php\php542\php.exe
PHP 可执行文件的完整路径:
ftype PHARFile=C:\phpdev\php\php542\php.exe "%1" %*
assoc .phar=PHARFile
set PATHEXT=%PATHEXT%;.PHAR
下次你应该能够运行 Windows 控制台(键盘Win+R和类型cmd.exe
)并输入任何你.phar
喜欢的,apigen.phar
然后是任何命令,它会工作
C:\Users\acosonic>apigen.phar help
Usage:
...
Arguments:
command The command to execute
command_name The command name (default: "help")
Options:
--xml To output help as XML
--format To output help in other formats (default: "txt")
--raw To output raw command help
--help (-h) Display this help message.
--quiet (-q) Do not output any message.
--version (-V) Display this application version.
Help:
The help command displays help for a given command:
php C:\phpdev\phars\apigen.phar help list
You can also output the help in other formats by using the --format option:
php C:\phpdev\phars\apigen.phar help --format=xml list
To display the list of available commands, please use the list command.
C:\Users\acosonic>
因此,这种方式可以让您.phar
在需要工作的目录中运行存档,例如在C:\myproject\controller
不指定完整路径的情况下生成文档,.phar
就好像它在不将其添加到 Windows 路径的情况下运行一样。
解释第 4 步中的命令做了什么:
- 创建映射 HKCR.phar → HKCR\PHARFile
- 创建 HKCR\PHARFile\shell\open\command = 'php.exe "%1" %*' [REG_EXPAND_SZ]
- 扩展 HKCU\Environment\PATHEXT = '%PATHEXT%;.PHAR' [REG_EXPAND_SZ]
*.phar
被视为二进制/脚本,*.phar
只要*.phar
文件位于%PATH%
.
把事情简单化。与其更改 .phar 的默认程序(这在 Windows 中并不总是那么容易),不如尝试在命令前输入“php”。
php composer.phar update
可以用 换php
*.phar
行*.bat
,则文件名将是 CLI 命令的名称:
@ECHO OFF
php "C:/Program Files/PHAR/phpDocumentor.phar" %*
也可以使用这种包装来传递默认参数;例如。wp.bat
:
@ECHO OFF
php "C:/Program Files/PHAR/wp-cli.phar" --path="D:/SDK/wordpress" %*
模式%*
将捕获和转发 CLI 参数的位置,正如它应该做的那样。
与此类似,可以phar
在终端窗口中像任何其他 CLI 命令一样运行。