asika / cross-env
PHP的环境脚本跨平台设置。
2.0.0
2023-11-20 07:48 UTC
Requires
- php: >=8.0
- symfony/process: ^6.0||^7.0
Requires (Dev)
- phpunit/phpunit: ^9.0||^10.0||^11.0
- roave/security-advisories: dev-master
- windwalker/test: ^4.0
- windwalker/utilities: ^4.0
README
PHP的环境脚本跨平台设置。
安装
在项目中安装
composer require asika/cross-env
全局安装
composer global require asika/cross-env
使用方法
全局安装
只需调用 cross-env
cross-env APP_ENV=dev TEST_MODE=real php my-code.php
在项目中
如果您在项目中安装了它,请使用composer脚本
{ ... "scripts": { "build:dev": "cross-env APP_ENV=dev TEST_MODE=real php my-code.php" }, ... }
然后通过composer调用
composer build:dev
# OR
composer run build:dev
您也可以直接调用bin文件
./vendor/bin/cross-env APP_ENV=dev TEST_MODE=real php my-code.php
见 https://getcomposer.org.cn/doc/articles/scripts.md
别名
如果您已经安装了node cross-env
并且它在PATH中有优先级,您可以使用 set-env
作为全局别名。
使用 .env
文件
通过调用 cross-source
将文件设置为环境变量。
cross-source /path/.env php my-code.php
程序化调用
如果您想在自己的CLI应用程序中使用 cross-env
,可以使用 CrossEnv\CrossEnv
$returnCode = \CrossEnv\CrossEnv::runWithCommand('APP_ENV=dev TEST_MODE=real php my-code.php'); // OR $returnCode = \CrossEnv\CrossEnv::runWithArgs([ 'APP_ENV=dev', 'TEST_MODE=real', 'php', 'my-code.php' );
自定义输出
添加第二个参数为一个可调用对象。
use Symfony\Component\Process\Process; \CrossEnv\CrossEnv::runWithCommand( 'APP_ENV=dev TEST_MODE=real php my-code.php', function (string $type, string $buffer) { if ($type === Process::ERR) { // Handle error } else { // Handle output } } );
见 Symfony/Process: https://symfony.ac.cn/doc/current/components/process.html#usage