Download the PHP package orebarranco/filament-ddd-starter without Composer

On this page you can find all versions of the php package orebarranco/filament-ddd-starter. 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 filament-ddd-starter

filament-ddd-starter

CI

Starter kit de producción para Laravel basado en FilamentPHP v5 con arquitectura Domain-Driven Design.

Pensado para proyectos en español: el panel, los mensajes de validación y los datos de prueba vienen en español de fábrica (APP_LOCALE=es, APP_FAKER_LOCALE=es_ES). Para cambiarlo, ajusta esas variables en tu .env.

La lógica de negocio se escribe una vez

Un caso de uso vive en una Action, y la Action no sabe quién la llama. El panel de Filament la consume hoy; una API, un comando de consola o un job la consumen mañana sin reescribir ni adaptar nada.

Así crea un usuario el panel — es el fichero completo, no un extracto:

Y así lo haría un controlador de API. Este fichero no está en el kit —no trae capa HTTP— pero no hace falta tocar el dominio para escribirlo:

La misma Action, el mismo DTO, la misma línea. Lo único que cambia es de dónde salen los datos: del formulario o de la petición. Ahí está la diferencia con un CRUD de Filament donde la lógica vive dentro de la Page: ese código no se puede llamar desde otro sitio, y cuando llega la API se copia.

Las Actions no importan nada de Filament ni de HTTP:

No es una promesa: los tests unitarios ya son ese segundo consumidor. Llaman a resolve(CreateUserAction::class)->execute($data) sin panel, sin Livewire y sin HTTP.

La costura honesta: Domain\Identity\Models\User sí implementa FilamentUser y su canAccessPanel() recibe un Filament\Panel. Es el único punto de todo src/Domain/ que conoce Filament, y es deliberado: el contrato de acceso al panel tiene que vivir en el modelo. Las Actions y los DTO quedan limpios.

Arquitectura

Basada en Laravel Beyond CRUD de Brent Roose (Spatie).

La lógica de negocio vive en src/Domain/, completamente separada de la capa HTTP y de Filament:

Flujo de una operación

Las Pages de Filament solo construyen el DTO y delegan. Nunca contienen lógica de negocio.

Stack

Capa Tecnología
Framework Laravel 13, PHP 8.4
Admin UI Filament 5 (Livewire 4 + Alpine.js + Tailwind v4)
Auth / RBAC Spatie Permission + Filament Shield
Testing Pest 4
Formatter Laravel Pint
Análisis estático Rector 2 + Larastan 3 (PHPStan)

Instalación

laravel new ya deja el proyecto arrancado: copia .env, genera la clave, migra y siembra. Esos pasos viven en post-create-project-cmd dentro de composer.json; no hace falta repetirlos a mano.

El panel de administración queda en /admin.

Primer arranque

El sembrado crea el catálogo de permisos, el rol super_admin y el primer administrador:

El catálogo lo siembra database/seeders/ShieldSeeder.php. super_admin no lleva ninguno de esos permisos y no le hacen falta: entra por el gate de Shield, que se resuelve antes de consultar cualquier policy. Están ahí para los roles limitados que definas tú.

Cámbialos antes de exponer el panel a cualquier red. Están en database/seeders/SuperAdminSeeder.php.

Para entrar al panel hace falta un rol

User::canAccessPanel() exige dos cosas: que la cuenta esté activa y que tenga al menos un rol asignado. Un usuario recién creado sin rol no entra, y es deliberado: el rol es lo que responde qué puede hacer, y la columna active es el interruptor de la cuenta. Son dos preguntas distintas.

Eso tiene dos efectos que conviene saber, porque no parecen lo que son:

Al añadir un Resource, regenera los permisos

El segundo comando es el que se olvida. shield:generate crea los permisos en tu base de datos; shield:seeder los vuelca a ShieldSeeder.php para que viajen en el repositorio y existan también en las demás instalaciones. Sin él, el resource nuevo funciona en tu máquina y en ningún otro sitio.

No hace falta que te acuerdes: ShieldSeederTest compara lo que Shield descubre hoy contra lo que el seeder siembra, y falla nombrando los permisos que falten.

Y conecta la policy al modelo con #[UsePolicy(...)]. Sin ese atributo la autorización falla abierto: los modelos viven en Domain\{Dominio}\Models\, el autodescubrimiento de Laravel no los encuentra, y Filament interpreta la ausencia de policy como permiso concedido. El paso a paso está en .claude/rules/ddd.md.

Copias de seguridad

Vienen programadas pero apagadas. Para encenderlas:

El calendario está en routes/console.php: limpieza y monitorización diarias, y dos copias al día.

Crear un nuevo dominio

Ver .claude/rules/ddd.md para el paso a paso completo.

Comandos frecuentes

Convenciones

Contribuir

El flujo de trabajo —ramas, commits, orden de los quality gates y estrategia de merge— está en CONTRIBUTING.md. Los cambios de cada versión, en CHANGELOG.md.

Licencia

MIT. Ver LICENSE.


All versions of filament-ddd-starter with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
ext-zip Version *
bezhansalleh/filament-shield Version ^4.2
filament/filament Version ^5.4.3
laravel-lang/common Version >=6.8
laravel/framework Version ^13.0
laravel/pulse Version ^1.7
laravel/tinker Version ^3.0
spatie/laravel-backup Version ^10.2
stechstudio/filament-impersonate Version ^5.6
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 orebarranco/filament-ddd-starter contains the following files

Loading the files please wait ...