{"id":57976,"date":"2024-02-01T13:56:38","date_gmt":"2024-02-01T12:56:38","guid":{"rendered":"https:\/\/kinqsta.com\/nl\/?p=57976&#038;preview=true&#038;preview_id=57976"},"modified":"2024-02-06T12:39:51","modified_gmt":"2024-02-06T11:39:51","slug":"composer-package-maken","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/","title":{"rendered":"Zo maak je je eigen Composer package"},"content":{"rendered":"<p>Met hergebruik van code komt het probleem van beheer van dependencies, van oudsher een nogal handmatig en foutgevoelig proces. Gelukkig hebben de meeste programmeertalen dit probleem de laatste jaren opgelost door verschillende tools te introduceren die het beheer van dependencies vergemakkelijken. In het <a href=\"https:\/\/kinqsta.com\/php\/\">PHP<\/a> ecosysteem is <a href=\"https:\/\/kinqsta.com\/blog\/install-composer\/\">Composer<\/a> de standaard geworden dankzij het gebruiksgemak, de flexibiliteit en de brede acceptatie.<\/p>\n<p>Hoewel Composer is gebouwd voor het beheer van dependencies, kun je het ook gebruiken voor taken als:<\/p>\n<ul>\n<li><strong>Autoloading:<\/strong> Automatisch laden van classes en functions uit externe libraries om ze gemakkelijk toegankelijk te maken vanuit je code en het proces van het integreren van externe code in je project te vereenvoudigen.<\/li>\n<li><strong>Code genereren:<\/strong> Genereren van boilerplate code voor je project, zoals configuratiebestanden of andere veelgebruikte stukjes code om het ontwikkelproces te versnellen en consistentie te garanderen.<\/li>\n<li><strong>Scripting:<\/strong> Een ingebouwd scriptsysteem kan veelvoorkomende taken automatiseren, zoals het uitvoeren van tests of het genereren van documentatie vanuit je codebasis. Dit kan helpen om je ontwikkelworkflow te stroomlijnen en handmatig werk te verminderen.<\/li>\n<\/ul>\n<p>Deze stap-voor-stap handleiding leidt je door het maken van je eigen Composer package en het publiceren ervan naar <a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Packagist<\/a>, een repository voor PHP packages die developers over de hele wereld kunnen gebruiken in hun eigen projecten.<\/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>Hoe werkt Composer?<\/h2>\n<p>Laten we er eerst voor zorgen dat we Composer begrijpen. Eenvoudig gezegd werkt Composer met een <strong>composer.json<\/strong> bestand dat de definities bevat voor de dependencies in je PHP project. Het zoekt die packages op in een centrale repository en downloadt en installeert die dependencies vervolgens automatisch met behulp van de package repo.<\/p>\n<p>Ervan uitgaande dat <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer al is ge<\/a><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u00ef<\/a><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">nstalleerd<\/a> in je PHP werkomgeving, zie je hier hoe het download- en installatieproces van de dependencies eruit ziet:<\/p>\n<ol>\n<li>Definieer de vereiste dependencies voor je project in een <strong>composer.json<\/strong> bestand in de hoofdmap van je project. Dit bestand bevat informatie over vereiste libraries en hun versies en eventuele andere configuratie-instellingen of dependencies voor die libraries.<\/li>\n<li>Los dependencies op in Composer met commando&#8217;s als <code>install<\/code> om de vereiste dependencies te installeren; <code>update<\/code> om bestaande dependencies bij te werken; en <code>require<\/code> om nieuwe dependencies toe te voegen aan het <strong>composer.json<\/strong> bestand. Wanneer je een commando uitvoert, leest Composer het <strong>composer.json<\/strong> bestand om de vereiste dependencies te bepalen, controleert de packagerepo voor de nieuwste versie van elke dependency die geschikt is voor je PHP omgeving en controleert dan op eventuele conflicten of versiebeperkingen.<\/li>\n<li>Composer downloadt en installeert de vereiste dependencies, inclusief libraries, in de <strong>vendor<\/strong> directory van je project. Composer maakt een <strong>composer.lock<\/strong> bestand aan met de exacte versies van de ge\u00efnstalleerde dependencies.<\/li>\n<li>Composer stelt een autoloader in die classes en functions van de ge\u00efnstalleerde dependencies automatisch laadt. Dit maakt het gemakkelijk om de ge\u00efnstalleerde libraries in je project te gebruiken zonder dat je elk bestand handmatig hoeft op te nemen.<\/li>\n<\/ol>\n<p>Kortom, Composer vereenvoudigt het beheer van dependencies in <a href=\"https:\/\/kinqsta.com\/nl\/php-marktaandeel\/\">PHP projecten<\/a> en maakt het eenvoudig om externe libraries en frameworks te installeren, bij te werken en te gebruiken.<\/p>\n<h2>Een Composer package maken en publiceren<\/h2>\n<p>Deze tutorial laat zien hoe je een eenvoudige PHP library genaamd <strong>tempconv<\/strong> maakt, die Celsius temperatuur omzet naar Fahrenheit en vice versa, en sluit af door het te publiceren als Composer package.<\/p>\n<h3>Vereisten<\/h3>\n<p>Je hebt een paar dingen nodig voordat je begint:<\/p>\n<ul>\n<li>PHP en Composer goed ge\u00efnstalleerd op je systeem. Op het moment van schrijven is de laatste Composer versie v2.6.6, maar deze instructies zouden met elke v2 variant moeten werken.<\/li>\n<li><a href=\"https:\/\/github.com\/signup\" target=\"_blank\" rel=\"noopener noreferrer\">Een GitHub account<\/a> om een repository aan te maken voor het hosten van je code.<\/li>\n<li><a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Een Packagist account<\/a> om je library te publiceren.<\/li>\n<\/ul>\n<h3>Een project repository maken<\/h3>\n<p>Maak je eigen GitHub repository voor deze tutorial, waar je je voltooide librarycode en bestanden naartoe kunt pushen.<\/p>\n<figure style=\"width: 1536px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-github-repository.png\" alt=\"Screenshot van de pagina die je ziet tijdens het maken van een repository op GitHub.\" width=\"1536\" height=\"1408\"><figcaption class=\"wp-caption-text\">De project repository aanmaken op GitHub.<\/figcaption><\/figure>\n<p>Deze tutorial gebruikt de projectnaam <strong>tempconv<\/strong>. Geef in het veld Description korte details over de applicatie. Vink het vakje aan om een README bestand toe te voegen, kies het Composer sjabloon voor de optie <strong>Add .gitignore<\/strong>, en selecteer een licentie naar keuze- deze tutorial gebruikt <strong>MIT License<\/strong>. Klik tot slot op <strong>Create repository<\/strong>.<\/p>\n<h3>De repository klonen<\/h3>\n<p>Kloon de repository die je zojuist hebt gemaakt naar je lokale machine. Vergeet niet om de URL te vervangen door je eigen URL, zowel hier als in deze tutorial:<\/p>\n<pre><code class=\"language-bash\">$ git clone https:\/\/github.com\/rexfordnyrk\/tempconv.git<\/code><\/pre>\n<p>Dit maakt een map aan met de naam <strong>tempconv<\/strong> in je huidige werkmap. Op dit moment bevat het alleen <strong>README.md<\/strong>, <strong>LICENSE<\/strong> en <strong>.gitignore<\/strong> bestanden, maar je zult je packagebestanden hier ook aanmaken.<\/p>\n<h3>Je PHP library maken<\/h3>\n<p>Voeg in jouw projectmap een bestand <strong>TemperatureConverter.php<\/strong> toe met de volgende code:<\/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>Deze klasse heeft een enkele methode genaamd <code>convert<\/code> die de temperatuur en de eenheid als argumenten neemt en de geconverteerde temperatuur teruggeeft. Er wordt een uitzondering gegooid als de eenheid ongeldig is.<\/p>\n<p>Dat is genoeg voor nu. In een echt scenario zou je waarschijnlijk unit tests schrijven om ervoor te zorgen dat je code werkt zoals verwacht na aanpassingen of updates.<\/p>\n<h2>Je composer package maken.<\/h2>\n<p>Nu je librarycode klaar is, is het tijd om er een Composer package van te maken. Je genereert een <strong>composer.json<\/strong> bestand voor je package met behulp van een stap-voor-stap wizard, en we behandelen enkele best practices voor het organiseren van je code als een package voordat je het naar je repository pusht.<\/p>\n<h3>Een composer.json package bestand genereren<\/h3>\n<p>Hoewel je de inhoud van een <strong>composer.json<\/strong> bestand handmatig in de root van je projectmap kunt schrijven, is het beter om het te genereren met het volgende Composer commando:<\/p>\n<pre><code class=\"language-bash\">$ composer init<\/code><\/pre>\n<p>Dit commando leidt je door een kleine stap-voor-stap wizard. De antwoorden die je geeft op vragen zoals de naam van je package, beschrijving, informatie over de auteur en licentietype zullen het <strong>composer.json<\/strong> bestand van je package genereren.<\/p>\n<p><a href=\"https:\/\/getcomposer.org\/doc\/04-schema.md\" target=\"_blank\" rel=\"noopener noreferrer\">De documentatie van Composer<\/a> beschrijft de verwachte waarden en andere opties die je kunt gebruiken om de <strong>composer.json<\/strong> van je project te defini\u00ebren.<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-init-wizard.png\" alt=\"Screenshot van Composer's configuratiegenerator in actie.\" width=\"960\" height=\"1047\"><figcaption class=\"wp-caption-text\"><strong>Composer init<\/strong> gebruiken om een configuratie te genereren.<\/figcaption><\/figure>\n<p>Merk op dat de wizard waar van toepassing voorgedefinieerde antwoorden op de vragen geeft, zoals het afleiden van je naam en e-mail van git. Verander ze gerust als je dat wilt.<\/p>\n<p>Deze library is voor functionaliteit niet afhankelijk van andere packages, dus je kunt <b>No <\/b>antwoorden op vragen die dependencies specificeren.<\/p>\n<p>De wizard toont je een voorbeeld van de gegenereerde bestandsinhoud en vraagt je om het te bevestigen om de wizard te voltooien.<\/p>\n<h3>Pakketbestanden organiseren<\/h3>\n<p>Het voltooien van de wizard cre\u00ebert twee mappen naast het <strong>composer.json<\/strong> bestand:<\/p>\n<ul>\n<li><strong>src<\/strong> voor je sourcecode<\/li>\n<li><strong>vendor<\/strong> voor je gedownloade dependencies<\/li>\n<\/ul>\n<p>Verplaats het bestand <strong>TemperatureConverter.php<\/strong> naar de <strong>src<\/strong> map. Als jouw library dependencies heeft, voer dan <code>composer install<\/code> uit om de autoloader te genereren en de packagedependencies te installeren.<\/p>\n<h3>Code uploaden naar GitHub<\/h3>\n<p>Voeg jouw wijzigingen en nieuwe bestanden toe aan git:<\/p>\n<pre><code class=\"language-bash\">$ git add -A<\/code><\/pre>\n<p>Commit de wijzigingen in de lokale repository en push het naar de remote repo op GitHub, zodat je het project eenvoudig kunt publiceren in het volgende gedeelte:<\/p>\n<pre><code class=\"language-bash\">$ git commit -am \"Initial Release\" && git push<\/code><\/pre>\n<h3>Een releaseversie voor je library maken<\/h3>\n<p>Met je code in je repo kun je een release van je library maken met een versienummer zodat andere developers je stabiele en major updates kunnen bijhouden.<\/p>\n<p>Navigeer naar je repo op GitHub en klik op <strong>Releases<\/strong> onder de <b>About <\/b>sectie. Op de Releases pagina, waar je naar verwachting nu niets hebt, klik je op <strong>Create a new release<\/strong>.<\/p>\n<figure style=\"width: 1839px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-github-releases.png\" alt=\"Een screenshot van de pagina Releases van GutHub.\" width=\"1839\" height=\"684\"><figcaption class=\"wp-caption-text\">De <strong>Releases<\/strong> pagina van GitHub.<\/figcaption><\/figure>\n<p>Vul een paar details over je release in, zoals de tag versie en de titel van de release. De tag versie moet een unieke identificatie voor deze release zijn (voorbeeld: <em>v1.0.0<\/em>), en de titel van de release moet de veranderingen in de release beschrijven (voorbeeld: <em>Eerste release<\/em>).<\/p>\n<p>Optioneel kun je een beschrijving van de release toevoegen. Als je een bestand wilt uploaden, zoals een gecompileerde binary of een sourcecode archief, sleep het bestand dan naar het gebied <strong>Attach binaries by dropping here of selecteer het<\/strong>, maar dat is niet nodig voor deze tutorial.<\/p>\n<figure style=\"width: 1897px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-github-releases-details.png\" alt=\"Screenshot met details die zijn ingevoerd op GitHub's Releases pagina.\" width=\"1897\" height=\"1302\"><figcaption class=\"wp-caption-text\">De initi\u00eble release details op GitHub invoeren.<\/figcaption><\/figure>\n<p>Klik op <strong>Publish release<\/strong> om de release te maken.<\/p>\n<p>Je project zou nu beschikbaar moeten zijn op de <strong>Releases<\/strong> pagina van je repository. Gebruikers kunnen alle bestanden downloaden die je hebt toegevoegd en de release notities bekijken. Bovendien, als je een tag voor de release hebt toegevoegd, kunnen andere developers die tag gebruiken om de exacte code te bekijken die in de release is opgenomen.<\/p>\n<p>Je library is klaar om met de wereld te delen. Laten we het publiceren als een package op Packagist.<\/p>\n<h2>Aan de slag met Packagist<\/h2>\n<p>Packagist is de belangrijkste package repository voor PHP. Het biedt een centrale locatie voor developers om hun PHP packages te publiceren en te delen, en voor andere developers om die packages te ontdekken en te gebruiken in hun eigen projecten. Laten we je package publiceren!<\/p>\n<p>Navigeer naar de <a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Packagist website<\/a>, klik op <strong>Log in<\/strong>, en selecteer <strong>GitHub<\/strong> als inlogmethode om je GitHub account te gebruiken voor authenticatie.<\/p>\n<figure style=\"width: 900px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-signup.png\" alt=\"Screenshot van de Packagist autorisatiepagina via GitHub.\" width=\"900\" height=\"964\"><figcaption class=\"wp-caption-text\">Aanmelden op Packagist met GitHub.<\/figcaption><\/figure>\n<p>Klik op <b>Authorize <\/b>om Packagist toegang tot je account te geven.<\/p>\n<figure id=\"attachment_174183\" aria-describedby=\"caption-attachment-174183\" style=\"width: 1178px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-login.png\" alt=\"Screenshot of a user logged into Packagist.\" width=\"1178\" height=\"326\"><figcaption id=\"caption-attachment-174183\" class=\"wp-caption-text\">Succesvol inloggen op Packagist met GitHub.<\/figcaption><\/figure>\n<h3>Je Composer package indienen op Packagist<\/h3>\n<p>Om een package op Packagist te publiceren, dien je de GitHub repository in die het <strong>composer.json<\/strong> bestand bevat dat je package en zijn dependencies beschrijft. Klik op <strong>Submit<\/strong> op de site van Packagist, geef de URL van je repo op de pagina die verschijnt en klik op <strong>Check<\/strong> om het te valideren.<\/p>\n<p>Als de repository geldig is, detecteert Packagist de naam van het package en wordt de <strong>Check<\/strong> knop <strong>Submit<\/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:\/\/kinqsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-validated.png\" alt=\"Screenshot van Composer pakketgegevens klaar om in te dienen op Packagist.\" width=\"1156\" height=\"502\"><figcaption id=\"caption-attachment-174185\" class=\"wp-caption-text\">Composer package <strong>rexfordnyrk\/tempconv<\/strong> gevalideerd en klaar om in te dienen.<\/figcaption><\/figure>\n<p>Klik op <strong>Submit<\/strong> en Packagist neemt even de tijd om je project in te stellen en te publiceren.<\/p>\n<figure style=\"width: 1312px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-published.png\" alt=\"Composer package succesvol gepubliceerd.\" width=\"1312\" height=\"1023\"><figcaption class=\"wp-caption-text\">Composer package succesvol gepubliceerd.<\/figcaption><\/figure>\n<p>Dat is het! Je package is nu beschikbaar op Packagist voor andere developers om te gebruiken als dependency in hun eigen projecten.<\/p>\n<h2>Je Composer package in andere projecten gebruiken<\/h2>\n<p>Je kunt je gepubliceerde package in andere projecten gebruiken door het toe te voegen als een dependency in het <strong>composer.json<\/strong> bestand. Je kunt het bestand handmatig aanmaken en bewerken, maar het is beter om het Composer commando als volgt te gebruiken:<\/p>\n<pre><code class=\"language-bash\">$ composer require rexfordnyrk\/tempconv<\/code><\/pre>\n<p>Composer maakt het <strong>composer.json<\/strong> bestand automatisch aan als het nog niet bestaat, dan wordt het package gevonden, gedownload en autoloads vanuit Packagist. De uitvoer zou er ongeveer zo uit moeten zien:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/kinqsta.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>Maak een <strong>demo.php<\/strong> bestand om je demo applicatiecode te bevatten om met je library te werken.<br \/>\nJe kunt dan de class <code>TemperatureConverter<\/code> op deze manier gebruiken in je applicatiecode:<\/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>Deze code gebruikt de class <code>TemperatureConverter<\/code> om temperaturen 20 Celsius en 68 Fahrenheit om te rekenen en de resultaten uit te voeren. Het ge\u00efmporteerde <strong>autoloader.php<\/strong> bestand is gemaakt door Composer om alle dependencies te laden die je nodig hebt. Dat zorgt ervoor dat de class automatisch wordt geladen wanneer dat nodig is.<\/p>\n<p>Voer tot slot deze code uit in je terminal:<\/p>\n<pre><code class=\"language-bash\">$ php demo.php<\/code><\/pre>\n<p>Je zou een uitvoer moeten hebben die hierop lijkt:<\/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>Samenvatting<\/h2>\n<p>Je hebt zojuist een eenvoudige PHP library gemaakt die temperatuur omzet van Celsius naar Fahrenheit en vice versa in een object-geori\u00ebnteerde class die kan worden hergebruikt in andere applicaties. Je hebt gezien hoe je Composer kunt gebruiken om een package te maken van de class met het Composer Init commando, en je hebt wat basic code organisatie best practices geleerd voor je library. Je hebt je library gepubliceerd op Packagist, zodat jij en andere developers deze kunnen gebruiken als dependency in andere projecten.<\/p>\n<p>Als je klaar bent met het ontwikkelen van je applicatie, moet je deze natuurlijk ook hosten. Til je PHP development naar een hoger niveau met <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Web Applicatie Hosting<\/a> van Kinsta. Je kunt je <a href=\"https:\/\/docs.sevalla.com\/templates\/overviewphp-examples\">op Composer gebaseerde PHP applicatie<\/a> binnen enkele minuten deployen. <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/add-an-application\">Voeg simpelweg je applicatie toe<\/a> via de git repository van je project en Kinsta doet de rest. Het detecteert automatisch het Composer bestand en bouwt je applicatie automatisch. <a href=\"https:\/\/sevalla.com\/pricing\/\">Begin vandaag nog<\/a> zonder risico!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Met hergebruik van code komt het probleem van beheer van dependencies, van oudsher een nogal handmatig en foutgevoelig proces. Gelukkig hebben de meeste programmeertalen dit probleem &#8230;<\/p>\n","protected":false},"author":306,"featured_media":57977,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[883,884],"class_list":["post-57976","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-webdevelopment-talen","topic-webdevelopment-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>Zo maak je je eigen Composer package - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Je hebt een geweldige PHP library gebouwd, deel nu je code met andere developers door je eigen Composer package te maken.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zo maak je je eigen Composer package\" \/>\n<meta property=\"og:description\" content=\"Je hebt een geweldige PHP library gebouwd, deel nu je code met andere developers door je eigen Composer package te maken.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-01T12:56:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-06T11:39:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/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=\"Je hebt een geweldige PHP library gebouwd, deel nu je code met andere developers door je eigen Composer package te maken.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rexford Nyarko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/\"},\"author\":{\"name\":\"Rexford Nyarko\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c\"},\"headline\":\"Zo maak je je eigen Composer package\",\"datePublished\":\"2024-02-01T12:56:38+00:00\",\"dateModified\":\"2024-02-06T11:39:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/\"},\"wordCount\":2029,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg\",\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/\",\"url\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/\",\"name\":\"Zo maak je je eigen Composer package - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg\",\"datePublished\":\"2024-02-01T12:56:38+00:00\",\"dateModified\":\"2024-02-06T11:39:51+00:00\",\"description\":\"Je hebt een geweldige PHP library gebouwd, deel nu je code met andere developers door je eigen Composer package te maken.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg\",\"contentUrl\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Webdevelopment tools\",\"item\":\"https:\/\/kinqsta.com\/nl\/onderwerpen\/webdevelopment-tools\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Zo maak je je eigen Composer package\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#website\",\"url\":\"https:\/\/kinqsta.com\/nl\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\",\"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:\/\/kinqsta.com\/nl\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c\",\"name\":\"Rexford Nyarko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#\/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:\/\/kinqsta.com\/nl\/blog\/author\/rexfordnyarko\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Zo maak je je eigen Composer package - Kinsta\u00ae","description":"Je hebt een geweldige PHP library gebouwd, deel nu je code met andere developers door je eigen Composer package te maken.","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:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/","og_locale":"nl_NL","og_type":"article","og_title":"Zo maak je je eigen Composer package","og_description":"Je hebt een geweldige PHP library gebouwd, deel nu je code met andere developers door je eigen Composer package te maken.","og_url":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2024-02-01T12:56:38+00:00","article_modified_time":"2024-02-06T11:39:51+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg","type":"image\/jpeg"}],"author":"Rexford Nyarko","twitter_card":"summary_large_image","twitter_description":"Je hebt een geweldige PHP library gebouwd, deel nu je code met andere developers door je eigen Composer package te maken.","twitter_image":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg","twitter_creator":"@Kinsta_NL","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Rexford Nyarko","Geschatte leestijd":"12 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/"},"author":{"name":"Rexford Nyarko","@id":"https:\/\/kinqsta.com\/nl\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c"},"headline":"Zo maak je je eigen Composer package","datePublished":"2024-02-01T12:56:38+00:00","dateModified":"2024-02-06T11:39:51+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/"},"wordCount":2029,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg","inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/","url":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/","name":"Zo maak je je eigen Composer package - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinqsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg","datePublished":"2024-02-01T12:56:38+00:00","dateModified":"2024-02-06T11:39:51+00:00","description":"Je hebt een geweldige PHP library gebouwd, deel nu je code met andere developers door je eigen Composer package te maken.","breadcrumb":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#primaryimage","url":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg","contentUrl":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/02\/create-composer-package.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/nl\/blog\/composer-package-maken\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"Webdevelopment tools","item":"https:\/\/kinqsta.com\/nl\/onderwerpen\/webdevelopment-tools\/"},{"@type":"ListItem","position":3,"name":"Zo maak je je eigen Composer package"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/nl\/#website","url":"https:\/\/kinqsta.com\/nl\/","name":"Kinsta\u00ae","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/kinqsta.com\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/nl\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinqsta.com\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL","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:\/\/kinqsta.com\/nl\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c","name":"Rexford Nyarko","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinqsta.com\/nl\/#\/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:\/\/kinqsta.com\/nl\/blog\/author\/rexfordnyarko\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/posts\/57976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/users\/306"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/comments?post=57976"}],"version-history":[{"count":4,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/posts\/57976\/revisions"}],"predecessor-version":[{"id":58102,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/posts\/57976\/revisions\/58102"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/57976\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/57976\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/57976\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/57976\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/57976\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/57976\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/57976\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/57976\/translations\/es"},{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/57976\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/media\/57977"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/media?parent=57976"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/tags?post=57976"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/topic?post=57976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}