{"id":68590,"date":"2024-02-01T13:44:25","date_gmt":"2024-02-01T12:44:25","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=68590&#038;preview=true&#038;preview_id=68590"},"modified":"2024-02-29T08:54:14","modified_gmt":"2024-02-29T07:54:14","slug":"composer-paket-erstellen","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/","title":{"rendered":"Eigenes Composer-Paket erstellen"},"content":{"rendered":"<p>Die Wiederverwendung von Code bringt das Problem des Abh\u00e4ngigkeitsmanagements mit sich, das traditionell ein eher manueller und fehleranf\u00e4lliger Prozess ist. Gl\u00fccklicherweise haben die meisten Programmiersprachen dieses Problem in den letzten Jahren durch die Einf\u00fchrung verschiedener Tools f\u00fcr das Abh\u00e4ngigkeitsmanagement gel\u00f6st. Im <a href=\"https:\/\/kinsta.com\/php\/\">PHP-\u00d6kosystem<\/a> hat sich der <a href=\"https:\/\/kinsta.com\/de\/blog\/composer-installieren\/\">Composer<\/a> dank seiner Benutzerfreundlichkeit, Flexibilit\u00e4t und weiten Verbreitung zum Standard entwickelt.<\/p>\n<p>Auch wenn Composer f\u00fcr die Verwaltung von Abh\u00e4ngigkeiten entwickelt wurde, kannst du ihn auch f\u00fcr andere Aufgaben verwenden:<\/p>\n<ul>\n<li><strong>Autoloading:<\/strong> Automatisches Laden von Klassen und Funktionen aus externen Bibliotheken, um sie in deinem Code leicht zug\u00e4nglich zu machen und die Integration von externem Code in dein Projekt zu vereinfachen.<\/li>\n<li><strong>Codegenerierung:<\/strong> Erstelle Standardcode f\u00fcr dein Projekt, wie z. B. Konfigurationsdateien oder andere h\u00e4ufig verwendete Codeschnipsel, um den Entwicklungsprozess zu beschleunigen und Konsistenz zu gew\u00e4hrleisten.<\/li>\n<li><strong>Skripting:<\/strong> Ein integriertes Skripting-System kann g\u00e4ngige Aufgaben automatisieren, z. B. die Durchf\u00fchrung von Tests oder die Erstellung von Dokumentation aus deiner Codebasis. Dies kann dazu beitragen, deinen Entwicklungsprozess zu rationalisieren und die manuelle Arbeit zu reduzieren.<\/li>\n<\/ul>\n<p>Diese Anleitung f\u00fchrt dich Schritt f\u00fcr Schritt durch die Erstellung deines eigenen Composer-Pakets und dessen Ver\u00f6ffentlichung auf <a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Packagist<\/a>, einem Repository f\u00fcr PHP-Pakete, das Entwickler auf der ganzen Welt in ihren eigenen Projekten nutzen k\u00f6nnen.<\/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>Wie funktioniert Composer?<\/h2>\n<p>Zuerst m\u00fcssen wir sicherstellen, dass wir Composer verstehen. Einfach ausgedr\u00fcckt: Composer arbeitet mit einer <strong>composer.json-Datei<\/strong>, die die Definitionen f\u00fcr die Abh\u00e4ngigkeiten in deinem PHP-Projekt enth\u00e4lt. Er sucht diese Pakete in einem zentralen Repository und l\u00e4dt diese Abh\u00e4ngigkeiten dann automatisch herunter und installiert sie \u00fcber das Package Repo.<\/p>\n<p>Angenommen, du hast <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a> bereits in deiner PHP-Arbeitsumgebung installiert, so sieht der Prozess des Herunterladens und der Installation der Abh\u00e4ngigkeiten folgenderma\u00dfen aus:<\/p>\n<ol>\n<li>Definiere die erforderlichen Abh\u00e4ngigkeiten f\u00fcr dein Projekt in einer <strong>composer.json-Datei<\/strong> im Stammverzeichnis deines Projekts. Diese Datei enth\u00e4lt Informationen \u00fcber die ben\u00f6tigten Bibliotheken und ihre Versionen sowie alle anderen Konfigurationseinstellungen oder Abh\u00e4ngigkeiten f\u00fcr diese Bibliotheken.<\/li>\n<li>Du kannst die Abh\u00e4ngigkeiten im Composer mit Befehlen wie <code>install<\/code> aufl\u00f6sen, um die erforderlichen Abh\u00e4ngigkeiten zu installieren, <code>update<\/code>, um bestehende Abh\u00e4ngigkeiten zu aktualisieren, und <code>require<\/code>, um neue Abh\u00e4ngigkeiten zur <strong>composer.json-Datei<\/strong> hinzuzuf\u00fcgen. Wenn du einen Befehl ausf\u00fchrst, liest der Composer die <strong>composer.json-Datei<\/strong>, um die erforderlichen Abh\u00e4ngigkeiten zu ermitteln, sucht im Paketarchiv nach der neuesten Version jeder Abh\u00e4ngigkeit, die f\u00fcr deine PHP-Umgebung geeignet ist, und pr\u00fcft dann auf Konflikte oder Versionseinschr\u00e4nkungen.<\/li>\n<li>Der Composer l\u00e4dt die erforderlichen Abh\u00e4ngigkeiten, einschlie\u00dflich der Bibliotheken, herunter und installiert sie in das <strong>Vendor-Verzeichnis<\/strong> deines Projekts. Der Composer erstellt eine <strong>composer.lock-Datei<\/strong>, in der die genauen Versionen der installierten Abh\u00e4ngigkeiten festgehalten werden.<\/li>\n<li>Der Composer richtet einen Autoloader ein, der automatisch Klassen und Funktionen aus den installierten Abh\u00e4ngigkeiten l\u00e4dt. So kannst du die installierten Bibliotheken ganz einfach in deinem Projekt verwenden, ohne dass du jede Datei manuell einbinden musst.<\/li>\n<\/ol>\n<p>Kurz gesagt: Composer vereinfacht die Verwaltung von Abh\u00e4ngigkeiten in <a href=\"https:\/\/kinsta.com\/de\/php-marktanteil\/\">PHP-Projekten<\/a> und macht es einfach, externe Bibliotheken und Frameworks zu installieren, zu aktualisieren und zu nutzen.<\/p>\n<h2>Erstellen und Ver\u00f6ffentlichen eines Composer-Pakets<\/h2>\n<p>Dieses Tutorial zeigt dir, wie du eine einfache PHP-Bibliothek namens <strong>tempconv<\/strong> erstellst, die Celsius-Temperaturen in Fahrenheit umwandelt und umgekehrt, und wie du sie als Composer-Paket ver\u00f6ffentlichst.<\/p>\n<h3>Voraussetzungen<\/h3>\n<p>Bevor du anf\u00e4ngst, musst du ein paar Dinge vorbereiten:<\/p>\n<ul>\n<li>PHP und Composer m\u00fcssen ordnungsgem\u00e4\u00df auf deinem System installiert sein. Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Composer-Version v2.6.6, aber diese Anleitung sollte mit jeder v2-Variante funktionieren.<\/li>\n<li><a href=\"https:\/\/github.com\/signup\" target=\"_blank\" rel=\"noopener noreferrer\">Ein GitHub-Konto<\/a>, um ein Repository zu erstellen, in dem dein Code gespeichert wird.<\/li>\n<li><a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ein Packagist-Konto<\/a>, um deine Bibliothek zu ver\u00f6ffentlichen.<\/li>\n<\/ul>\n<h3>Erstelle ein Projekt-Repository<\/h3>\n<p>Erstelle dein eigenes GitHub-Repository f\u00fcr dieses Tutorial, in das du deinen fertigen Bibliothekscode und deine Dateien hochladen kannst.<\/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=\"Screenshot der Seite, die beim Erstellen eines Repositorys auf GitHub angezeigt wird.\" width=\"1536\" height=\"1408\"><figcaption class=\"wp-caption-text\">Erstellen des Projektarchivs auf GitHub<\/figcaption><\/figure>\n<p>In diesem Lernprogramm wird der Projektname <strong>tempconv<\/strong> verwendet. Gib im Feld Beschreibung kurze Informationen \u00fcber die Anwendung an. Aktiviere das Kontrollk\u00e4stchen, um eine README-Datei hinzuzuf\u00fcgen, w\u00e4hle die Composer-Vorlage f\u00fcr die Option <strong>.gitignore hinzuf\u00fcgen<\/strong> und w\u00e4hle eine Lizenz deiner Wahl &#8211; in diesem Lehrgang wird die <strong>MIT-Lizenz<\/strong> verwendet. Zum Schluss klickst du auf <strong>Repository erstellen<\/strong>.<\/p>\n<h3>Das Repository klonen<\/h3>\n<p>Klone das Repository, das du gerade erstellt hast, auf deinen lokalen Rechner. Vergiss nicht, die URL durch deine eigene zu ersetzen, sowohl hier als auch in diesem Leitfaden:<\/p>\n<pre><code class=\"language-bash\">$ git clone https:\/\/github.com\/rexfordnyrk\/tempconv.git<\/code><\/pre>\n<p>Dadurch wird ein Verzeichnis namens <strong>tempconv<\/strong> in deinem aktuellen Arbeitsverzeichnis erstellt. Zu diesem Zeitpunkt enth\u00e4lt es nur die Dateien <strong>README.md<\/strong>, <strong>LICENSE<\/strong> und <strong>.gitignore<\/strong>, aber du wirst hier auch deine Paketdateien erstellen.<\/p>\n<h3>Erstellen deiner PHP-Bibliothek<\/h3>\n<p>F\u00fcge in deinem Projektverzeichnis eine Datei namens <strong>TemperatureConverter.php<\/strong> mit folgendem Code hinzu:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace Rexfordnyrk\\Tempconv;\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>Diese Klasse hat eine einzige Methode namens <code>convert<\/code>, die die Temperatur und die Einheit als Argumente annimmt und die umgewandelte Temperatur zur\u00fcckgibt. Sie l\u00f6st eine Ausnahme aus, wenn die Einheit ung\u00fcltig ist.<\/p>\n<p>Das ist genug f\u00fcr den Moment. In einem realen Szenario w\u00fcrdest du wahrscheinlich Unit-Tests schreiben, um sicherzustellen, dass dein Code nach \u00c4nderungen oder Aktualisierungen wie erwartet funktioniert.<\/p>\n<h2>Erstelle dein Composer-Paket.<\/h2>\n<p>Wenn du deinen Bibliothekscode fertiggestellt hast, ist es an der Zeit, ihn zu einem Composer-Paket zu machen. Mit einem Schritt-f\u00fcr-Schritt-Assistenten erstellst du eine <strong>composer.json-Datei<\/strong> f\u00fcr dein Paket und wir besprechen einige Best Practices f\u00fcr die Organisation deines Codes als Paket, bevor du es in dein Repository einstellst.<\/p>\n<h3>Erzeugen einer composer.json-Paketdatei<\/h3>\n<p>Du kannst den Inhalt einer <strong>composer.json-Datei<\/strong> zwar manuell in das Stammverzeichnis deines Projekts schreiben, aber es ist besser, sie mit dem folgenden Composer-Befehl zu erstellen:<\/p>\n<pre><code class=\"language-bash\">$ composer init<\/code><\/pre>\n<p>Dieser Befehl f\u00fchrt dich durch einen kleinen Schritt-f\u00fcr-Schritt-Assistenten. Die Antworten, die du auf Fragen wie Paketname, Beschreibung, Autoreninformationen und Lizenztyp gibst, erzeugen die <strong>composer.json-Datei<\/strong> deines Pakets.<\/p>\n<p><a href=\"https:\/\/getcomposer.org\/doc\/04-schema.md\" target=\"_blank\" rel=\"noopener noreferrer\">In der Composer-Dokumentation<\/a> findest du die erwarteten Werte sowie weitere Optionen, mit denen du die <strong>composer.json-Datei<\/strong> deines Projekts definieren kannst.<\/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=\"Screenshot des Konfigurationsgenerators von Composer in Aktion.\" width=\"960\" height=\"1047\"><figcaption class=\"wp-caption-text\">Mit <strong>composer init<\/strong> eine Konfiguration erstellen<\/figcaption><\/figure>\n<p>Beachte, dass der Assistent vordefinierte Antworten auf die Fragen gibt, z. B. dass dein Name und deine E-Mail-Adresse von Git abgeleitet werden. Du kannst sie gerne \u00e4ndern, wenn du m\u00f6chtest.<\/p>\n<p>Diese Bibliothek ist in ihrer Funktionalit\u00e4t nicht von anderen Paketen abh\u00e4ngig, daher kannst du die Fragen nach Abh\u00e4ngigkeiten mit <strong>Nein<\/strong> beantworten.<\/p>\n<p>Der Assistent zeigt dir eine Vorschau des generierten Dateiinhalts und bittet dich, ihn zu best\u00e4tigen, um den Assistenten abzuschlie\u00dfen.<\/p>\n<h3>Organisieren der Paketdateien<\/h3>\n<p>Wenn du den Assistenten abschlie\u00dft, werden zus\u00e4tzlich zur <strong>composer.json-Datei<\/strong> zwei Verzeichnisse erstellt:<\/p>\n<ul>\n<li><strong>src<\/strong> f\u00fcr deinen Quellcode<\/li>\n<li><strong>vendor<\/strong> f\u00fcr deine heruntergeladenen Abh\u00e4ngigkeiten<\/li>\n<\/ul>\n<p>Verschiebe die Datei <strong>TemperatureConverter.php<\/strong> in das Verzeichnis <strong>src<\/strong>. Wenn deine Bibliothek Abh\u00e4ngigkeiten hat, f\u00fchre <code>composer install<\/code> aus, um den Autoloader zu erzeugen und die Paketabh\u00e4ngigkeiten zu installieren.<\/p>\n<h3>Hochladen des Codes auf GitHub<\/h3>\n<p>F\u00fcge deine \u00c4nderungen und neuen Dateien zu Git hinzu:<\/p>\n<pre><code class=\"language-bash\">$ git add -A<\/code><\/pre>\n<p>Commit die \u00c4nderungen im lokalen Repository und pushe sie in das Remote-Repository auf GitHub, damit du das Projekt im n\u00e4chsten Abschnitt einfach ver\u00f6ffentlichen kannst:<\/p>\n<pre><code class=\"language-bash\">$ git commit -am \"Initial Release\" && git push<\/code><\/pre>\n<h3>Eine Release-Version f\u00fcr deine Bibliothek erstellen<\/h3>\n<p>Wenn du deinen Code in deinem Repository hast, kannst du eine Version deiner Bibliothek mit einer Versionsnummer erstellen, damit andere Entwickler deine stabilen und wichtigen Updates verfolgen k\u00f6nnen.<\/p>\n<p>Navigiere zu deinem Repo auf GitHub und klicke unter dem Abschnitt <strong>About<\/strong> auf <strong>Releases<\/strong>. Auf der Seite Releases, auf der du im Moment vermutlich nichts hast, klickst du auf <strong>Create a new release<\/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=\"Ein Screenshot der GutHub-Seite f\u00fcr Ver\u00f6ffentlichungen.\" width=\"1839\" height=\"684\"><figcaption class=\"wp-caption-text\">Die <strong>Releases-Seite<\/strong> von GitHub<\/figcaption><\/figure>\n<p>Gib ein paar Details zu deiner Ver\u00f6ffentlichung an, z.B. die Tag-Version und den Titel der Ver\u00f6ffentlichung. Die Tag-Version sollte ein eindeutiger Bezeichner f\u00fcr diese Ver\u00f6ffentlichung sein (Beispiel: <em>v1.0.0<\/em>) und der Titel der Ver\u00f6ffentlichung sollte die \u00c4nderungen beschreiben, die in der Ver\u00f6ffentlichung enthalten sind (Beispiel: <em>Initial release<\/em>).<\/p>\n<p>Optional kannst du auch eine Beschreibung der Version hinzuf\u00fcgen. Wenn du eine Datei hochladen m\u00f6chtest, z. B. eine kompilierte Bin\u00e4rdatei oder ein Quellcode-Archiv, ziehe die Datei in den Bereich <strong>Bin\u00e4rdateien anh\u00e4ngen, indem du sie hier ablegst oder ausw\u00e4hlst<\/strong>, aber das ist f\u00fcr diesen Lehrgang nicht n\u00f6tig.<\/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=\"Screenshot der Details, die auf der GitHub-Seite f\u00fcr Ver\u00f6ffentlichungen eingegeben wurden.\" width=\"1897\" height=\"1302\"><figcaption class=\"wp-caption-text\">Eingabe der ersten Ver\u00f6ffentlichungsdetails auf GitHub<\/figcaption><\/figure>\n<p>Klicke auf <strong>Release ver\u00f6ffentlichen<\/strong>, um die Ver\u00f6ffentlichung zu erstellen.<\/p>\n<p>Dein Projekt sollte jetzt auf der Seite <strong>Releases<\/strong> deines Repositorys verf\u00fcgbar sein. Die Nutzer k\u00f6nnen alle angeh\u00e4ngten Dateien herunterladen und die Versionshinweise einsehen. Wenn du au\u00dferdem ein Tag f\u00fcr die Ver\u00f6ffentlichung hinzugef\u00fcgt hast, k\u00f6nnen andere Entwickler dieses Tag verwenden, um den genauen Code zu sehen, der in der Ver\u00f6ffentlichung enthalten ist.<\/p>\n<p>Deine Bibliothek ist nun bereit, mit der Welt geteilt zu werden. Ver\u00f6ffentlichen wir sie als Paket auf Packagist.<\/p>\n<h2>Erste Schritte mit Packagist<\/h2>\n<p>Packagist ist das wichtigste Paket-Repository f\u00fcr PHP. Es ist ein zentraler Ort, an dem Entwickler ihre PHP-Pakete ver\u00f6ffentlichen und mit anderen teilen k\u00f6nnen, damit andere Entwickler diese Pakete entdecken und in ihren eigenen Projekten verwenden k\u00f6nnen. Lass uns dein Paket ver\u00f6ffentlichen!<\/p>\n<p>Navigiere zur <a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Packagist-Website<\/a>, klicke auf <strong>Anmelden<\/strong> und w\u00e4hle <strong>GitHub<\/strong> als Anmeldemethode, um dein GitHub-Konto zur Authentifizierung zu verwenden.<\/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=\"Screenshot der Packagist Autorisierungsseite \u00fcber GitHub.\" width=\"900\" height=\"964\"><figcaption class=\"wp-caption-text\">Anmeldung bei Packagist mit GitHub<\/figcaption><\/figure>\n<p>Klicke auf <strong>Autorisieren<\/strong>, um Packagist die Erlaubnis zu geben, auf dein Konto zuzugreifen.<\/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=\"Screenshot eines Benutzers, der bei Packagist angemeldet ist.\" width=\"1178\" height=\"326\"><figcaption class=\"wp-caption-text\">Erfolgreiche Anmeldung bei Packagist mit GitHub<\/figcaption><\/figure>\n<h3>Einreichen deines Composer-Pakets auf Packagist<\/h3>\n<p>Um ein Paket auf Packagist zu ver\u00f6ffentlichen, reiche das GitHub-Repository mit der <strong>composer.json-Datei<\/strong> ein, die dein Paket und seine Abh\u00e4ngigkeiten beschreibt. Klicke auf der Packagist-Website auf <strong>Einreichen<\/strong>, gib auf der angezeigten Seite die URL deines Repos an und klicke auf <strong>Pr\u00fcfen<\/strong>, um es zu validieren.<\/p>\n<p>Wenn das Repository g\u00fcltig ist, erkennt Packagist den Namen des Pakets und die Schaltfl\u00e4che <strong>\u00dcberpr\u00fcfen<\/strong> wird zu <strong>\u00dcbermitteln<\/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=\"Screenshot der Composer-Paketdetails, die f\u00fcr die \u00dcbermittlung an Packagist bereit sind.\" width=\"1156\" height=\"502\"><figcaption id=\"caption-attachment-174185\" class=\"wp-caption-text\">Das Composer-Paket <strong>rexfordnyrk\/tempconv<\/strong> ist validiert und bereit zum Einreichen<\/figcaption><\/figure>\n<p>Klicke auf <strong>Abschicken<\/strong> und Packagist nimmt sich einen Moment Zeit, um dein Projekt einzurichten und zu ver\u00f6ffentlichen.<\/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=\"Screenshot der Composer-Paketdetails nach der Ver\u00f6ffentlichung.\" width=\"1312\" height=\"1023\"><figcaption class=\"wp-caption-text\">Das Composer-Paket wurde erfolgreich ver\u00f6ffentlicht<\/figcaption><\/figure>\n<p>Das war&#8217;s! Dein Paket ist jetzt auf Packagist verf\u00fcgbar und kann von anderen Entwicklern als Abh\u00e4ngigkeit in ihren eigenen Projekten verwendet werden.<\/p>\n<h2>Verwendung deines Composer-Pakets in anderen Projekten<\/h2>\n<p>Du kannst dein ver\u00f6ffentlichtes Paket in anderen Projekten verwenden, indem du es als Abh\u00e4ngigkeit in der Datei <strong>composer.json<\/strong> hinzuf\u00fcgst. Du kannst die Datei manuell erstellen und bearbeiten, aber es ist besser, den Composer-Befehl wie folgt zu verwenden:<\/p>\n<pre><code class=\"language-bash\">$ composer require rexfordnyrk\/tempconv<\/code><\/pre>\n<p>Composer erstellt die Datei <strong>composer.json<\/strong> automatisch, wenn sie noch nicht vorhanden ist, und findet, l\u00e4dt und l\u00e4dt das Paket automatisch von Packagist. Die Ausgabe sollte in etwa so aussehen:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/requiring-package-in-composer.png\" alt=\"Screenshot of the terminal after adding a library to a project with Composer.\"><\/p>\n<p>Erstelle eine Datei <strong>demo.php<\/strong>, die den Code deiner Demo-Anwendung enth\u00e4lt, die mit deiner Bibliothek arbeitet.<br \/>\nDu kannst dann die Klasse <code>TemperatureConverter<\/code> in deinem Anwendungscode wie folgt verwenden:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nuse Rexfordnyrk\\Tempconv\\TemperatureConverter;\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 \u00b0F\\n\";\n\n$celsius = $converter-&gt;convert(68, 'F');\necho \"68\u00b0F is equivalent to $celsius \u00b0C\\n\";<\/code><\/pre>\n<p>Dieser Code verwendet die Klasse <code>TemperatureConverter<\/code>, um Temperaturen von 20 Celsius und 68 Fahrenheit umzurechnen und die Ergebnisse auszugeben. Die importierte Datei <strong>autoloader.php<\/strong> wurde vom Composer erstellt, um alle ben\u00f6tigten Abh\u00e4ngigkeiten zu laden. Sie sorgt daf\u00fcr, dass die Klasse bei Bedarf automatisch geladen wird.<\/p>\n<p>F\u00fchre diesen Code schlie\u00dflich in deinem Terminal aus:<\/p>\n<pre><code class=\"language-bash\">$ php demo.php<\/code><\/pre>\n<p>Du solltest eine \u00e4hnliche Ausgabe wie diese erhalten:<\/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>Zusammenfassung<\/h2>\n<p>Du hast soeben eine einfache PHP-Bibliothek erstellt, die die Temperatur von Celsius in Fahrenheit und umgekehrt in einer objektorientierten Klasse umwandelt, die in anderen Anwendungen wiederverwendet werden kann. Du hast gesehen, wie du mit Composer ein Paket aus der Klasse mit dem Befehl Composer Init erstellst, und du hast einige grundlegende Best Practices zur Codeorganisation f\u00fcr deine Bibliothek gelernt. Du hast deine Bibliothek auf Packagist ver\u00f6ffentlicht, damit du und andere Entwickler sie als Abh\u00e4ngigkeit in anderen Projekten verwenden k\u00f6nnen.<\/p>\n<p>Wenn du mit der Entwicklung deiner Anwendung fertig bist, musst du sie nat\u00fcrlich auch hosten. Bringe deine PHP-Entwicklung auf die n\u00e4chste Stufe mit dem <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Web Anwendungs-Hosting<\/a> bei Kinsta. Du kannst deine <a href=\"https:\/\/docs.sevalla.com\/templates\/overviewphp-examples\">Composer-basierte PHP-Anwendung<\/a> in wenigen Minuten bereitstellen. F\u00fcge deine <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/add-an-application\">Anwendung<\/a> einfach \u00fcber das Git-Repository deines Projekts hinzu, und Kinsta k\u00fcmmert sich um den Rest. Es erkennt die Composer-Datei automatisch und baut deine Anwendung automatisch. <a href=\"https:\/\/sevalla.com\/pricing\/\">Lege noch heute risikofrei los<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Wiederverwendung von Code bringt das Problem des Abh\u00e4ngigkeitsmanagements mit sich, das traditionell ein eher manueller und fehleranf\u00e4lliger Prozess ist. Gl\u00fccklicherweise haben die meisten Programmiersprachen dieses &#8230;<\/p>\n","protected":false},"author":306,"featured_media":68591,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[990,991],"class_list":["post-68590","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-webentwicklung-sprachen","topic-web-entwicklungs-tools"],"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>Eigenes Composer-Paket erstellen - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Du hast eine gro\u00dfartige PHP-Bibliothek erstellt, jetzt teile den Code mit anderen Entwicklern, indem du dein eigenes Composer-Paket erstellst.\" \/>\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\/de\/blog\/composer-paket-erstellen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Eigenes Composer-Paket erstellen\" \/>\n<meta property=\"og:description\" content=\"Du hast eine gro\u00dfartige PHP-Bibliothek erstellt, jetzt teile den Code mit anderen Entwicklern, indem du dein eigenes Composer-Paket erstellst.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-01T12:44:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-29T07:54:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/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=\"Du hast eine gro\u00dfartige PHP-Bibliothek erstellt, jetzt teile den Code mit anderen Entwicklern, indem du dein eigenes Composer-Paket erstellst.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rexford Nyarko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"11\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/\"},\"author\":{\"name\":\"Rexford Nyarko\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c\"},\"headline\":\"Eigenes Composer-Paket erstellen\",\"datePublished\":\"2024-02-01T12:44:25+00:00\",\"dateModified\":\"2024-02-29T07:54:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/\"},\"wordCount\":2055,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/\",\"name\":\"Eigenes Composer-Paket erstellen - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg\",\"datePublished\":\"2024-02-01T12:44:25+00:00\",\"dateModified\":\"2024-02-29T07:54:14+00:00\",\"description\":\"Du hast eine gro\u00dfartige PHP-Bibliothek erstellt, jetzt teile den Code mit anderen Entwicklern, indem du dein eigenes Composer-Paket erstellst.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Webentwicklungs-Tools\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/web-entwicklungs-tools\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Eigenes Composer-Paket erstellen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"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\/de\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c\",\"name\":\"Rexford Nyarko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/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\/de\/blog\/author\/rexfordnyarko\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Eigenes Composer-Paket erstellen - Kinsta\u00ae","description":"Du hast eine gro\u00dfartige PHP-Bibliothek erstellt, jetzt teile den Code mit anderen Entwicklern, indem du dein eigenes Composer-Paket erstellst.","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\/de\/blog\/composer-paket-erstellen\/","og_locale":"de_DE","og_type":"article","og_title":"Eigenes Composer-Paket erstellen","og_description":"Du hast eine gro\u00dfartige PHP-Bibliothek erstellt, jetzt teile den Code mit anderen Entwicklern, indem du dein eigenes Composer-Paket erstellst.","og_url":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2024-02-01T12:44:25+00:00","article_modified_time":"2024-02-29T07:54:14+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg","type":"image\/jpeg"}],"author":"Rexford Nyarko","twitter_card":"summary_large_image","twitter_description":"Du hast eine gro\u00dfartige PHP-Bibliothek erstellt, jetzt teile den Code mit anderen Entwicklern, indem du dein eigenes Composer-Paket erstellst.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Rexford Nyarko","Gesch\u00e4tzte Lesezeit":"11\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/"},"author":{"name":"Rexford Nyarko","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c"},"headline":"Eigenes Composer-Paket erstellen","datePublished":"2024-02-01T12:44:25+00:00","dateModified":"2024-02-29T07:54:14+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/"},"wordCount":2055,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg","inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/","url":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/","name":"Eigenes Composer-Paket erstellen - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg","datePublished":"2024-02-01T12:44:25+00:00","dateModified":"2024-02-29T07:54:14+00:00","description":"Du hast eine gro\u00dfartige PHP-Bibliothek erstellt, jetzt teile den Code mit anderen Entwicklern, indem du dein eigenes Composer-Paket erstellst.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/02\/create-composer-package.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/composer-paket-erstellen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Webentwicklungs-Tools","item":"https:\/\/kinsta.com\/de\/thema\/web-entwicklungs-tools\/"},{"@type":"ListItem","position":3,"name":"Eigenes Composer-Paket erstellen"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","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\/de\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c","name":"Rexford Nyarko","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/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\/de\/blog\/author\/rexfordnyarko\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/68590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/306"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=68590"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/68590\/revisions"}],"predecessor-version":[{"id":69269,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/68590\/revisions\/69269"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68590\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68590\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68590\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68590\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68590\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68590\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68590\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68590\/translations\/es"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68590\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/68591"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=68590"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=68590"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=68590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}