public function __construct(Website $website) { $this->website = $website; if ($this->website->isDirty('identifier')) { $this->old_path = sprintf('%s/%d-%s/', Config::get('multi-tenant.tenant-directory') ? Config::get('multi-tenant.tenant-directory') : storage_path('multi-tenant'), $this->website->id, $this->website->getOriginal('identifier')); if (!File::isDirectory($this->old_path)) { $this->old_path = null; } } $this->base_path = sprintf('%s/%d-%s/', Config::get('multi-tenant.tenant-directory') ? Config::get('multi-tenant.tenant-directory') : storage_path('multi-tenant'), $this->website->id, $this->website->identifier); }
/** * Generic configuration for tenant. * * @return array */ protected function config() { $clone = Config::get(sprintf('database.connections.%s', static::systemConnectionName())); $clone['password'] = md5(Config::get('app.key') . $this->website->id); $clone['username'] = $clone['database'] = sprintf('%d-%s', $this->website->id, $this->website->present()->identifier); return $clone; }
/** * Registers model observers. */ protected function observers() { Models\Website::observe(new Observers\WebsiteObserver()); Models\Hostname::observe(new Observers\HostnameObserver()); Models\Tenant::observe(new Observers\TenantObserver()); }
/** * Create a pagination object. * * @param int $per_page * * @return mixed */ public function paginated($per_page = 20) { return $this->website->paginate($per_page); }