1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-15 23:24:03 +00:00

[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
This commit is contained in:
Samuel Štancl 2019-11-10 12:32:26 +01:00 committed by GitHub
parent 2b00665247
commit f34986b29f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 78 additions and 0 deletions

View file

@ -0,0 +1,37 @@
<?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;
}