Move setupContainerForLogger() and determine log channel into App class

This commit is contained in:
Art4 2025-01-09 10:13:33 +00:00
parent 870b3b9a1c
commit 7f643aadd8
4 changed files with 36 additions and 23 deletions

View file

@ -138,7 +138,9 @@ class App
$this->setupContainerForAddons(); $this->setupContainerForAddons();
$this->container->setup(LogChannel::APP); $this->setupContainerForLogger(LogChannel::APP);
$this->container->setup();
$this->registerErrorHandler(); $this->registerErrorHandler();
@ -178,6 +180,10 @@ class App
{ {
$this->setupContainerForAddons(); $this->setupContainerForAddons();
$this->setupContainerForLogger($this->determineLogChannel($argv));
$this->container->setup();
$this->registerErrorHandler(); $this->registerErrorHandler();
$this->registerTemplateEngine(); $this->registerTemplateEngine();
@ -189,7 +195,9 @@ class App
{ {
$this->setupContainerForAddons(); $this->setupContainerForAddons();
$this->container->setup(LogChannel::AUTH_JABBERED); $this->setupContainerForLogger(LogChannel::AUTH_JABBERED);
$this->container->setup();
$this->registerErrorHandler(); $this->registerErrorHandler();
@ -218,6 +226,30 @@ class App
} }
} }
private function determineLogChannel(array $argv): string
{
$command = strtolower($argv[1]) ?? '';
if ($command === 'daemon' || $command === 'jetstream') {
return LogChannel::DAEMON;
}
if ($command === 'worker') {
return LogChannel::WORKER;
}
// @TODO Add support for jetstream
return LogChannel::CONSOLE;
}
private function setupContainerForLogger(string $logChannel): void
{
$this->container->addRule(LoggerInterface::class, [
'constructParams' => [$logChannel],
]);
}
private function registerErrorHandler(): void private function registerErrorHandler(): void
{ {
ErrorHandler::register($this->container->create(LoggerInterface::class)); ErrorHandler::register($this->container->create(LoggerInterface::class));

View file

@ -187,12 +187,6 @@ HELP;
$className = $this->subConsoles[$command]; $className = $this->subConsoles[$command];
if (is_subclass_of($className, Friendica\Console\AbstractConsole::class)) {
$this->container->setup($className::LOG_CHANNEL);
} else {
$this->container->setup(LogChannel::CONSOLE);
}
/** @var Console $subconsole */ /** @var Console $subconsole */
$subconsole = $this->container->create($className, [$subargs]); $subconsole = $this->container->create($className, [$subargs]);

View file

@ -19,11 +19,9 @@ interface Container
* *
* @deprecated * @deprecated
* *
* @param string $logChannel The Log Channel of this call
*
* @return void * @return void
*/ */
public function setup(string $logChannel): void; public function setup(): void;
/** /**
* Returns a fully constructed object based on $name using $args and $share as constructor arguments if supplied * Returns a fully constructed object based on $name using $args and $share as constructor arguments if supplied

View file

@ -11,7 +11,6 @@ namespace Friendica\Core;
use Dice\Dice; use Dice\Dice;
use Friendica\DI; use Friendica\DI;
use Psr\Log\LoggerInterface;
/** /**
* Wrapper for the Dice class to make some basic setups * Wrapper for the Dice class to make some basic setups
@ -39,13 +38,10 @@ final class DiceContainer implements Container
* *
* @deprecated * @deprecated
* *
* @param string $logChannel The Log Channel of this call
*
* @return void * @return void
*/ */
public function setup(string $logChannel): void public function setup(): void
{ {
$this->setupContainerForLogger($logChannel);
$this->setupLegacyServiceLocator(); $this->setupLegacyServiceLocator();
} }
@ -75,13 +71,6 @@ final class DiceContainer implements Container
$this->container = $this->container->addRule($name, $rule); $this->container = $this->container->addRule($name, $rule);
} }
private function setupContainerForLogger(string $logChannel): void
{
$this->container = $this->container->addRule(LoggerInterface::class, [
'constructParams' => [$logChannel],
]);
}
private function setupLegacyServiceLocator(): void private function setupLegacyServiceLocator(): void
{ {
DI::init($this->container); DI::init($this->container);