Download the PHP package mylaraveltools/panel without Composer

On this page you can find all versions of the php package mylaraveltools/panel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package panel

Panel (mylaraveltools/panel)

Packagist Version Packagist Downloads

Panel de administración declarativo y monocromático para Laravel. API de Resources al estilo Filament/Nova, con Livewire 3, Tailwind CSS, auth integrada, permisos Spatie, import/export y navegación SPA.

Parte del ecosistema My Laravel Tools (junto con mylaraveltools/alertas).

Migración: si usabas mylaraveltools/minimalist, sustituye por mylaraveltools/panel. El namespace PHP sigue siendo MyLaravelTools\Panel — no cambia tu código.


Tabla de contenidos

  1. Requisitos
  2. Instalación paso a paso
  3. Tu primer CRUD en 5 minutos
  4. Configuración (config/panel.php)
  5. Autenticación y perfil
  6. Permisos (Spatie) y suplantación
  7. Navegación y páginas custom
  8. Importar y exportar datos
  9. Dashboard y widgets
  10. Relaciones entre modelos
  11. Tema, layout y SPA
  12. Comandos Artisan
  13. Personalizar vistas
  14. Solución de problemas
  15. Proyecto demo
  16. Desarrollo y tests
  17. Roadmap
  18. Licencia

Requisitos

Requisito Versión
PHP 8.2+
Laravel 11, 12 o 13
Livewire 3.5+
Tailwind CSS 3+ en la app host

Opcionales: spatie/laravel-permission, mylaraveltools/alertas.


Instalación paso a paso

Paso 1 — Composer

Desarrollo local (path repository):

Paso 2 — Instalar el panel

Esto publica config/panel.php, registra rutas en /admin y prepara Livewire.

Paso 3 — Tailwind

En tailwind.config.js incluye las vistas del paquete y activa modo oscuro por clase:

Paso 4 — Alpine + Livewire

