{"id":1505,"date":"2021-05-29T15:40:09","date_gmt":"2021-05-29T15:40:09","guid":{"rendered":"https:\/\/codeinsightacademy.com\/blog\/?p=1505"},"modified":"2021-05-30T18:47:44","modified_gmt":"2021-05-30T18:47:44","slug":"composer","status":"publish","type":"post","link":"https:\/\/codeinsightacademy.com\/blog\/php\/composer\/","title":{"rendered":"Composer"},"content":{"rendered":"\n<h3 class=\"has-text-align-center\">A Dependency Manager for PHP<\/h3>\n\n\n\n<p>Composer is an application-level package manager for the PHP programming language that provides a standard format for managing dependencies of PHP software and required libraries. It was developed by Nils Adermann and Jordi Boggiano in 2012, who continue to manage the project.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>To install composer in windows download and install executable file<br><a rel=\"noreferrer noopener\" href=\"https:\/\/getcomposer.org\/download\/\" target=\"_blank\">https:\/\/getcomposer.org\/download\/<\/a><\/p>\n\n\n\n<p>To install in ubuntu<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install composer<\/code><\/pre>\n\n\n\n<p>To install latest version of composer on ubuntu<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ~\ncurl -sS https:\/\/getcomposer.org\/installer -o composer-setup.php\n\nsudo php composer-setup.php --install-dir=\/usr\/bin --filename=composer\n\nOR\n\nsudo php composer-setup.php --install-dir=\/usr\/local\/bin --filename=composer<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><em>composer.json<\/em><br>Keep this file in the project&#8217;s root directory<br>NOTE: This file is mandatory to in root directory to use composer as composer look for this file when you run dump-autoload<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\t\"autoload\" : {\n\t\t\"files\" : &#91;\"lib\/global_functions.php\"],\n\t}\n}<\/code><\/pre>\n\n\n\n<p><em>lib\/global_functions.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function getMessage() {\n\t\n\techo \"Hello World\" . PHP_EOL;\n\n}<\/code><\/pre>\n\n\n\n<p>Create autoload file by running any one following command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer dump-autoload\ncomposer dump-autoload -o<\/code><\/pre>\n\n\n\n<p><em>index.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nrequire(\"vendor\/autoload.php\");\necho \"=====================\\n\";\ngetMessage();<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>How to autoload classes using composer<\/p>\n\n\n\n<p><em>app\/admin\/Account.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nnamespace App\\Admin;\n\nclass Account {\n\t\/\/this is magic method as it will invoked automatically \n        \/\/when you create instance of account\n\tpublic function __construct() {\n\t\t\n\t\techo \"I am from Admin Account\" . PHP_EOL;\n\t}\n}<\/code><\/pre>\n\n\n\n<p><em>app\/user\/Account.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nnamespace App\\User;\n\nclass Account {\n\t\/\/this is magic method as it will invoked automatically \n\t\/\/when you create instance of account\n\tpublic function __construct() {\n\t\techo \"I am from User Account\" . PHP_EOL;\n\t}\t\n}<\/code><\/pre>\n\n\n\n<p>modify <em>composer.json<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\t\"autoload\" : {\n\t\t\"files\" : &#91;\"lib\/global_functions.php\"],\n\t\t<strong>\"classmap\" : &#91;\"app\"]<\/strong>\n\t}\n}<\/code><\/pre>\n\n\n\n<p><strong><em>Once you modify composer.json file run dump-autoload command again to add classmapping in autoload file<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer update<\/code><\/pre>\n\n\n\n<p>OR<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer dump-autoload -o<\/code><\/pre>\n\n\n\n<p>modify <em>index.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nrequire(\"vendor\/autoload.php\");\n\necho \"=====================\\n\";\n\ngetMessage();\n\necho \"=====================\\n\";\n\n<strong>new App\\User\\Account();\n<\/strong>\necho \"=====================\\n\";\n\n<strong>new App\\Admin\\Account();<\/strong>\n\necho \"=====================\\n\";<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/codeinsightacademy.com\/blog\/http:\/\/codeinsightacademy.com\/blog\/wp-content\/uploads\/2021\/05\/image-21.png\"><img loading=\"lazy\" width=\"232\" height=\"205\" src=\"https:\/\/codeinsightacademy.com\/blog\/http:\/\/codeinsightacademy.com\/blog\/wp-content\/uploads\/2021\/05\/image-21.png\" alt=\"\" class=\"wp-image-1551\"\/><\/a><figcaption>directory structure<\/figcaption><\/figure><\/div>\n\n\n\n<p>Ref Code: <a href=\"https:\/\/gitlab.com\/codeinsightacademy\/composer-demo.git\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/gitlab.com\/codeinsightacademy\/composer-demo.git<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Dependency Manager for PHP Composer is an application-level package manager for the PHP programming language that provides a standard format for managing dependencies of PHP software and required libraries. It was developed by Nils Adermann and Jordi Boggiano in 2012, who continue to manage the project. To install composer in windows download and install [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/1505"}],"collection":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/comments?post=1505"}],"version-history":[{"count":23,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/1505\/revisions"}],"predecessor-version":[{"id":1560,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/1505\/revisions\/1560"}],"wp:attachment":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/media?parent=1505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/categories?post=1505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/tags?post=1505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}