1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 22:54:03 +00:00
tenancy/src/Traits/TenantAwareCommand.php
Samuel Štancl f34986b29f
[2.2.0] Tenant aware commands (#221)
* wip

* Apply fixes from StyleCI

* Return value when a single tenant is passed

* array map -> foreach

* bug fixes
2019-11-10 12:32:26 +01:00

37 lines
906 B
PHP

<?php
declare(strict_types=1);
namespace Stancl\Tenancy\Traits;
use Stancl\Tenancy\Tenant;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
trait TenantAwareCommand
{
/** @return mixed|void */
protected function execute(InputInterface $input, OutputInterface $output)
{
$tenants = $this->getTenants();
if (count($tenants) === 1) {
return $tenants[0]->run(function () {
return $this->laravel->call([$this, 'handle']);
});
}
foreach ($tenants as $tenant) {
$tenant->run(function () {
$this->laravel->call([$this, 'handle']);
});
}
}
/**
* Get an array of tenants for which the command should be executed.
*
* @return Tenant[]
*/
abstract protected function getTenants(): array;
}