{"id":73269,"date":"2024-02-01T13:49:17","date_gmt":"2024-02-01T12:49:17","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=73269&#038;preview=true&#038;preview_id=73269"},"modified":"2024-02-15T17:41:13","modified_gmt":"2024-02-15T16:41:13","slug":"crear-paquete-composer","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/","title":{"rendered":"C\u00f3mo crear tu propio paquete Composer"},"content":{"rendered":"<p>Con la reutilizaci\u00f3n del c\u00f3digo surge el problema de la gesti\u00f3n de dependencias, hist\u00f3ricamente un proceso bastante manual y propenso a errores. Afortunadamente, en los \u00faltimos a\u00f1os la mayor\u00eda de los lenguajes de programaci\u00f3n han resuelto este problema introduciendo diversas herramientas para la gesti\u00f3n de dependencias. En el ecosistema <a href=\"https:\/\/kinsta.com\/php\/\">PHP<\/a>, <a href=\"https:\/\/kinsta.com\/es\/blog\/instalar-composer\/\">Composer<\/a> se ha convertido en el est\u00e1ndar gracias a su facilidad de uso, flexibilidad y amplia adopci\u00f3n.<\/p>\n<p>Aunque Composer se cre\u00f3 para la gesti\u00f3n de dependencias, tambi\u00e9n puedes utilizarlo para tareas como:<\/p>\n<ul>\n<li><strong>Carga autom\u00e1tica:<\/strong> Cargar autom\u00e1ticamente clases y funciones de bibliotecas externas para hacerlas f\u00e1cilmente accesibles desde tu c\u00f3digo y simplificar el proceso de integraci\u00f3n de c\u00f3digo externo en tu proyecto.<\/li>\n<li><strong>Generaci\u00f3n de c\u00f3digo:<\/strong> Genera c\u00f3digo repetitivo para tu proyecto, como archivos de configuraci\u00f3n u otros fragmentos de c\u00f3digo de uso com\u00fan para acelerar el proceso de desarrollo y garantizar la coherencia.<\/li>\n<li><strong>Programaci\u00f3n:<\/strong> Un sistema de scripts integrado puede automatizar tareas comunes, como ejecutar pruebas o generar documentaci\u00f3n a partir de tu base de c\u00f3digo. Esto puede ayudar a agilizar tu flujo de trabajo de desarrollo y reducir el trabajo manual.<\/li>\n<\/ul>\n<p>Este tutorial paso a paso te gu\u00eda para crear tu propio paquete Composer y publicarlo en <a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Packagist<\/a>, un repositorio de paquetes PHP que los desarrolladores de todo el mundo pueden utilizar en sus propios proyectos.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>\u00bfC\u00f3mo funciona Composer?<\/h2>\n<p>Primero, asegur\u00e9monos de que entendemos Composer. En t\u00e9rminos sencillos, Composer funciona utilizando un archivo <strong>composer.json<\/strong> que contiene las definiciones de las dependencias de tu proyecto PHP. Busca esos paquetes en un repositorio centralizado y luego descarga e instala autom\u00e1ticamente esas dependencias utilizando el repositorio de paquetes.<\/p>\n<p>Suponiendo que ya tienes <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer instalado<\/a> en tu entorno de trabajo PHP, \u00e9ste es el aspecto de su proceso de descarga e instalaci\u00f3n de dependencias:<\/p>\n<ol>\n<li>Define las dependencias necesarias para tu proyecto en un archivo <strong>composer.json<\/strong> en el directorio ra\u00edz de tu proyecto. Este archivo incluye informaci\u00f3n sobre las bibliotecas necesarias y sus versiones, as\u00ed como cualquier otro ajuste de configuraci\u00f3n o dependencia de dichas bibliotecas.<\/li>\n<li>Resuelve las dependencias en Composer con comandos como <code>install<\/code> para instalar las dependencias necesarias; <code>update<\/code> para actualizar las dependencias existentes; y <code>require<\/code> para a\u00f1adir nuevas dependencias al archivo <strong>composer.json<\/strong>. Cuando ejecutas un comando, Composer lee el archivo <strong>composer.json<\/strong> para determinar las dependencias necesarias, comprueba en el repositorio de paquetes la \u00faltima versi\u00f3n de cada dependencia adecuada para tu entorno PHP y, a continuaci\u00f3n, comprueba si hay conflictos o restricciones de versi\u00f3n.<\/li>\n<li>Composer descarga e instala las dependencias necesarias, incluidas las bibliotecas, en el directorio <strong>vendor<\/strong>\u00a0de tu proyecto. Composer crea un archivo <strong>composer.lock<\/strong> que registra las versiones exactas de las dependencias instaladas.<\/li>\n<li>Composer configura un cargador autom\u00e1tico que carga autom\u00e1ticamente las clases y funciones de las dependencias instaladas. Esto facilita el uso de las bibliotecas instaladas en tu proyecto sin tener que incluir manualmente cada archivo.<\/li>\n<\/ol>\n<p>En resumen, Composer simplifica la gesti\u00f3n de dependencias en los <a href=\"https:\/\/kinsta.com\/es\/cuota-mercado-php\/\">proyectos PHP<\/a>, facilitando la instalaci\u00f3n, actualizaci\u00f3n y uso de bibliotecas y frameworks externos.<\/p>\n<h2>Crear y publicar un paquete Composer<\/h2>\n<p>Este tutorial te muestra c\u00f3mo crear una sencilla biblioteca PHP llamada <strong>tempconv<\/strong> que convierte la temperatura Celsius a Fahrenheit y viceversa, y termina public\u00e1ndola como paquete Composer.<\/p>\n<h3>Requisitos previos<\/h3>\n<p>Necesitar\u00e1s un par de cosas antes de empezar:<\/p>\n<ul>\n<li>PHP y Composer instalados correctamente en tu sistema. En el momento de escribir esto, la \u00faltima versi\u00f3n de Composer es la v2.6.6, pero estas instrucciones deber\u00edan funcionar con cualquier variante de la v2.<\/li>\n<li><a href=\"https:\/\/github.com\/signup\">Una cuenta de GitHub<\/a> para crear un repositorio donde alojar tu c\u00f3digo.<\/li>\n<li><a href=\"https:\/\/packagist.org\/\">Una cuenta Packagist<\/a> para publicar tu biblioteca.<\/li>\n<\/ul>\n<h3>Crear un repositorio del proyecto<\/h3>\n<p>Crea tu propio repositorio de GitHub para este tutorial, donde podr\u00e1s publicar el c\u00f3digo y los archivos de tu biblioteca terminada.<\/p>\n<figure style=\"width: 1536px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-github-repository.png\" alt=\"Captura de pantalla de la p\u00e1gina que se ve al crear un repositorio en GitHub.\" width=\"1536\" height=\"1408\"><figcaption class=\"wp-caption-text\">Crear el repositorio del proyecto en GitHub.<\/figcaption><\/figure>\n<p>Este tutorial utiliza el nombre de proyecto <strong>tempconv<\/strong>. En el campo Descripci\u00f3n, proporciona breves detalles sobre la aplicaci\u00f3n. Marca la casilla para a\u00f1adir un archivo README, elige la plantilla Composer para la opci\u00f3n <strong>A\u00f1adir .gitignore<\/strong>, y selecciona una licencia de tu elecci\u00f3n\u2014este tutorial utiliza la<strong> Licencia MIT<\/strong>. Por \u00faltimo, haz clic en <strong>Crear repositorio<\/strong>.<\/p>\n<h3>Clona el repositorio<\/h3>\n<p>Clona el repositorio que acabas de crear en tu m\u00e1quina local. No olvides sustituir la URL por la tuya, tanto aqu\u00ed como a lo largo de este tutorial:<\/p>\n<pre><code class=\"language-bash\">$ git clone https:\/\/github.com\/rexfordnyrk\/tempconv.git<\/code><\/pre>\n<p>Esto crea un directorio llamado <strong>tempconv<\/strong> en tu directorio de trabajo actual. En este momento, s\u00f3lo contiene los archivos <strong>README.md<\/strong>, <strong>LICENSE<\/strong> y <strong>.gitignore<\/strong>, pero tambi\u00e9n crear\u00e1s aqu\u00ed los archivos de tu paquete.<\/p>\n<h3>Crear tu biblioteca PHP<\/h3>\n<p>En el directorio de tu proyecto, a\u00f1ade un archivo llamado <strong>TemperatureConverter.php<\/strong> con el siguiente c\u00f3digo:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace RexfordnyrkTempconv;\n\nclass TemperatureConverter\n{\n    \/\/Caller must provide the temperature value and the unit either C Celsius or F Fahrenheit\n    public function convert($temperature, $unit)\n    {\n        \/\/Checking whether the unit we're working with is Celsius or Fahrenheit\n        if ($unit === 'C') {\n            $fahrenheit = ($temperature * 9 \/ 5) + 32;\n            return $fahrenheit;\n        } elseif ($unit === 'F') {\n            $celsius = ($temperature - 32) * 5 \/ 9;\n            return $celsius;\n        } else {\n            \/\/Throwing error if the unit provided is neither C nor F\n            throw new InvalidArgumentException('Invalid unit, only C (Celsius) or F (Fahrenheit) are allowed');\n        }\n    }\n}<\/code><\/pre>\n<p>Esta clase tiene un \u00fanico m\u00e9todo llamado <code>convert<\/code> que toma la temperatura y la unidad como argumentos y devuelve la temperatura convertida. Lanza una excepci\u00f3n si la unidad no es v\u00e1lida.<\/p>\n<p>Por ahora es suficiente. En un escenario real, probablemente escribir\u00edas pruebas unitarias para asegurarte de que tu c\u00f3digo funciona como se espera tras modificaciones o actualizaciones.<\/p>\n<h2>Crear tu paquete composer.<\/h2>\n<p>Con el c\u00f3digo de tu biblioteca en su sitio, es hora de convertirlo en un paquete Composer. Generar\u00e1s un archivo <strong>composer.json<\/strong> para tu paquete utilizando un asistente paso a paso, y trataremos algunas de las mejores pr\u00e1cticas para organizar tu c\u00f3digo como un paquete antes de enviarlo a tu repositorio.<\/p>\n<h3>Generar un archivo de paquete composer.json<\/h3>\n<p>Aunque podr\u00edas escribir manualmente el contenido de un archivo <strong>composer.json<\/strong> en la ra\u00edz del directorio de tu proyecto, es mejor generarlo utilizando el siguiente comando de Composer:<\/p>\n<pre><code class=\"language-bash\">$ composer init<\/code><\/pre>\n<p>Este comando te lleva a trav\u00e9s de un peque\u00f1o asistente paso a paso. Las respuestas que des a preguntas como el nombre del paquete, la descripci\u00f3n, la informaci\u00f3n sobre el autor y el tipo de licencia generar\u00e1n el archivo <strong>composer.json<\/strong> de tu paquete.<\/p>\n<p>La <a href=\"https:\/\/getcomposer.org\/doc\/04-schema.md\" target=\"_blank\" rel=\"noopener noreferrer\">documentaci\u00f3n de Composer<\/a> describe los valores esperados, as\u00ed como otras opciones que puedes utilizar para definir el <strong>composer.json<\/strong> de tu proyecto.<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-init-wizard.png\" alt=\"Captura de pantalla del generador de configuraciones de Composer en acci\u00f3n.\" width=\"960\" height=\"1047\"><figcaption class=\"wp-caption-text\">Utilizar <strong>composer init<\/strong> para generar una configuraci\u00f3n.<\/figcaption><\/figure>\n<p>Observa que el asistente proporciona respuestas predefinidas a las preguntas cuando procede, como obtener tu nombre y correo electr\u00f3nico de git. Si quieres, puedes cambiarlas.<\/p>\n<p>Esta biblioteca no depende de ning\u00fan otro paquete para funcionar, as\u00ed que puedes responder <strong>No<\/strong> a las preguntas que especifican dependencias.<\/p>\n<p>El asistente te muestra una vista previa del contenido del archivo generado y te pide que lo confirmes para completar el asistente.<\/p>\n<h3>Organizar los archivos del paquete<\/h3>\n<p>Al completar el asistente se crean dos directorios adem\u00e1s del archivo <strong>composer.json<\/strong>:<\/p>\n<ul>\n<li><strong>src<\/strong> para tu c\u00f3digo fuente<\/li>\n<li><strong>vendor<\/strong> para tus dependencias descargadas<\/li>\n<\/ul>\n<p>Mueve el archivo <strong>TemperatureConverter.php<\/strong> al directorio <strong>src<\/strong>. Si tu biblioteca tiene dependencias, ejecuta <code>composer install<\/code> para generar el autoloader e instalar las dependencias del paquete.<\/p>\n<h3>Subir el c\u00f3digo a GitHub<\/h3>\n<p>A\u00f1ade tus cambios y archivos nuevos a git:<\/p>\n<pre><code class=\"language-bash\">$ git add -A<\/code><\/pre>\n<p>Haz commit de los cambios realizados en el repositorio local y env\u00edalo al repositorio remoto en GitHub para que puedas publicar f\u00e1cilmente el proyecto en la siguiente secci\u00f3n:<\/p>\n<pre><code class=\"language-bash\">$ git commit -am \"Initial Release\" && git push<\/code><\/pre>\n<h3>Crear una versi\u00f3n de lanzamiento para tu biblioteca<\/h3>\n<p>Con tu c\u00f3digo en tu repositorio, puedes crear una versi\u00f3n de tu biblioteca con un n\u00famero de versi\u00f3n para que otros desarrolladores puedan hacer un seguimiento de tus actualizaciones estables e importantes.<\/p>\n<p>Accede a tu repositorio en GitHub y haz clic en <strong>Releases (Versiones)<\/strong>, debajo de la secci\u00f3n <strong>About (Acerca de)<\/strong>. En la p\u00e1gina Releases, donde se espera que no tengas nada en este momento, haz clic en <strong>Create a new release (Crear una nueva versi\u00f3n)<\/strong>.<\/p>\n<figure style=\"width: 1839px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-github-releases.png\" alt=\"Una captura de pantalla de la p\u00e1gina Releases de GitHub.\" width=\"1839\" height=\"684\"><figcaption class=\"wp-caption-text\">P\u00e1gina <strong>Releases<\/strong> de GitHub.<\/figcaption><\/figure>\n<p>Rellena algunos detalles sobre tu publicaci\u00f3n, como la versi\u00f3n de la etiqueta y el t\u00edtulo de la publicaci\u00f3n. La versi\u00f3n de la etiqueta debe ser un identificador \u00fanico para esta versi\u00f3n (ejemplo: <em>v1.0.0<\/em>), y el t\u00edtulo de la versi\u00f3n debe describir los cambios incluidos en la versi\u00f3n (ejemplo: <em>Versi\u00f3n inicial<\/em>).<\/p>\n<p>Opcionalmente, puedes a\u00f1adir una descripci\u00f3n de la versi\u00f3n. Si quieres subir un archivo, como un binario compilado o un archivo de c\u00f3digo fuente, arrastra y suelta el archivo en el \u00e1rea <strong>Adjuntar binarios solt\u00e1ndolos aqu\u00ed o seleccion\u00e1ndolos (Attach binaries by dropping them here or selecting them)<\/strong>, pero eso no es necesario para este tutorial.<\/p>\n<figure style=\"width: 1897px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-github-releases-details.png\" alt=\"Captura de pantalla que muestra los detalles introducidos en la p\u00e1gina Releases de GitHub.\" width=\"1897\" height=\"1302\"><figcaption class=\"wp-caption-text\">Introducir los detalles de la versi\u00f3n inicial en GitHub.<\/figcaption><\/figure>\n<p>Haz clic en <strong>Publicar versi\u00f3n (Publish release)<\/strong>\u00a0para crear la versi\u00f3n.<\/p>\n<p>Tu proyecto deber\u00eda estar ahora disponible en la p\u00e1gina <strong>Lanzamientos (Releases)<\/strong> de tu repositorio. Los usuarios pueden descargar cualquier archivo que hayas adjuntado y ver las notas de la versi\u00f3n. Adem\u00e1s, si has a\u00f1adido una etiqueta a la publicaci\u00f3n, otros desarrolladores pueden utilizarla para comprobar el c\u00f3digo exacto que se ha incluido en la publicaci\u00f3n.<\/p>\n<p>Tu biblioteca est\u00e1 lista para compartirla con el mundo. Vamos a publicarla como paquete en Packagist.<\/p>\n<h2>Primeros pasos con Packagist<\/h2>\n<p>Packagist es el principal repositorio de paquetes para PHP. Proporciona una ubicaci\u00f3n central para que los desarrolladores publiquen y compartan sus paquetes PHP, y para que otros desarrolladores descubran y utilicen esos paquetes en sus propios proyectos. \u00a1Vamos a publicar tu paquete!<\/p>\n<p>Navega hasta el <a href=\"https:\/\/packagist.org\/\">sitio web de Packagist<\/a>, haz clic en <strong>Iniciar sesi\u00f3n<\/strong> y selecciona <strong>GitHub<\/strong> como m\u00e9todo de inicio de sesi\u00f3n para utilizar tu cuenta de GitHub para la autenticaci\u00f3n.<\/p>\n<figure style=\"width: 900px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-signup.png\" alt=\"Captura de pantalla que muestra la p\u00e1gina de autorizaci\u00f3n de Packagist a trav\u00e9s de GitHub.\" width=\"900\" height=\"964\"><figcaption class=\"wp-caption-text\">Registrarse en Packagist con GitHub.<\/figcaption><\/figure>\n<p>Haz clic en <strong>Autorizar<\/strong> para conceder permiso a Packagist para acceder a tu cuenta.<\/p>\n<figure style=\"width: 1178px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-login.png\" alt=\"Captura de pantalla de un usuario conectado a Packagist.\" width=\"1178\" height=\"326\"><figcaption class=\"wp-caption-text\">Inicio de sesi\u00f3n con \u00e9xito en Packagist con GitHub.<\/figcaption><\/figure>\n<h3>Enviar tu paquete Composer a Packagist<\/h3>\n<p>Para publicar un paquete en Packagist, env\u00eda el repositorio de GitHub que contiene el archivo <strong>composer.json<\/strong> que describe tu paquete y sus dependencias. Haz clic en <strong>Enviar<\/strong> en el sitio de Packagist, indica la URL de tu repositorio en la p\u00e1gina que aparece y haz clic en <strong>Comprobar<\/strong> para validarlo.<\/p>\n<p>Si el repositorio es v\u00e1lido, Packagist detecta el nombre del paquete, y el bot\u00f3n <strong>Comprobar<\/strong> se convierte en <strong>Enviar<\/strong>.<\/p>\n<figure id=\"attachment_174185\" aria-describedby=\"caption-attachment-174185\" style=\"width: 1156px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-174185 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-validated.png\" alt=\"Captura de pantalla de los detalles del paquete Composer listos para enviar a Packagist.\" width=\"1156\" height=\"502\"><figcaption id=\"caption-attachment-174185\" class=\"wp-caption-text\">Paquete compositor <strong>rexfordnyrk\/tempconv<\/strong> validado y listo para enviar.<\/figcaption><\/figure>\n<p>Haz clic en <strong>Enviar<\/strong>, y Packagist tardar\u00e1 un momento en configurar y publicar tu proyecto.<\/p>\n<figure style=\"width: 1312px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-published.png\" alt=\"Captura de pantalla de los detalles del paquete Composer despu\u00e9s de publicarlo.\" width=\"1312\" height=\"1023\"><figcaption class=\"wp-caption-text\">Paquete Composer publicado correctamente.<\/figcaption><\/figure>\n<p>\u00a1Ya est\u00e1! Tu paquete ya est\u00e1 disponible en Packagist para que otros desarrolladores lo utilicen como dependencia en sus propios proyectos.<\/p>\n<h2>Utilizar tu paquete Composer en otros proyectos<\/h2>\n<p>Puedes utilizar tu paquete publicado en otros proyectos a\u00f1adi\u00e9ndolo como dependencia en el archivo <strong>composer.json<\/strong>. Puedes crear y editar manualmente el archivo, pero es mejor utilizar el comando Composer como se indica a continuaci\u00f3n:<\/p>\n<pre><code class=\"language-bash\">$ composer require rexfordnyrk\/tempconv<\/code><\/pre>\n<p>Composer crea autom\u00e1ticamente el archivo <strong>composer.json<\/strong> si a\u00fan no existe, luego busca, descarga y carga autom\u00e1ticamente el paquete desde Packagist. El resultado deber\u00eda ser algo parecido a esto<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/requiring-package-in-composer.png\" alt=\"Captura de pantalla del terminal tras a\u00f1adir una biblioteca a un proyecto con Composer.\" width=\"960\" height=\"323\"><\/p>\n<p>Crea un archivo <strong>demo.php<\/strong> que contenga el c\u00f3digo de tu aplicaci\u00f3n de demostraci\u00f3n para trabajar con tu biblioteca.<br \/>\nA continuaci\u00f3n, puedes utilizar la clase <code>TemperatureConverter<\/code> en el c\u00f3digo de tu aplicaci\u00f3n de la siguiente manera:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nuse RexfordnyrkTempconvTemperatureConverter;\n\nrequire_once '.\/vendor\/autoload.php';\n\n$converter =  new TemperatureConverter();\n\n$fahrenheit = $converter-&gt;convert(20, 'C');\necho \"20\u00b0C is equivalent to $fahrenheit \u00b0Fn\";\n\n$celsius = $converter-&gt;convert(68, 'F');\necho \"68\u00b0F is equivalent to $celsius \u00b0Cn\";<\/code><\/pre>\n<p>Este c\u00f3digo utiliza la clase <code>TemperatureConverter<\/code> para convertir las temperaturas 20 Celsius y 68 Fahrenheit y mostrar los resultados. El archivo importado <strong>autoloader.php<\/strong> fue creado por Composer para cargar todas las dependencias que necesites. Esto se encarga de cargar la clase autom\u00e1ticamente cuando es necesario.<\/p>\n<p>Por \u00faltimo, ejecuta este c\u00f3digo en tu terminal:<\/p>\n<pre><code class=\"language-bash\">$ php demo.php<\/code><\/pre>\n<p>Deber\u00edas tener una salida similar a \u00e9sta:<\/p>\n<pre><code class=\"language-bash\">$ php demo.php\n20\u00b0C is equivalent to 68 \u00b0F\n68\u00b0F is equivalent to 20 \u00b0C<\/code><\/pre>\n<h2>Resumen<\/h2>\n<p>Acabas de crear una sencilla biblioteca PHP que convierte la temperatura de Celsius a Fahrenheit y viceversa en una clase orientada a objetos que puede reutilizarse en otras aplicaciones. Has visto c\u00f3mo utilizar Composer para crear un paquete a partir de la clase con el comando Composer Init, y has aprendido algunas buenas pr\u00e1cticas b\u00e1sicas de organizaci\u00f3n del c\u00f3digo para tu biblioteca. Publicaste tu biblioteca en Packagist, para que t\u00fa y otros desarrolladores pudierais utilizarla como dependencia en otros proyectos.<\/p>\n<p>Por supuesto, una vez que hayas terminado de desarrollar tu aplicaci\u00f3n, necesitar\u00e1s alojarla. Lleva tu desarrollo PHP al siguiente nivel con el <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Alojamiento de Aplicaciones Web<\/a> en Kinsta. Puedes desplegar tu <a href=\"https:\/\/docs.sevalla.com\/templates\/overviewphp-examples\">aplicaci\u00f3n PHP basada en Composer<\/a> en cuesti\u00f3n de minutos. S\u00f3lo tienes que <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/add-an-application\">a\u00f1adir tu aplicaci\u00f3n<\/a> a trav\u00e9s del repositorio git de tu proyecto, y Kinsta se encarga del resto. Detecta autom\u00e1ticamente el archivo Composer y construye tu aplicaci\u00f3n autom\u00e1ticamente. \u00a1<a href=\"https:\/\/sevalla.com\/pricing\/\">Empieza<\/a> hoy mismo sin riesgos!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con la reutilizaci\u00f3n del c\u00f3digo surge el problema de la gesti\u00f3n de dependencias, hist\u00f3ricamente un proceso bastante manual y propenso a errores. Afortunadamente, en los \u00faltimos &#8230;<\/p>\n","protected":false},"author":306,"featured_media":73270,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1337,1336],"class_list":["post-73269","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-herramientas-de-desarrollo-web","topic-lenguajes-desarrollo-web"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo crear tu propio paquete Composer y publicarlo - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Has construido una biblioteca PHP impresionante, ahora comparte su c\u00f3digo con otros desarrolladores mediante la creaci\u00f3n de tu propio paquete Composer.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo crear tu propio paquete Composer\" \/>\n<meta property=\"og:description\" content=\"Has construido una biblioteca PHP impresionante, ahora comparte su c\u00f3digo con otros desarrolladores mediante la creaci\u00f3n de tu propio paquete Composer.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-01T12:49:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-15T16:41:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rexford Nyarko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Has construido una biblioteca PHP impresionante, ahora comparte su c\u00f3digo con otros desarrolladores mediante la creaci\u00f3n de tu propio paquete Composer.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rexford Nyarko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/\"},\"author\":{\"name\":\"Rexford Nyarko\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c\"},\"headline\":\"C\u00f3mo crear tu propio paquete Composer\",\"datePublished\":\"2024-02-01T12:49:17+00:00\",\"dateModified\":\"2024-02-15T16:41:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/\"},\"wordCount\":2202,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/\",\"name\":\"C\u00f3mo crear tu propio paquete Composer y publicarlo - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg\",\"datePublished\":\"2024-02-01T12:49:17+00:00\",\"dateModified\":\"2024-02-15T16:41:13+00:00\",\"description\":\"Has construido una biblioteca PHP impresionante, ahora comparte su c\u00f3digo con otros desarrolladores mediante la creaci\u00f3n de tu propio paquete Composer.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Herramientas de Desarrollo Web\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/herramientas-de-desarrollo-web\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"C\u00f3mo crear tu propio paquete Composer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c\",\"name\":\"Rexford Nyarko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8ea3fcc13c21943da23935661f79d708?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8ea3fcc13c21943da23935661f79d708?s=96&d=mm&r=g\",\"caption\":\"Rexford Nyarko\"},\"description\":\"Rexford Nyarko is a solution architect with a background in software and network systems, cloud environments, server administration, and various database technologies. Rexford particularly enjoys explaining technical concepts to non-technical audiences.\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/rexfordnyarko\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo crear tu propio paquete Composer y publicarlo - Kinsta\u00ae","description":"Has construido una biblioteca PHP impresionante, ahora comparte su c\u00f3digo con otros desarrolladores mediante la creaci\u00f3n de tu propio paquete Composer.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo crear tu propio paquete Composer","og_description":"Has construido una biblioteca PHP impresionante, ahora comparte su c\u00f3digo con otros desarrolladores mediante la creaci\u00f3n de tu propio paquete Composer.","og_url":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2024-02-01T12:49:17+00:00","article_modified_time":"2024-02-15T16:41:13+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg","type":"image\/jpeg"}],"author":"Rexford Nyarko","twitter_card":"summary_large_image","twitter_description":"Has construido una biblioteca PHP impresionante, ahora comparte su c\u00f3digo con otros desarrolladores mediante la creaci\u00f3n de tu propio paquete Composer.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Rexford Nyarko","Tiempo de lectura":"12 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/"},"author":{"name":"Rexford Nyarko","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c"},"headline":"C\u00f3mo crear tu propio paquete Composer","datePublished":"2024-02-01T12:49:17+00:00","dateModified":"2024-02-15T16:41:13+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/"},"wordCount":2202,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/","url":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/","name":"C\u00f3mo crear tu propio paquete Composer y publicarlo - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg","datePublished":"2024-02-01T12:49:17+00:00","dateModified":"2024-02-15T16:41:13+00:00","description":"Has construido una biblioteca PHP impresionante, ahora comparte su c\u00f3digo con otros desarrolladores mediante la creaci\u00f3n de tu propio paquete Composer.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/02\/create-composer-package.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/crear-paquete-composer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Herramientas de Desarrollo Web","item":"https:\/\/kinsta.com\/es\/secciones\/herramientas-de-desarrollo-web\/"},{"@type":"ListItem","position":3,"name":"C\u00f3mo crear tu propio paquete Composer"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c","name":"Rexford Nyarko","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8ea3fcc13c21943da23935661f79d708?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8ea3fcc13c21943da23935661f79d708?s=96&d=mm&r=g","caption":"Rexford Nyarko"},"description":"Rexford Nyarko is a solution architect with a background in software and network systems, cloud environments, server administration, and various database technologies. Rexford particularly enjoys explaining technical concepts to non-technical audiences.","url":"https:\/\/kinsta.com\/es\/blog\/author\/rexfordnyarko\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/73269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/306"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=73269"}],"version-history":[{"count":5,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/73269\/revisions"}],"predecessor-version":[{"id":73611,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/73269\/revisions\/73611"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73269\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73269\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73269\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73269\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73269\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73269\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73269\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73269\/translations\/es"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73269\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/73270"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=73269"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=73269"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=73269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}