Cross platform setting of environment scripts for PHP.

1.0.7 2021-06-21 11:30 UTC

This package is auto-updated.

Last update: 2021-11-21 12:31:06 UTC


Cross platform setting of environment scripts for PHP.


Install in project

composer require asika/cross-env

Install globally

composer global require asika/cross-env


Global Install

Just call cross-env:

cross-env APP_ENV=dev TEST_MODE=real php my-code.php

In Project

If you install it in project, use composer scripts:

    "scripts": {
        "build:dev": "cross-env APP_ENV=dev TEST_MODE=real php my-code.php"

Then call it by composer

composer build:dev

# OR

composer run build:dev

You can also call bin file directly:

./vendor/bin/cross-env APP_ENV=dev TEST_MODE=real php my-code.php



If you have installed node cross-env and has a prior order in PATH, you can use set-env as an global alias.

Use .env File

Call cross-source to set a file as env vars.

cross-source /path/.env php my-code.php

Programmatically Call

If you want to use cross-env in your own CLI Application, you can use CrossEnv\CrossEnv:

$returnCode = \CrossEnv\CrossEnv::runWithCommand('APP_ENV=dev TEST_MODE=real php my-code.php');

// OR

$returnCode = \CrossEnv\CrossEnv::runWithArgs([

Custom Output

Add second argument as a callable.

use Symfony\Component\Process\Process;

    'APP_ENV=dev TEST_MODE=real php my-code.php',
    function (string $type, string $buffer) {
        if ($type === Process::ERR) {
            // Handle error
        } else {
            // Handle output

See Symfony/Process: