Cómo crear un package de biblioteca de compositor que genera código automáticamente cuando está incluido

Cada vez que creo un nuevo proyecto PHP, básicamente uso la misma estructura de carpetas MVC que adopté y me gusta, utilizo las mismas classs base, interfaces y la misma implementación PDO DAL. Cuando estoy creando un nuevo proyecto, copio y pego todos los files necesarios para el nuevo proyecto, además de algunos cambios, como cambios en los espacios de nombres (para que coincida con el nuevo nombre del proyecto), etc.

Pensé, ¿por qué no crear un script simple para copyr esos files y carpetas, y hacer los cambios adicionales? Entonces, cuando creo un nuevo proyecto, solo ejecuto el script y el código se genera automáticamente, lo que es mucho más agradable.

Y luego pensé, quiero que sea aún más simple. No quiero save el código en mi computadora, quiero savelo en Github, y dado que uso y amo al compositor, pensé que haría del proyecto Github un package para compositores. Pero cuando bash implementarlo, me doy count de que no puedo hacer que el nuevo package de compositor genere automáticamente el código que quiero, o al less no sé cómo hacerlo. Intenté search en Google sin éxito.

¿Alguien sabe cómo lograr esto?

No veo ninguna necesidad de generar código aquí. Simplemente agregue sus files esqueleto a su repository Git y use la function de create-project Composer. Ver el tercer punto:

Puede usar Composer para crear nuevos proyectos a partir de un package existente. Esto es el equivalente de hacer una copy de git clone / svn seguida de una installation de compositor de los proveedores.

Hay varias aplicaciones para esto:

  1. Puede implementar packages de aplicaciones.
  2. Puede consultar cualquier package y comenzar a desarrollar parches, por ejemplo.
  3. Los proyectos con múltiples desarrolladores pueden usar esta característica para iniciar la aplicación inicial para el desarrollo.

Un ejemplo de un proyecto PHP importante que admite este enfoque es Laravel . De sus instrucciones de installation :

Via Composer

El marco de Laravel utiliza Composer para la installation y la administración de dependencies. Si aún no lo has hecho, comienza instalando Composer .

Ahora puede instalar Laravel emitiendo el siguiente command desde su terminal:

 composer create-project laravel/laravel your-project-name --prefer-dist 

Este command downloadá e instalará una copy nueva de Laravel en una nueva carpeta de your-project-name dentro de su directory actual.

Si lo prefiere, puede download alternativamente una copy del repository Laravel de Github manualmente. Luego ejecute el command de composer install del composer install en la raíz de su directory de proyecto creado manualmente. Este command downloadá e instalará las dependencies del marco.

Editar:

Para ejecutar un script después composer create-project complete el composer create-project , debe poder usar un script Composer :

Una secuencia de commands, en términos de Composer, puede ser una callback de PHP (definida como un método estático) o cualquier command ejecutable de command-line. Los scripts son útiles para ejecutar el código personalizado de un package o los commands específicos del package durante el process de ejecución de Composer.

Probablemente estés buscando el evento post-create-project-cmd :

ocurre después de que se ejecuta el command create-project

Dependiendo de si su script es un método PHP estático o un ejecutable de shell, debe definirlo de la siguiente manera (modificado a partir de la documentation de Composer):

 { "scripts": { "post-create-project-cmd": "MyVendor\\MyClass::postUpdate" } } 

o

 { "scripts": { "post-create-project-cmd": "my-shell-script arg1 arg2" } } 
    Intereting Posts