En resources/js/app.js, no importes Alpine en rutas del panel (/admin/*). Livewire lo gestiona:

Importar Alpine en /admin/login rompe wire:submit (el formulario no envía nada).

Paso 5 — Compilar y probar

Abre http://127.0.0.1:8000/admin — verás login/registro si auth.enabled es true.

APP_URL debe coincidir con host y puerto (http://127.0.0.1:8000).


Tu primer CRUD en 5 minutos

1. Crear el Resource

2. Definir formulario y tabla

3. Listo

Auto-discovery en app/Panel/Resources/ (configurable). URL: /admin/resources/products (slug = kebab del modelo; puedes fijarlo con protected static ?string $slug = 'productos';).


Configuración (config/panel.php)

Toda la configuración vive en este archivo (compatible con config:cache). No hace falta .env, aunque puedes usarlo si prefieres.

Clave Descripción Default
path Prefijo URL admin
guard Guard de auth web
brand.name Nombre en sidebar Panel
brand.logo URL del logo (null = icono) null
per_page Registros por página 15
forms_in_modal Crear/editar en modal true
discovery Auto-discovery Resources enabled
pages Auto-discovery Pages enabled
permissions Spatie/Gate disabled
navigation Menú lateral (null = auto) null
widgets Dashboard []
import Import CSV/Excel enabled + preview + guided_summary
forms Modal: validación inline, borrador, foco ver UX del listado
performance Debounces, skeleton, caché filtros, cursor ver AGENTS.md
layout.index Filas clicables, columnas, vista rápida, bulk ver UX del listado
impersonation Suplantar usuarios disabled
theme.preset Preset visual (minimal, corporate, contrast, ocean) minimal
extensions Vistas custom de campos/columnas y widgets []
version Texto en sidebar (null = paquete) null

Tema monocromático

Variables CSS: --panel-primary, --panel-bg, etc. Toggle claro/oscuro en el footer del sidebar (persiste en localStorage).

UX del listado

Listados (ResourceIndex) con filtros en URL, carga optimista, selección masiva y atajos de teclado. Guía completa para agentes y desarrolladores: AGENTS.md — Guía UX del listado.

Resumen de config/panel.php:

Área Claves principales Default
Filtros layout.filters.mode, default_open, remember_state collapsible
Tabla layout.index.clickable_rows, mobile_cards, column_toggle, quick_view true
Bulk layout.index.bulk_preview, bulk_select_all_max preview on, máx. 500
Rendimiento UX performance.skeleton_delay_ms, search_debounce_ms 50 ms / 200 ms
Rendimiento DB performance.eager_load_columns, filter_options_cache true
Formulario modal forms.validate_inline, draft_autosave, focus_on_open true

Atajos: / o Ctrl+F → buscador; ↑/↓ + Enter → filas; Shift+clic → vista rápida.

Auditoría: php artisan panel:audit-rendimiento (N+1 e índices sugeridos).

Multi-panel (varios paneles en la misma app)

Presets de tema

Extensibilidad (campos, columnas, widgets)

Por config (config/panel.php → extensions):

Por código (AppServiceProvider::boot):

Campo custom en un Resource:

Campos integrados nuevos: ColorField, DateTimeField, KeyValueField (pares clave/valor → JSON).

Actualizar vistas publicadas:

Actualizar config tras composer update:

Fusiona claves nuevas del paquete en config/panel.php (crea backup .bak). panel:doctor avisa si faltan claves respecto a la versión instalada.

Layout y apariencia

RepeaterField — filas con varias columnas (JSON):

Máxima personalización (v0.24)

Modos de layout — sidebar (por defecto), topbar o dual (barra superior + lateral):

Slots Blade — inyecta vistas en puntos del layout sin publicar todo el paquete:

Slots disponibles: sidebar.before, sidebar.after, main.before, main.after, topbar.start, topbar.end, footer.before.

También vía código en AppServiceProvider:

Import upsert — actualiza registros existentes en lugar de fallar:

Hooks en Resources:

Presets de tema propios — archivo PHP que devuelve un array de presets:

Instalación con demo:


Autenticación y perfil

Auth integrada en /admin/login y /admin/register (tabla users de Laravel):


Permisos (Spatie) y suplantación

Spatie Laravel Permission

Suplantación de usuario

Navega el panel como otro usuario (permisos, menú y policies reales):

  1. En el resource del modelo User, menú ⋮ → Entrar como.
  2. Aparece una tarjeta en el sidebar (encima del perfil) con botón Salir.
  3. Requiere permiso Spatie/Gate. No puedes suplantarte a ti mismo.

Navegación y páginas custom

Menú con grupos

Páginas custom (no CRUD)

Ruta: /admin/pages/{slug}. Vista con <x-panel::page-header>.


Importar y exportar datos

Export

Botones CSV, XLSX y PDF en listados. Con filas seleccionadas, exporta solo la selección.

Import (con vista previa)

  1. Botón Importar en el listado (permiso create).
  2. Sube .csv, .txt, .xlsx, .xls.
  3. Revisa filas válidas/errores → confirma.
  4. Con upsert activo: crea nuevos y actualiza existentes según importUpsertKey() del Resource.

Personaliza columnas con Field::importable(false) o Resource::import().


Dashboard y widgets

Tipos ChartWidget: bar, line, pie, doughnut, progression. Gráficos reactivos al tema y SPA.


Relaciones entre modelos

Desde la vista Ver del registro padre:


Tema, layout y SPA

Fields y Columns

Fields: TextField, EmailField, PasswordField, TextareaField, BooleanField, SelectField, BelongsToField, NumberField, DateField, DateTimeField, ColorField, KeyValueField, CustomField, FileField, ImageField, RichTextField, RolesField, PermissionsField.

Columns: TextColumn, BooleanColumn, DateTimeColumn, BadgeColumn, ColorColumn, BelongsToColumn, ImageColumn, RolesColumn, PermissionsColumn.

Filtros: SelectFilter, BooleanFilter, DateRangeFilter, MultiSelectFilter.

Formularios: Section::make(), Tab::make(), soft deletes, bulk actions, RowAction.


Comandos Artisan

Comando Descripción
php artisan panel:install Instalar panel
php artisan panel:install --demo Instalar + navigation stub y PostResource ejemplo
php artisan panel:install --starter Kit completo: demo + modelo Post + migración + widget dashboard
php artisan panel:install --saas Kit SaaS: tenant + extensiones + vistas + widget
php artisan panel:install --multi Multi-panel: panel-admin.php, panel-cliente.php y raíz panels
php artisan panel:scaffold Name --policy --widget=resource-count Resource + policy + widget en un paso
php artisan panel:make-resource Name Crear Resource
php artisan panel:make-page Name Crear página custom
php artisan panel:make-policy Name Crear Policy
php artisan panel:make-widget Name --type=chart Crear clase widget para el dashboard
php artisan panel:doctor Diagnosticar instalación del panel
php artisan panel:audit-rendimiento Auditar N+1 e índices sugeridos en resources
php artisan panel:upgrade-config Fusionar config con claves nuevas del paquete
php artisan panel:upgrade-views Actualizar vistas publicadas
php artisan vendor:publish --tag=panel-config Publicar config
php artisan vendor:publish --tag=panel-views Publicar vistas Blade
php artisan vendor:publish --tag=panel-documentation Copiar documentation/panel/ al proyecto

Documentación interactiva (playground)

Ruta pública /playground (sin login) — documentation.enabled y documentation.path:


Personalizar vistas

Si publicas vistas en resources/views/vendor/panel/, sobreescriben las del paquete.

Tras actualizar el paquete:

Si no publicas vistas, Laravel usa las del vendor directamente (recomendado hasta que edites Blade).


Solución de problemas

Problema Solución
Login no envía el formulario No importes Alpine en rutas /admin/*
Alpine is not defined show_progress_bar => true en config/livewire.php
Estilos rotos Incluye vistas del paquete en tailwind.config.js y npm run build
Feature nueva no aparece Republica vistas con --force o borra resources/views/vendor/panel/
404 en /admin/resources/users El slug por defecto es user (singular); define $slug = 'users'
«Entrar como» no visible Permiso impersonate users + php artisan db:seed con ese permiso
Redirecciones raras en login APP_URL con host y puerto correctos

Proyecto demo

Carpeta panel-demo/ con catálogo, ventas, Spatie, gráficos, import y suplantación.

Demo online: despliega con panel-demo/DEPLOY.md y render.yaml (Render.com). Playground público en /playground.

Usuario Email Password
Admin [email protected] password
Editor [email protected] password

Ver panel-demo/README.md para rutas y features de prueba.


Desarrollo y tests


Roadmap


Licencia

MIT — Alberto Gallardo Morales


All versions of panel with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/support Version ^11.0|^12.0|^13.0
dompdf/dompdf Version ^3.0
livewire/livewire Version ^3.5
phpoffice/phpspreadsheet Version ^2.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package mylaraveltools/panel contains the following files

Loading the files please wait ...