Aprenda a distribuir sus paquetes PHP con Packagist
Ha desarrollado un hermoso paquete PHP en el que ha puesto su corazón y su alma y del que está orgulloso. Ahora es el momento de la distribución, y una parte clave es asegurarse de proporcionar a los demás la ruta más fácil para descargar y utilizar su paquete, pero ¿cómo?
Afortunadamente, para esto hay Packagist, un repositorio de facto gratuito para todas las dependencias de paquetes PHP. Aprenda a incluir su paquete PHP en Packagist, permitiendo que otros lo descarguen e instalen con un solo comando.
Estructura tu paquete correctamente
Antes de la distribución, su paquete debe estar estructurado correctamente y debe utilizar espacios de nombres. Decida un espacio de nombres raíz para su paquete. Puede ser cualquier cosa que desee, pero generalmente se recomienda utilizar Author PackageName .
Por ejemplo, el espacio de nombres JSmith BlogPoster informaría a otros que el desarrollador del paquete se llama Jsmith y este es su paquete llamado BlogPoster .
Con el espacio de nombres raíz decidido, cree un directorio / src / en su proyecto y mueva todos los archivos PHP a él. Cada archivo debe tener la declaración adecuada en la parte superior, por lo que todos los archivos PHP dentro del directorio / src / deben comenzar:
<?php
namespace JSmithBlogPoster;
La declaración del espacio de nombres es relativa a la estructura del directorio. Por ejemplo, si tiene un archivo en /src/Images/Uploader.php, en la parte superior del archivo tendría:
<?php
namespace JSmithBlogPosterImages;
class Uploader
{
}
Por último, asegúrese de que la declaración de clase de todos los archivos PHP sea la misma que el nombre del archivo, como muestra el ejemplo anterior. El archivo Uploader.php tiene el nombre de clase Uploader .
Registrar una cuenta de Packagist
Si aún no tiene una, cree una cuenta Packagist , es rápido y gratis. Aunque no es obligatorio, es una práctica estándar registrarse con el mismo nombre de usuario que en el espacio de nombres raíz que decidió en la sección anterior. Si ese nombre de usuario no está disponible, elija algo similar.
No necesita hacer nada con la cuenta de Packagist todavía, pero es útil tenerla lista.
Crear archivo composer.json
Abra un editor de texto y dentro del directorio raíz de su proyecto cree un archivo composer.json , con el siguiente contenido usado como ejemplo:
{
"name": "jsmith/blogposter",
"description": "An excellent blog posting package...",
"type": "package",
"homepage": "https://yourdomain.com",
"license": "MIT",
"require": {
"php": ">=8.0.0"
},
"autoload": {
"psr-4": {
"JSmithBlogPoster": "src/"
}
}
}
Solo hay dos aspectos importantes del archivo anterior para tomar nota.
Primero está el elemento de nombre en la parte superior. Esto debe ser dos cadenas separadas por una barra inclinada, la primera es su nombre de usuario de Packagist y la segunda es el nombre deseado del paquete. Usando el ejemplo anterior, el nombre de usuario de Packagist es jsmith y el nombre del paquete es blogposter .
En segundo lugar, en la parte inferior de la sección de carga automática , verá la línea:
"JSmithBlogPoster": "src/"
Modifique esta línea para que el espacio de nombres raíz que decidió anteriormente apunte al directorio / src /. Cuando su paquete es instalado por otra persona, Composer asignará automáticamente su espacio de nombres raíz al subdirectorio en el que se instaló su paquete.
Sube tu paquete a Github
Debe cargar su paquete PHP en un repositorio de Github, ya que ese es el método de integración principal que usa Packagist. Si aún no está familiarizado con la creación y publicación en un repositorio de Github, consulte Cómo crear su primer repositorio en GitHub para obtener una excelente guía paso a paso.
Asegúrese de cargar todo su paquete PHP, incluidos todos los archivos dentro de / src / y el archivo composer.json. Si simplemente desea cargar todo el directorio del proyecto en GitHub, abra una terminal dentro del directorio de su proyecto y ejecute:
git add ./*
git commit -m "Initial commit"
git push -u origin master
También debe agregar una etiqueta al repositorio de GitHub, ya que las etiquetas son la forma en que Packagist realiza un seguimiento de los lanzamientos y los números de versión de sus paquetes. Para marcar el repositorio actual como v0.1, ejecute los comandos:
git tag 0.1
git push --tags
Agregar un listado de PHP en Packagist
Ahora todo está en su lugar, por lo que con una sonrisa puede seguir adelante y enviar su paquete PHP para su inclusión instantánea en Packagist. Visite la página Enviar paquete e ingrese la URL de su repositorio de GitHub, que será algo como:
https://github.com/jsmith/blogposter.git
Pulse el botón Comprobar enviar y Packagist descargará el archivo composer.json de su repositorio, además de las etiquetas / lanzamientos disponibles y otra información.
La siguiente página confirmará que desea publicar el paquete; una vez confirmado, podrá ver su nueva lista de Packagist en una URL como:
https://packagist.org/packages/jsmith/blogposter
Instale su paquete con Composer
Pruébelo e instale su paquete PHP con Composer. Si aún no tiene Composer instalado, puede instalarlo con el siguiente comando:
sudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Cree un nuevo directorio y dentro de él ejecute el comando:
composer require jsmith/blogposter
Composer hará su magia y notarás que aparecerá un nuevo subdirectorio / vendor /, que si miras dentro, ¡verás tu paquete PHP!
Pruébelo y cargue su paquete PHP. Usando el ejemplo anterior, si hubiera un archivo /src/Blogger.php en el paquete, una secuencia de comandos de prueba rápida para cargarlo sería:
<?php
use JSmithBlogPosterBlogger;
// Load composer dependences
require("./vendor/autoload.php");
// Get blogger
$client = new Blogger();
echo "Got a " . $client::class . "
";
Avanza y comparte con el mundo
Ahora ha aprendido lo fácil que es estructurar su paquete PHP de manera adecuada y listarlo en Packagist, lo que permite que cualquier persona en el mundo descargue e incluya instantáneamente su paquete dentro de su proyecto con un solo comando.
Felicitaciones, ahora ha abierto su paquete PHP hasta el canal de distribución principal dentro del ecosistema PHP. Avanza y comparte tu creatividad y trabajo duro con el mundo.