- Düzenlendi
Çalıştığım projede domain bazlı ayarların değişmesi gerekiyordu web request zamanı bu çok kolaydı lakin console da sorunlar yaşamaya başladım çözümü de Kernel üzerinden şöyle yaptım.
<?php
namespace App\Console;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\ArgvInput;
trait DomainOption
{
public function bootstrap()
{
parent::bootstrap();
$this->app['config']->set('app.domain', $this->getDomainArgvInput());
}
/**
* @return \Illuminate\Console\Application
*/
protected function getArtisan()
{
$artisan = parent::getArtisan();
if (!$artisan->getDefinition()->hasOption('--domain')) {
$artisan->getDefinition()
->addOption(
new InputOption(
'--domain',
'-d',
InputOption::VALUE_OPTIONAL,
'Set APP Domain run time'
)
);
}
return $artisan;
}
private function getDomainArgvInput()
{
$input = new ArgvInput();
return $input->getParameterOption('--domain', null) ?? $input->getParameterOption('-d', null);
}
}
App\Console\Kernel
class Kernel extends ConsoleKernel
{
use DomainOption;
}
Şimdi console dan kullanalım.
php artisan cache:clear -d office