Convertir una funcionalidad en un paquete Laravel es más simple de lo que parece. Aquí verás cómo empaquetar un sistema de rating con Composer, apoyarte en un esqueleto de Git y ordenar la estructura bajo source con namespaces consistentes. Así obtienes un paquete reutilizable, fácil de mantener y listo para cualquier proyecto Laravel.
¿Cómo iniciar un paquete Laravel con Composer?
Para empezar, se crea un archivo composer.json y se prepara el entorno. La base es ejecutar el inicializador de Composer y, para ahorrar tiempo, usar un esqueleto probado desde Git.
¿Qué hace composer init?
Crea el archivo composer.json inicial del paquete.
Te guía con preguntas; puedes omitirlas y completar luego.
Deja listo el proyecto para instalar dependencias.
composer init
¿Por qué usar un esqueleto de Git?
Evita “inventar” la estructura de carpetas.
Incluye archivos comunes: tests, resources, database, config y más.
Recomendado: plantilla de Les Patti “Package Skeleton Laravel”. Se usa “Utilizar como plantilla” y se clona el nuevo repositorio.
# Tras crear el repo desde la plantilla, clónalo# (sustituye por la URL de tu repositorio)git clone <url-del-repositorio>
¿Qué estructura y archivos necesita el paquete?
La base del código vive en la carpeta source. Allí se organizan las partes del sistema de rating y se copian los archivos existentes desde tu proyecto original.
¿Qué carpetas crear en source?
contracts: interfaces del dominio.
exceptions: excepciones de negocio.
models: el modelo principal (por ejemplo, rating).
traits: traits reutilizables.
events: events que dispara el modelo.
¿Qué archivos copiar del proyecto?
Modelo: el modelo rating a source/models.
Eventos: los events “model rate” y “model on rate” a source/events.
Migraciones: la que crea la tabla ratings a database/migrations.
Traits: desde util a source/traits.
Excepciones: por ejemplo, InvalidScore a source/exceptions.
Configuración: archivo config/rating.php a config/.
¿Qué limpiar del esqueleto?
Archivos de ejemplo no usados: comando, clase Skeleton, fake.
El service provider se trabajará más tarde.
¿Cómo ajustar namespaces y dependencias con Composer?
Tras copiar la base, instala dependencias y actualiza namespaces para que todo compile. Luego revisa importaciones una a una.
¿Cómo instalar dependencias?
Define las dependencias en composer.json.
Ejecuta la instalación para poblar la carpeta vendor.
composerinstall
¿Cómo definir y aplicar el namespace?
Elige un namespace único, por ejemplo: laraveles.
Sustituye todas las referencias de App por laraveles en modelos, events, traits y excepciones.
<?phpnamespacelaraveles\Models;// ... resto del código del modelo rating
Ajusta las rutas de importación al nuevo namespace en cada archivo.
Verifica que los events y el modelo rating apunten a las nuevas ubicaciones.
¿Qué revisar para evitar errores?
Que cada clase apunte a su carpeta correcta en source/.
Que las migraciones y config estén en sus rutas esperadas.
Que no queden importaciones antiguas del proyecto original.
Habilidades practicadas: empaquetado con Composer. Organización de código en source. Manejo de namespace. Migraciones y config portables. Limpieza de esqueleto.
Bien, hasta aquí dejo de seguir el curso, es imposible seguirlo si el profesor no explica bien y solo hace copy/paste del código que ya tiene.
Tengo errores de importación porque no encuentra las clases aunque ya las haya instalado composer...
Toda la razón estimado, y es que es por el IDE que usa, que importa automáticamente, pero en dado caso nos hubiera recomendado usarlo y que plugins tiene instaladas/configurado para no preocuparnos por las importaciones, mucho que desear dejo este curso, espero hagan otro y si se pudiera con Italo...
Palabras fuertes, yo pienso que deben actualizar este curso de una mejor manera
Sitio con una plantilla para crear paquetes en Laravel
Para editar el namespace, en lo personal uso búsqueda y reemplazo por expresión regular en VSCODE. Ejemplo:
Search:(App\\)Replace:Dario\RatingPkg\
gracias por la data
Chicos Si hacemos un grupo en Whatsapp o en Slack Para poder ayudarnos mutuamente?? que opinan...
Se me complico todo, multiples errores que no puedo resolver, estoy negado a pelearla hoy, me doy un receso.
Dificil de llevar el curso
Después de que clones el repositorio creado a partir de la platilla de skeleton ejecuta esto php ./configure.php , te ara unas preguntas similares como las que te hacen cuando ejecutas composer init, y con esto podrás personalizar y realizar la configuración inicial de tu paquete ya que al final te ejecutara el composser install.
Nota
: recomiendo que leas bien lo que te pregunta ya que en cierto punto te indicara si deseas instalar librerías para la detección de errores como Larastan/PhpStan y otra para el seguimiento de estándares como PhpCsFixer, esto para que tengas la claridad de que estas incluyendo en tu paquete y sepas como lo puedes usar.
Me perdi en esta clase. Fue muy mala.
La creacion es facil voy a crear uno como para aprender