Crear paquetes de compositor

Puede convertir los Módulos de código que cree en paquetes de Composer, o puede crear un paquete Composer para Higgs.

Estructura de carpetas

A continuación se muestra una estructura de directorio típica para un paquete Composer:

nombre-de-su-paquete/
├── .gitatributos
├── .gitignore
├── LICENCIA
├── LÉAME.md
├── compositor.json
├── src/
 └── TuClase.php
└── pruebas/
    └── TuPruebaDeClase.php

Creando compositor.json

En la raíz del directorio de su paquete, cree un archivo composer.json. Este archivo define metadatos sobre su paquete y sus dependencias.

El comando composer init te ayuda a crearlo.

Por ejemplo, composer.json podría verse así:

{
    "nombre": "tu-proveedor/tu-paquete",
    "description": "Descripción de tu paquete",
    "tipo": "biblioteca",
    "licencia": "MIT",
    "carga automática": {
        "psr-4": {
            "SuVendedor\\SuPaquete\\": "src/"
        }
    },
    "autores": [
        {
            "nombre": "Tu nombre",
            "correo electrónico": "tu nombre@ejemplo.com"
        }
    ],
    "requerir": {
        // Cualquier dependencia requerida por tu paquete va aquí
    },
    "requerir-dev": {
        // Cualquier dependencia de desarrollo (por ejemplo, PHPUnit) va aquí
    }
}

Nombre del paquete

El campo nombre es importante aquí. Los nombres de los paquetes generalmente se escriben en el formatee «nombre-proveedor/nombre-paquete» con todo en minúsculas. Aquí hay un ejemplo común:

  • your-vendor-name: El nombre que identifica al proveedor (creador del paquete), como su nombre o su organización.

  • tu-nombre-de-paquete: El nombre del paquete que estás creando.

Por lo tanto, es importante que el nombre sea único para distinguirlo de otros paquetes. La singularidad es especialmente importante al publicar.

Espacio de nombres

Luego, el nombre del paquete determina el espacio de nombres del proveedor en autoload.psr4.

Si el nombre de su paquete es su-proveedor/su-paquete, el espacio de nombres del proveedor debe sea SuProveedor. Entonces escribirías así:

"carga automática": {
    "psr-4": {
        "SuVendedor\\SuPaquete\\": "src/"
    }
},

Esta configuración le indica a Composer que cargue automáticamente el código fuente de su paquete.

Elegir licencia

Si no está familiarizado con las licencias de código abierto, consulte https://choosealicense.com/. Muchos paquetes PHP, incluido Higgs, utilizan la licencia MIT.

Preparar herramientas de desarrollo

Existen muchas herramientas que ayudan a garantizar la calidad del código. Entonces deberías usarlos. Puede instalar y configurar fácilmente dichas herramientas con Higgs DevKit<https://github.com/Higgs(AI)/devkit> _.

Instalación de DevKit

En la raíz del directorio de su paquete, ejecute los siguientes comandos:

Composer config desarrollo de estabilidad mínima
configuración del compositor preferible-estable verdadero
el compositor requiere --dev Higgs(AI)/devkit

El DevKit instala varios paquetes de Composer que ayudan a su desarrollo y instala plantillas para ellos en vendor/Higgs(AI)/devkit/src/Template. Copie los archivos que contiene a la carpeta raíz de su proyecto y edítelos según sus necesidades.

Configuración del fijador de estándares de codificación

DevKit proporciona Coding Standards Fixer con Estándar de codificación de Higgs<https://github.com/Higgs/coding-standard> _ basado en PHP-CS-Fixer<https://github.com/PHP-CS-Fixer/PHP-CS-Fixer> _.

Copie vendor/Higgs(AI)/devkit/src/Template/.php-cs-fixer.dist.php a su carpeta raíz del proyecto.

Cree la carpeta build para el archivo de caché:

nombre-de-su-paquete/
├── .php-cs-fixer.dist.php
├── construir/

Abra .php-cs-fixer.dist.php en su editor y corrija la ruta de la carpeta:

--- a/.php-cs-fixer.dist.php
+++ b/.php-cs-fixer.dist.php
@@ -7,7 +7,7 @@ use PhpCsFixer\Finder;
 $buscador = Buscador::crear()
     ->archivos()
     ->en([
- __TÚ__ . '/aplicación/',
+ __TU__ . '/fuente/',
         __DIR__. '/pruebas/',
     ])
     ->excluir([

Eso es todo. Ahora puede ejecutar Coding Standards Fixer:

proveedor/bin/php-cs-fixer corrección --ansi --verbose --diff

Si agrega scripts.cs-fix en su composer.json, puede ejecutarlo con Comando composer cs-fix:

{
    //...
    },
    "guiones": {
        "cs-fix": "corrección de php-cs-fixer --ansi --verbose --diff"
    }
}

Archivos de configuración

Permitir a los usuarios anular la configuración

Si su paquete tiene un archivo de configuración y desea que los usuarios puedan anularlo la configuración, use config() con el nombre de clase corto como config('YourConfig') para llamar al archivo de configuración.

Luego, los usuarios pueden anular la configuración del paquete colocando una clase de configuración con el mismo nombre de clase corto en app/Config que extiende el paquete Config clase como SuVendedor\SuPaquete\Config\SuConfig.

Anulación de configuraciones en app/Config

Si necesita anular o agregar configuraciones conocidas en la carpeta app/Config, puedes usar Registradores implícitos .

Referencias

Hemos publicado algunos paquetes oficiales. Puede utilizar estos paquetes como referencias. al crear sus propios paquetes: