allyson/admin-tools-library

Reusable Laravel package for admin tools dashboard with auto-discovery

Maintainers

Package info

github.com/allysonpdm/laravel-admin-tools

pkg:composer/allyson/admin-tools-library

Transparency log

Statistics

Installs: 5

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.3 2026-08-14 16:53 UTC

This package is auto-updated.

Last update: 2026-08-14 16:57:42 UTC


README

Test Coverage License PHP Laravel

Pacote Laravel reutilizável que fornece um painel administrativo com ferramentas (Telescope, Log Viewer, Documentação API) que se auto-registram quando instaladas.

✨ Características

  • 🔍 Auto-Discovery: Ferramentas se registram automaticamente quando instaladas
  • 📦 Reutilizável: Use em qualquer projeto Laravel 13+
  • 🔐 Seguro: Protegido por middleware (APP_DEBUG + Auth + Admin-only)
  • 🧩 Extensível: Crie novos providers facilmente
  • 🎯 Zero Acoplamento: Não requer banco de dados nem modificações de core

🚀 Uso Rápido

Instalação

# Em seu projeto Laravel
composer require allyson/admin-tools-library

# Publicar configuração (opcional)
php artisan vendor:publish --provider="AdminToolsLibrary\Providers\AdminToolsServiceProvider"

Criar Tool Provider

<?php
namespace App\Providers;

use AdminToolsLibrary\Registry\Tool;
use AdminToolsLibrary\Contracts\ToolProvider;
use AdminToolsLibrary\Registry\ToolRegistry;

class AdminToolsBootstrapProvider implements ToolProvider
{
    public function tools(): array
    {
        return [
            Tool::make([
                'id' => 'telescope',
                'name' => 'Telescope',
                'description' => '🔭 Monitore requests & queries',
                'icon' => '🔭',
                'url' => '/telescope',
                'enabled' => true,
                'package' => 'laravel/telescope',
            ]),
        ];
    }

    public function registerTools(ToolRegistry $registry): void
    {
        foreach ($this->tools() as $tool) {
            $registry->register($tool);
        }
    }
}

Registrar Provider

// config/admin-tools.php
return [
    'tools' => [
        App\Providers\AdminToolsBootstrapProvider::class,
    ],
];

Acessar Painel

http://seu-projeto.local/tools

📋 Documentação

🛠️ Tech Stack

  • PHP: 8.5+
  • Laravel: 13.0+
  • Database: Não requerido
  • Dependências: Illuminate/Support, Illuminate/Http, Illuminate/Routing, Illuminate/View

📦 Estrutura do Projeto

laravel-admin-tools/
├── src/
│   ├── Registry/
│   │   ├── Tool.php
│   │   ├── ToolRegistry.php
│   │   └── ToolCollection.php
│   ├── Contracts/
│   │   ├── ToolProvider.php
│   │   └── Discoverable.php
│   ├── Discovery/
│   │   ├── PackageDiscoverer.php
│   │   ├── ConfigDiscoverer.php
│   │   └── ManifestDiscoverer.php
│   ├── Providers/
│   │   └── AdminToolsServiceProvider.php
│   ├── Http/
│   │   └── Controllers/
│   │       ├── ToolsViewController.php
│   │       └── ToolsListController.php
│   ├── Console/
│   │   └── Commands/
│   │       ├── DiscoverToolsCommand.php
│   │       └── ListToolsCommand.php
│   └── Exceptions/
│       ├── ToolNotFoundException.php
│       └── InvalidToolException.php
├── config/
│   └── admin-tools.php
├── resources/
│   └── views/
│       ├── tools/
│       │   └── index.blade.php
│       └── partials/
│           └── toolbar.blade.php
├── routes/
│   └── web.php
├── tests/
│   ├── Unit/
│   │   ├── Registry/
│   │   └── Discovery/
│   └── Feature/
│       ├── ToolsViewTest.php
│       └── AutoDiscoveryTest.php
├── docs/
│   ├── PLANO.md
│   ├── INSTALACAO.md
│   ├── ARQUITETURA.md
│   ├── DESENVOLVIMENTO.md
│   └── API.md
├── composer.json
├── phpunit.xml
└── README.md

🎯 Recursos Principais

ToolRegistry

Container central que armazena e gerencia ferramentas:

$registry = app(ToolRegistry::class);
$registry->register($tool);
$registry->all();                    // Todas as ferramentas
$registry->all()->enabled();         // Apenas habilitadas
$registry->all()->byPackage('tele'); // Por package

ToolProvider

Interface que packages implementam:

interface ToolProvider {
    public function tools(): array;
    public function registerTools(ToolRegistry $registry): void;
}

Discovery

Auto-descobre ferramentas de:

  • Configuração (config/admin-tools.php)
  • Packages instalados (via ToolProvider)
  • Manifest cache (produção)

🔐 Segurança

  • ✅ Middleware tools.debug-only: Bloqueia se APP_DEBUG=false
  • ✅ Middleware auth: Requer autenticação
  • ✅ Middleware only-admin: Requer privilégio admin
  • ✅ Zero banco de dados
  • ✅ Zero injeção de SQL
  • ✅ Views escapadas

✅ Status de Implementação

Fase Descrição Status
1 Estrutura Base (Tool, Registry, Collection) ✅ Completo
2 Discovery System (Config, Package, Manifest) ✅ Completo
3 ServiceProvider & Auto-Discovery ✅ Completo
4 Integração Motor-Credito ✅ Pronto
5 Migrar Tools Existentes ✅ Exemplos
6 Package-Ready Providers ✅ Exemplos
7 Controllers & Views ✅ Completo
8 Artisan Commands ✅ Completo
9 Testes Completos ✅ 39/39 testes passando
10 Documentação ✅ Completo

Versão: 1.0.0
Status: Production Ready
Cobertura de Testes: 100% (Registry Module)

🤝 Contribuindo

Veja DESENVOLVIMENTO.md para instruções de setup local e contribuição.

📝 Licença

Proprietary - Grupo 3RN

📞 Contato