HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/posscale/public_html/printmanager/vendor/filament/filament/src/Panel/Concerns/HasPlugins.php
<?php

namespace Filament\Panel\Concerns;

use Exception;
use Filament\Contracts\Plugin;

trait HasPlugins
{
    /**
     * @var array<string, Plugin>
     */
    protected array $plugins = [];

    public function plugin(Plugin $plugin): static
    {
        $plugin->register($this);
        $this->plugins[$plugin->getId()] = $plugin;

        return $this;
    }

    /**
     * @param  array<Plugin>  $plugins
     */
    public function plugins(array $plugins): static
    {
        foreach ($plugins as $plugin) {
            $this->plugin($plugin);
        }

        return $this;
    }

    /**
     * @return array<string, Plugin>
     */
    public function getPlugins(): array
    {
        return $this->plugins;
    }

    public function getPlugin(string $id): Plugin
    {
        return $this->getPlugins()[$id] ?? throw new Exception("Plugin [{$id}] is not registered for panel [{$this->getId()}].");
    }

    public function hasPlugin(string $id): bool
    {
        return array_key_exists($id, $this->getPlugins());
    }
}