Spojazdnenie PHP CLI: Chyba Container::addConfig

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
orion05
Člen | 9
+
0
-

Ahoje

cez Composer som si vytvoril nový projekt a stiahol k nemu Kdyby/Console, pri snahe o spojazdnenie PHP CLI som si vytvoril súbor cli

#!/usr/bin/env php
<?php

$configurator = require __DIR__ . '/app/bootstrap.php';

$configurator->addConfig(__DIR__ . '/app/config/console.neon');

$container = $configurator->createContainer();

$input = new Symfony\Component\Console\Input\ArgvInput($argv);

// Run console
if (PHP_SAPI === 'cli') {
	$console = $container->getByType('Symfony\Component\Console\Application');
	$console->run($input);
}

pri spustení dostanem error

Nette\MemberAccessException: Call to undefined method Container_40653fdfac::addConfig(). in C:\Geohra\geohra\vendor\nette\utils\src\Utils\ObjectMixin.php:100  @  CLI: ./cli  @@  exception--2015-09-23--06-54--405f12b333.html

Prosím o radu ako spojazdniť cli.

greeny
Člen | 405
+
0
-

Ahoj,

chybu způsobuje ten řádek $configurator->addConfig(__DIR__ . '/app/config/console.neon');. Voláš to na již vygenerovaný container. app/bootstrap.php totiž určitě vrací něco jako $configurator->createContainer();

Spíš než přidávat config mimo bootstrap.php zkus např. tenhle přístup:

<?php
$configurator = new Configurator;

...

$configurator->addConfig("config.neon");
$configurator->addConfig("config.local.neon");
if (PHP_SAPI === "cli") $configurator->addConfig("console.neon");

...

return $configurator->createContainer();
?>

A v tomhle souboru už budeš pracovat rovnou s hotovým Container :)

orion05
Člen | 9
+
0
-

OK, funguje to, díky.