Exécution en ligne de commande

Transférer le nom du fichier .env à utiliser

Dans CodeIgniter, avec le module PPCI, le fichier .env est chargé automatiquement en prenant en compte le contenu de la variable $_SERVER["envPath"], avec ce code :

if (is_file($file = $_SERVER["envPath"] . DIRECTORY_SEPARATOR . ".env") && is_readable($file)) {
    (new CodeIgniter\Config\DotEnv($_SERVER["envPath"],".env"))->load();

Dans un script, pour transférer la valeur de envPath dans la variable $_SERVER et permettre le chargement du fichier .env, il faut ajouter la ligne :

export envPath="/var/www/instances/instancename"

Voici un exemple d’utilisation, pour afficher simplement le contenu de la variable $_SERVER["envPath"] :

Fichier PHP test.php :

<?php
echo $_SERVER["envPath"].PHP_EOL;

Script test.sh utilisé pour son déclenchement :

#!/bin/bash
export envPath=/var/www/instances/instancename
cd $envPath/public
php index.php maroute

maroute correspond à la route à appeler.

Déclarez la route dans app/Config/Routes.php (sans oublier le contrôleur correspondant), puis lancez l’exécution du script :

./test.sh
/var/www/instances/instancename