{"id":455,"date":"2022-03-18T08:06:39","date_gmt":"2022-03-18T07:06:39","guid":{"rendered":"https:\/\/jagullo.fr\/blog\/?p=455"},"modified":"2022-10-16T08:21:31","modified_gmt":"2022-10-16T06:21:31","slug":"ajouter-composer-en-invite-de-commande","status":"publish","type":"post","link":"https:\/\/jagullo.fr\/blog\/ajouter-composer-en-invite-de-commande\/","title":{"rendered":"Ajouter Composer en invite de commande"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Composer le package manager de PHP<\/h2>\n\n\n\n<p>Composer est <strong>un gestionnaire de d\u00e9pendances <\/strong>permettant de g\u00e9rer plus facilement les librairies externes d&rsquo;un projet pour un d\u00e9veloppeur PHP. Un peu comme NPM sous Node.js, <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Composer<\/a> facilite la maintenance en installant et en mettant \u00e0 jour les biblioth\u00e8ques externes d&rsquo;une application PHP. Par d\u00e9faut le d\u00e9p\u00f4t de ce gestionnaire est <a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Packagist<\/a> mais il est possible de configurer un autre d\u00e9p\u00f4t si besoin. Composer s&rsquo;utilise exclusivement en ligne de commande ce qui n\u00e9cessite d&rsquo;avoir un peu de facilit\u00e9 avec le terminal. Il a remplac\u00e9 tr\u00e8s rapidement le gestionnaire PEAR qui \u00e9tait l&rsquo;ancien gestionnaire de composants de PHP.<\/p>\n\n\n\n<p>Utiliser un gestionnaire de paquets pour les librairies qu&rsquo;on importe dans son application web est essentiel. Cela permet \u00e0 des d\u00e9veloppeurs de centraliser l&rsquo;importation des librairies int\u00e9gr\u00e9es au sein d&rsquo;un projet. \u00c7a facilite <strong>le travail en \u00e9quipe <\/strong>et<strong> la maintenance <\/strong>de l&rsquo;application sur le long terme. En plus de t\u00e9l\u00e9charger les paquets demand\u00e9s, Composer g\u00e9n\u00e8re l&rsquo;autoloader permettant d&rsquo;int\u00e9grer les librairies facilement dans son projet. L\u2019outil g\u00e9n\u00e8re directement le code source dans <strong>le r\u00e9pertoire vendor<\/strong> pour charger les packages import\u00e9s et ses classes PHP. Tout se fait \u00e0 l&rsquo;aide de la CLI (Command Line Interface) avec de nombreuses options pour faciliter son utilisation.<\/p>\n\n\n\n<p>La plupart <strong>des librairies et <strong>frameworks<\/strong><\/strong> <strong>connus <\/strong>proposent d&rsquo;utiliser Composer pour l&rsquo;installation. Le principal avantage et de pouvoir se mettre \u00e0 jour facilement avec une simple commande dans le terminal. Les d\u00e9veloppeurs PHP se concentrent avant tout sur le d\u00e9veloppement gr\u00e2ce \u00e0 une maintenance facilit\u00e9e. Si Composer est install\u00e9 sur le serveur de production, on peut alors d\u00e9ployer les librairies de son application directement avec le terminal via SSH. Plus besoin d&rsquo;uploader tout les fichiers en FTP surtout si de nombreuses librairies sont utilis\u00e9es facilitant ainsi les mises \u00e0 jour.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2022\/03\/package-manager-composer.jpg\" alt=\"Composer est un gestionnaire de d\u00e9pendances pour le langage PHP\" class=\"wp-image-923\" width=\"720\" height=\"480\" srcset=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2022\/03\/package-manager-composer.jpg 960w, https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2022\/03\/package-manager-composer-300x200.jpg 300w, https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2022\/03\/package-manager-composer-768x512.jpg 768w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><figcaption>Composer est un gestionnaire de d\u00e9pendances pour le langage PHP<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">T\u00e9l\u00e9chargement de Composer<\/h2>\n\n\n\n<p>Avant d&rsquo;ajouter ce gestionnaire en invite de commande, il faut au pr\u00e9alable le t\u00e9l\u00e9charger. Il est possible de le r\u00e9cup\u00e9rer avec un script PHP depuis le terminal ou de t\u00e9l\u00e9charger la derni\u00e8re version stable dans la page de <a data-type=\"URL\" data-id=\"https:\/\/getcomposer.org\/download\/\" href=\"https:\/\/getcomposer.org\/download\/\" target=\"_blank\" rel=\"noreferrer noopener\">t\u00e9l\u00e9chargement de Composer<\/a>. Il n\u00e9cessite <strong>une version de PHP<\/strong> r\u00e9cente pour fonctionner correctement. Composer fonctionne sur tous les syst\u00e8mes Windows, macOS et Linux tant que PHP est install\u00e9. Pour v\u00e9rifier que le langage PHP est bien install\u00e9 sur son ordinateur il suffit de faire la commande suivante dans son terminal :<\/p>\n\n\n\n<pre class=\"wp-block-code language-bash\"><code>php -v<\/code><\/pre>\n\n\n\n<p>Si PHP n&rsquo;est pas reconnu comme une commande interne il ne reste plus qu&rsquo;\u00e0 l&rsquo;installer via un package comme XAMPP, MAMP ou WampServer puis de configurer son syst\u00e8me pour l&rsquo;utiliser en ligne de commande. Il est aussi possible de mettre \u00e0 jour sa version de PHP en installant ces packages pour pouvoir utiliser la derni\u00e8re version de Composer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation de Composer sur macOS<\/h2>\n\n\n\n<p>Sur macOS apr\u00e8s t\u00e9l\u00e9chargement il faut d\u00e9placer le fichier <strong>composer.phar<\/strong> dans le r\u00e9pertoire bin soit avec le finder ou soit via le terminal avec la commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code language-bash\"><code>sudo mv composer.phar \/usr\/local\/bin\/<\/code><\/pre>\n\n\n\n<p>Ensuite, ouvrir le fichier <strong>.bash_profile<\/strong> \u00e0 la racine de son dossier utilisateur et y ajouter la ligne suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code language-bash\"><code>alias composer=\"php \/usr\/local\/bin\/composer.phar\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Installation de Composer sur Windows<\/h2>\n\n\n\n<p>Sur Windows il existe <strong>un programme d&rsquo;installation<\/strong> pour faciliter la mise en place de composer disponible dans <a rel=\"noreferrer noopener\" href=\"https:\/\/getcomposer.org\/doc\/00-intro.md#installation-windows\" data-type=\"URL\" data-id=\"https:\/\/getcomposer.org\/doc\/00-intro.md#installation-windows\" target=\"_blank\">la rubrique d&rsquo;aide<\/a> pour Windows. Sinon il est possible de t\u00e9l\u00e9charger le fichier composer.phar dans un dossier de son disque dur puis de cr\u00e9er le fichier bat avec la commande :<\/p>\n\n\n\n<pre class=\"wp-block-code language-bash\"><code>C:\\bin&gt; echo @php \"%~dp0composer.phar\" %*&gt;composer.bat<\/code><\/pre>\n\n\n\n<p>Enfin ouvrir la fen\u00eatre <strong>des variables d&rsquo;environnement<\/strong> de son syst\u00e8me dans les param\u00e8tres avanc\u00e9s et \u00e9diter <strong>la variable Path<\/strong> en ajoutant le dossier o\u00f9 se trouve le fichier de composer.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2022\/03\/screen_path-environnement.jpg\" alt=\"Les variables d'environnement pour Windows\" class=\"wp-image-464\" width=\"350\" height=\"385\" srcset=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2022\/03\/screen_path-environnement.jpg 350w, https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2022\/03\/screen_path-environnement-273x300.jpg 273w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><figcaption>Configuration des variables d&rsquo;environnement<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Utilisation de la commande composer<\/h2>\n\n\n\n<p>Apr\u00e8s installation et configuration, il est possible depuis le terminal d&rsquo;utiliser composer.phar avec <strong>la commande composer<\/strong>. Pour installer les d\u00e9pendances du fichier <strong>composer.json<\/strong> il suffit de se d\u00e9placer dans son projet avec le terminal et de faire la commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code language-bash\"><code>composer update<\/code><\/pre>\n\n\n\n<p>En faisant un update cela va g\u00e9n\u00e9rer un fichier <strong>composer.lock<\/strong> \u00e0 la base de l&rsquo;application. Ce fichier peut \u00eatre envoy\u00e9 sur un serveur de production ou sur le d\u00e9p\u00f4t du projet afin d&rsquo;installer l&rsquo;application avec la commande <strong>install<\/strong>. Chaque d\u00e9veloppeur peut donc utiliser ce fichier .lock pour charger les bonnes versions des packages puis tester en local de les updater afin de continuer \u00e0 d\u00e9velopper l&rsquo;application.<\/p>\n\n\n\n<pre class=\"wp-block-code language-bash\"><code>composer install<\/code><\/pre>\n\n\n\n<p>Pour modifier juste l&rsquo;autoloader d&rsquo;un projet apr\u00e8s avoir ajout\u00e9 un nouveau r\u00e9pertoire de classe par exemple, il suffit de faire la commande suivante afin de mettre \u00e0 jour l&rsquo;autoload :<\/p>\n\n\n\n<pre class=\"wp-block-code language-bash\"><code>composer dump-autoload<\/code><\/pre>\n\n\n\n<p>Pour plus de renseignements sur l&rsquo;utilisation de Composer se r\u00e9f\u00e9rer \u00e0 <strong>la documentation<\/strong> et il existe beaucoup de ressources sur Internet. C&rsquo;est un outil pratique pour le d\u00e9veloppement et la maintenance de ses librairies PHP et pour partager du code en \u00e9quipe. Utiliser ce genre d&rsquo;outil est indispensable pour faciliter la gestion des librairies d&rsquo;une application PHP. Certain IDE comme PHPStorm int\u00e8gre ce gestionnaire nativement pour g\u00e9rer les d\u00e9pendances directement dans son logiciel.<\/p>\n\n\n\n<link rel=\"stylesheet\" href=\"\/blog\/wp-content\/themes\/Extra-child\/assets\/css\/prism.css\">\n<script src=\"\/blog\/wp-content\/themes\/Extra-child\/assets\/js\/prism.js\"><\/script>\n<div class=\"list-tags\"><a href=\"https:\/\/jagullo.fr\/blog\/tag\/php\/\" class=\"link-tag\" title=\"PHP\">PHP<\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>Composer le package manager de PHP Composer est un gestionnaire de d\u00e9pendances permettant de g\u00e9rer plus facilement les librairies externes d&rsquo;un projet pour un d\u00e9veloppeur PHP. Un peu comme NPM sous Node.js, Composer facilite la maintenance en installant et en mettant \u00e0 jour les biblioth\u00e8ques externes d&rsquo;une application PHP. Par d\u00e9faut le d\u00e9p\u00f4t de ce [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":923,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[24],"tags":[27],"class_list":["post-455","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriels","tag-php","et-has-post-format-content","et_post_format-et-post-format-standard"],"_links":{"self":[{"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/posts\/455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/comments?post=455"}],"version-history":[{"count":3,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/posts\/455\/revisions"}],"predecessor-version":[{"id":1968,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/posts\/455\/revisions\/1968"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/media\/923"}],"wp:attachment":[{"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/media?parent=455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/categories?post=455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/tags?post=455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}