Qué es Laravel Nova
Hay productos que me ilusionan y luego está Laravel. Para quien no lo sepa, Geeky Theory está desarrollada con Laravel y siempre que Taylor Otwell (el creador de Laravel) anuncia algo nuevo, estoy deseando integrarlo en esta web.
Laravel Nova es un panel de administración que se integra dentro del ecosistema de Laravel y que está pensado para que sea sencillo de utilizar y modificar a nuestro gusto gracias a su configuración por código. El frontend de nova es una SPA (Single Page Application) que funciona con Vue.js, Vue Router y Tailwind.
Gestión de recursos
Con Laravel Nova podemos crear, leer, actualizar y eliminar datos de nuestra base de datos, es decir, interactuar con ella como nosotros queramos. Cada modelo de Eloquent tendrá un recurso de Nova asociado a él con el que podremos definir filtros, acciones, atributos, etc.
Lo mejor de todo es que se configura simplemente utilizando PHP y no almacena la configuración en base de datos.
Búsquedas
Laravel Nova incluye búsquedas en SQL utilizando sus propias queries y también se integra con Laravel Scout, en caso de que nuestra aplicación lo utilice.
Acciones y filtros
Las acciones son clases PHP que realizan una determinada tarea sobre un recurso. Por ejemplo, si quieres tener la opción de desactivar un usuario desde tu panel de control Nova, puedes definir una acción y utilizarla desde la interfaz en un usuario en concreto o en múltiples usuarios al mismo tiempo. Para ello, el modelo tiene que utilizar el trait Actionable
.
Los filtros nos permiten obtener recursos con unas determinadas condiciones. Por ejemplo: usuarios activos, cuentas suspendidas, cursos finalizados, etc. De la misma manera que las acciones, los filtros se configuran desde PHP.
Métricas
Para mí esta es la parte más importante. Configurar una métrica pasa por escribir una query y pintarla en el panel de administración. No es un proceso complicado si lo haces en tu propio panel de administración, pero la verdad es que tal y como está hecho en Laravel Nova es realmente sencillo.
Autorizaciones y roles de usuarios
Laravel Nova se integra a la perfección con el sistema de políticas de autorización de Laravel. Por lo tanto, tendremos el control total sobre quién puede realizar determinadas acciones y quién no. Si tu modelo ya tiene una política de autorizaciones, Nova la utilizará por defecto. Si no, puedes crear una.
Laravel Nova no es gratis. Tiene un precio de 99$ por sitio para un único desarrollador y de 199$ por sitio para múltiples desarrolladores.
Si queréis ver cómo fue la presentación en directo de Laravel Nova, no os perdáis la keynote: