Récupérer des variables PHP depuis un include
Publié le 25/07/2020 • Actualisé le 25/07/2020
Dans ce bout de code, nous allons voir comment récupérer des variables PHP depuis une inclusion (🇬🇧 include). Ici, on affecte la valeur de retour de cette inclusion à la variable $deployClass
, donc le fichier utilisé doit retourner quelque chose. Dans ce cas, le fichier deploy.php
, qui est utilisé pour déployer ce site web sur mon VPS retourne return new class extends DefaultDeployer
. Vous pouvez trouver le contenu complet de ce fichier dans ce snippet.
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
use Symfony\Component\HttpKernel\KernelInterface;
/**
* J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
* Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
* ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Les services sont injectés dans le constructeur du contrôleur principal.
*
* @property KernelInterface $kernel
*/
trait Snippet105Trait
{
public function snippet105(): void
{
/** @noinspection UsingInclusionReturnValueInspection */
$deployClass = include $this->kernel->getProjectDir().'/config/prod/deploy.php';
echo get_parent_class($deployClass); // That's it! 😁
}
}
Exécuter le snippet ≪ this.showUnitTest ? this.trans.hide_unit_test : this.trans.show_unit_test ≫ Plus sur Stackoverflow Lire la doc Plus sur le web
<?php
declare(strict_types=1);
namespace App\Tests\Integration\Controller\Snippets;
use EasyCorp\Bundle\EasyDeployBundle\Deployer\DefaultDeployer;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
/**
* @see Snippet105Trait
*/
final class Snippet105Test extends KernelTestCase
{
/**
* @see Snippet105Trait::snippet105
*/
public function testSnippet105(): void
{
self::bootKernel();
$deployClass = include self::$kernel->getProjectDir().'/config/prod/deploy.php';
self::assertInstanceOf(DefaultDeployer::class, $deployClass);
}
}