Skip to content

Composer Cheat Sheet: PHP Dependency Manager

Updated 10 Nov 2026 5 min scan

अगर आप PHP development करते हैं, तो आपने composer install, composer update या composer require जैसे commands जरूर देखे होंगे।

ये सभी commands Composer से संबंधित हैं।

Composer PHP का एक dependency management tool है। इसकी मदद से आप अपने PHP project में external libraries और packages install, update और manage कर सकते हैं।

उदाहरण के लिए, अगर आपको अपने PHP project में किसी library की जरूरत है, तो आपको उसकी files manually download करके project में रखने की जरूरत नहीं होती। Composer यह काम automatically कर सकता है।

इस guide में हम Composer को beginner-friendly Hinglish में practical examples के साथ सीखेंगे।

1. What is Composer?#

Composer PHP का dependency manager है।

Dependency का मतलब है कोई external library या package जिस पर आपका project depend करता है।

मान लीजिए आप एक PHP application बना रहे हैं और उसमें इन features की जरूरत है:

  • Email भेजना
  • PDF generate करना
  • HTTP API requests करना
  • Date और time manage करना
  • Testing करना

इन सभी features के लिए आप existing PHP packages का उपयोग कर सकते हैं।

Composer इन packages को install और manage करने में मदद करता है।

Why use Composer?

  • External PHP libraries आसानी से install करना।
  • Package versions manage करना।
  • Dependencies को automatically resolve करना।
  • Autoloading setup करना।
  • Team members के बीच consistent dependencies maintain करना।
  • Project को दूसरे environment में setup करना आसान बनाना।

याद रखें: Composer PHP के लिए package और dependency management tool है। यह PHP framework नहीं है।

2. How Composer Works#

Composer मुख्य रूप से आपके project की dependency information के आधार पर काम करता है।

इसमें कुछ important files होती हैं:

File / FolderPurpose
composer.jsonProject की dependencies और configuration define करता है
composer.lockExact installed dependency versions record करता है
vendor/Installed packages और generated autoload files रखता है
vendor/autoload.phpComposer का generated autoloader

Simple Workflow

  1. Project में composer.json create करें।
  2. Required packages define या install करें।
  3. Composer dependencies resolve करता है।
  4. Packages vendor/ directory में install होते हैं।
  5. Autoloading के माध्यम से classes use कर सकते हैं।

3. Install Composer#

Composer install करने से पहले आपके system में PHP installed होना चाहिए।

PHP version और installation check करने के लिए:

Code
php -v

Composer version check करें:

Code
composer --version

अगर Composer installed नहीं है, तो official website से installation instructions follow करें।

Official Website: https://getcomposer.org/

macOS Installation

Homebrew available होने पर:

Code
brew install composer

Installation verify करें:

Code
composer --version

Windows Installation

Windows के लिए official Composer installer download करें:

https://getcomposer.org/download

Installer में PHP executable का path select करें और installation complete करें।

Linux Installation

Linux पर Composer install करने के लिए official download instructions follow करें।

Installation के बाद:

Code
composer --version

Important: Production environment में Composer installer और downloaded packages की authenticity verify करने के लिए official security instructions follow करें।

4. Create Your First Composer Project#

सबसे पहले एक नया project folder बनाएं।

Code
mkdir composer-demo
cd composer-demo

अब Composer initialize करें:

Code
composer init

Composer आपसे package name, description, author और dependencies जैसी information पूछ सकता है।

इसके बाद project में composer.json file create हो जाएगी।

आप manually भी composer.json create कर सकते हैं।

Basic composer.json

Code
{
    "name": "theeasymaster/composer-demo",
    "description": "My first Composer project",
    "type": "project",
    "require": {}
}

यह आपके project की basic Composer configuration है।

5. What is composer.json?#

composer.json Composer की main configuration file है।

इसमें project की dependencies, package information, autoloading configuration और scripts define किए जा सकते हैं।

Example

Code
{
    "name": "theeasymaster/demo",
    "description": "Composer learning project",
    "type": "project",
    "require": {
        "monolog/monolog": "^3.0"
    }
}

यहाँ:

  • name: Package या project का नाम।
  • description: Project के बारे में जानकारी।
  • type: Package का type।
  • require: Production dependencies की list।
  • monolog/monolog: Package का नाम।
  • ^3.0: Allowed version range।

Important: composer.json में dependency का version constraint define होता है। इसका मतलब यह जरूरी नहीं कि हर installation में बिल्कुल वही version install हो।

6. What is composer.lock?#

composer.lock file में Composer द्वारा resolve की गई exact dependency versions और संबंधित package information record होती है।

मान लीजिए आपके composer.json में है:

Code
{
    "require": {
        "monolog/monolog": "^3.0"
    }
}

Composer compatible version resolve करके composer.lock में उसका exact version record करता है।

composer.json vs composer.lock

composer.jsoncomposer.lock
Dependency requirements define करता हैResolved exact versions record करता है
Version constraints रखता हैSelected versions रखता है
Developer इसे update करता हैComposer commands इसे update कर सकती हैं
Project requirements बताता हैConsistent installation में मदद करता है

Should You Commit composer.lock?

Application projects में सामान्यतः composer.lock को Git repository में commit करना चाहिए।

इससे team members और deployment environments में वही resolved dependency versions install किए जा सकते हैं।

Important: Libraries और reusable packages के लिए lock file का व्यवहार application projects से अलग हो सकता है। Library consumers अपनी dependency resolution के अनुसार versions प्राप्त करते हैं।

7. Install Dependencies#

अगर project में composer.json मौजूद है, तो dependencies install करने के लिए:

Code
composer install

यह command dependency requirements के अनुसार packages install करती है।

अगर composer.lock मौजूद है, तो Composer उसमें recorded versions install करने की कोशिश करता है।

When to use composer install?

  • New project setup करते समय।
  • Git से project clone करने के बाद।
  • Deployment के समय।
  • vendor/ directory missing होने पर।

Example:

Code
git clone https://github.com/example/project.git

cd project

composer install

याद रखें: सामान्य project setup के लिए composer install सबसे common command है।

8. Install a Package Using Composer#

किसी package को install करने के लिए composer require command का उपयोग होता है।

Example:

Code
composer require monolog/monolog

यह command:

  1. Package को resolve करती है।
  2. Package install करती है।
  3. composer.json update करती है।
  4. composer.lock update करती है।
  5. Autoload files generate या update करती है।

Example: Install a Specific Version

Code
composer require monolog/monolog:^3.0

यह compatible 3.x versions की अनुमति देता है, लेकिन exact selected version Composer resolve करता है।

Install a Development Dependency

कुछ packages केवल development और testing के लिए जरूरी होते हैं।

ऐसे packages को require-dev में add करें:

Code
composer require --dev phpunit/phpunit

9. Production vs Development Dependencies#

Composer में dependencies के लिए दो important sections हैं:

  • require
  • require-dev

Example

Code
{
    "require": {
        "monolog/monolog": "^3.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^11.0"
    }
}
requirerequire-dev
Application runtime dependenciesDevelopment dependencies
Production में जरूरीसामान्यतः production में जरूरी नहीं
Production install में शामिल--no-dev से exclude हो सकती हैं

Production environment में:

Code
composer install --no-dev

इससे development dependencies install नहीं होंगी।

10. Update Dependencies#

Dependencies update करने के लिए:

Code
composer update

यह command composer.json में defined version constraints के अनुसार dependencies के नए compatible versions resolve करती है।

इसके बाद composer.lock update हो जाती है।

Update a Specific Package

Code
composer update monolog/monolog

यह specific package और जरूरत पड़ने पर उससे संबंधित dependencies update कर सकता है।

Important Difference

CommandPurpose
composer installLock file के versions install करता है
composer updateDependencies को दोबारा resolve करके lock file update करता है
composer requireNew dependency add करके install करता है
composer removeDependency remove करता है

Best Practice: बिना जरूरत production project पर composer update run न करें। पहले changes review और test करें।

11. Remove a Package#

अगर किसी package की जरूरत नहीं है, तो उसे remove कर सकते हैं।

Code
composer remove monolog/monolog

यह package को remove करने के साथ composer.json और composer.lock को भी update करता है।

Development dependency remove करने के लिए भी यही command काम करती है।

12. Check Installed Packages#

Project में installed packages देखने के लिए:

Code
composer show

Specific package की information देखने के लिए:

Code
composer show monolog/monolog

Outdated packages check करने के लिए:

Code
composer outdated

Dependencies की problems check करने के लिए:

Code
composer diagnose

इन commands से project की dependency health समझने में मदद मिलती है।

13. What is the vendor Directory?#

जब Composer packages install करता है, तो वह सामान्यतः project में vendor/ directory create करता है।

Example structure:

Code
composer-demo/
│
├── composer.json
├── composer.lock
│
├── vendor/
│   ├── autoload.php
│   ├── composer/
│   └── monolog/
│
└── index.php

vendor/ directory में installed packages और generated autoload files होती हैं।

Should You Commit vendor/?

सामान्यतः vendor/ directory को Git repository में commit नहीं किया जाता।

इसे .gitignore में add करें:

Code
/vendor/

इसके बजाय composer.json और application projects में composer.lock commit करें।

14. What is Autoloading?#

Autoloading का मतलब है classes को जरूरत पड़ने पर automatically load करना।

बिना autoloading के आपको कई files को manually include या require करना पड़ सकता है।

Composer का autoloader इस काम को आसान बनाता है।

Without Composer Autoloading

Code
<?php

require_once "classes/User.php";
require_once "classes/Product.php";
require_once "classes/Order.php";

$user = new User();

?>

जैसे-जैसे project बड़ा होता है, manual includes manage करना मुश्किल हो सकता है।

With Composer Autoloading

सबसे पहले Composer autoload file include करें:

Code
<?php

require_once __DIR__ . "/vendor/autoload.php";

इसके बाद configured classes automatically load हो सकती हैं।

Important: Composer autoloading तभी काम करेगी जब आपकी classes के लिए सही autoload configuration set हो।

15. PSR-4 Autoloading#

PSR-4 PHP में namespace के आधार पर classes automatically load करने का standard तरीका है।

Composer में PSR-4 configuration composer.json के autoload section में define होती है।

Project Structure

Code
composer-demo/
│
├── composer.json
├── index.php
│
└── src/
    └── User.php

Step 1: Create User.php

Code
<?php

namespace App;

class User
{
    public function getName(): string
    {
        return "Rahul";
    }
}

Step 2: Configure composer.json

Code
{
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

इसका मतलब है कि App\ namespace की classes src/ directory में खोजी जाएंगी।

Step 3: Generate Autoload Files

Code
composer dump-autoload

यह command Composer की autoload files generate या update करती है।

Step 4: Use the Class

Code
<?php

require_once __DIR__ . "/vendor/autoload.php";

use App\User;

$user = new User();

echo $user->getName();

?>

Output:

Code
Rahul

PSR-4 Mapping Example

NamespaceDirectory
App\src/
App\Controllers\src/Controllers/
App\Models\src/Models/

ध्यान रखें कि namespace और directory structure सही match होना चाहिए। File और class naming में case consistency भी maintain करें।

16. What is dump-autoload?#

जब आप अपनी composer.json की autoload configuration change करते हैं, तो Composer को autoload files दोबारा generate करने की जरूरत हो सकती है।

इसके लिए:

Code
composer dump-autoload

Optimized autoload files generate करने के लिए:

Code
composer dump-autoload -o

Production deployment में optimized autoloading उपयोगी हो सकती है।

Difference:

  • composer install: Dependencies install करता है।
  • composer dump-autoload: Autoload files regenerate करता है।

17. Composer Scripts#

Composer scripts की मदद से आप frequently used commands को composer.json में define कर सकते हैं।

Example

Code
{
    "scripts": {
        "test": "phpunit",
        "start": "php -S localhost:8000"
    }
}

अब commands run कर सकते हैं:

Code
composer test
Code
composer start

Scripts development workflow को आसान बनाती हैं।

Note: Script तभी काम करेगी जब संबंधित executable उपलब्ध हो और उसका configuration सही हो।

18. Version Constraints in Composer#

Composer में package versions define करने के लिए version constraints का उपयोग होता है।

Common Version Constraints

ConstraintMeaning
1.2.3Exact version
^1.2Compatible versions, जो 1.0.0 से 2.0.0 तक की सीमा में हों
~1.21.2 series के compatible updates
>=1.01.0 या उससे ऊपर
*कोई भी version
^3.0Compatible 3.x versions

Example

Code
{
    "require": {
        "monolog/monolog": "^3.0"
    }
}

यहाँ ^3.0 का अर्थ है compatible 3.x releases की अनुमति।

Important: Version constraints का actual behavior package versioning और Composer rules पर निर्भर करता है। Production projects में broad constraints को समझकर use करें।

19. Platform Requirements#

Composer केवल packages की dependencies नहीं देखता, बल्कि PHP और extensions जैसी platform requirements भी check करता है।

उदाहरण के लिए, किसी package को PHP 8.2 या किसी specific extension की जरूरत हो सकती है।

Check करें:

Code
composer check-platform-reqs

PHP version:

Code
php -v

Installed PHP extensions:

Code
php -m

Ignore Platform Requirements

Composer में यह option मौजूद है:

Code
composer install --ignore-platform-reqs

लेकिन इसे production solution की तरह use नहीं करना चाहिए।

यह missing PHP version या extension requirements को bypass कर सकता है, जबकि application runtime पर fail हो सकती है।

20. Composer Configuration Example#

एक practical PHP project की composer.json कुछ ऐसी दिख सकती है:

Code
{
    "name": "theeasymaster/my-app",
    "description": "A PHP application",
    "type": "project",
    "require": {
        "php": "^8.2",
        "monolog/monolog": "^3.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^11.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "scripts": {
        "test": "phpunit"
    }
}

इस configuration में:

  • PHP 8.2 या compatible version required है।
  • Monolog production dependency है।
  • PHPUnit development dependency है।
  • App\ namespace src/ directory से map होता है।
  • composer test testing script run करता है।

Note: यह learning example है। Actual project में package versions और PHP requirements को अपने environment के अनुसार select करें।

21. Common Composer Errors and Solutions#

Error / ProblemPossible Solution
composer: command not foundComposer installation और PATH check करें
PHP version mismatchRequired PHP version install करें
Missing PHP extensionRequired extension enable/install करें
Package not foundPackage name और repository check करें
Autoload class not foundNamespace, file path और PSR-4 mapping check करें
vendor/autoload.php missingcomposer install run करें
Dependency conflictPackage constraints और dependency requirements check करें
Memory limit errorPHP CLI memory configuration और Composer troubleshooting guide check करें

Useful Troubleshooting Commands

Code
composer diagnose
Code
composer validate
Code
composer clear-cache
Code
composer dump-autoload

इन commands को problem के अनुसार use करें। हर error का solution cache clear करना नहीं होता।

22. Composer Best Practices#

  1. Application projects में composer.lock Git में commit करें।
  2. vendor/ directory को सामान्यतः Git में commit न करें।
  3. Production dependencies और development dependencies अलग रखें।
  4. Package install करने से पहले उसकी documentation और maintenance status check करें।
  5. Unnecessary packages install न करें।
  6. Production deployment में composer install --no-dev use करें, जब development dependencies की जरूरत न हो।
  7. Package updates को test करने के बाद deploy करें।
  8. Autoloading के लिए PSR-4 standard prefer करें।
  9. Composer और PHP versions की compatibility check करें।
  10. Unknown packages को blindly trust न करें।

23. Composer Quick Reference#

CommandPurpose
composer --versionComposer version check
composer initNew Composer configuration create
composer installDependencies install
composer updateDependencies resolve और update
composer require package/nameNew package install
composer require --dev package/nameDevelopment dependency install
composer remove package/namePackage remove
composer showInstalled packages list
composer outdatedOutdated packages check
composer validatecomposer.json और lock file validate
composer diagnoseCommon configuration problems check
composer dump-autoloadAutoload files regenerate
composer dump-autoload -oOptimized autoload files generate
composer install --no-devDevelopment dependencies के बिना install
composer check-platform-reqsPlatform requirements check
composer clear-cacheComposer cache clear

24. Composer Interview Questions#

Q1. What is Composer in PHP?

Composer PHP का dependency management tool है, जो external packages install और manage करता है।

Q2. What is composer.json?

यह project की dependencies और Composer configuration define करने वाली file है।

Q3. What is composer.lock?

यह resolved dependency versions record करती है ताकि project में consistent package versions install किए जा सकें।

Q4. What is the difference between composer install and composer update?

composer install lock file में recorded versions install करता है। composer update dependencies को फिर से resolve करके lock file update करता है।

Q5. What is the vendor directory?

यह directory Composer द्वारा installed packages और generated autoload files रखती है।

Q6. What is autoloading?

Autoloading classes को जरूरत पड़ने पर automatically load करने की सुविधा है।

Q7. What is PSR-4?

PSR-4 PHP में namespace और directory structure के आधार पर class autoloading का standard है।

Q8. What is composer require?

यह command project में नया package add और install करती है।

Q9. What is require-dev?

इसमें development और testing के लिए required dependencies define की जाती हैं।

Q10. What is composer dump-autoload?

यह Composer की autoload files regenerate करता है।

Q11. Why should we commit composer.lock?

Application project में इसे commit करने से team और deployment environments में resolved dependency versions consistent रहते हैं।

Q12. What is the difference between Composer and npm?

Composer PHP ecosystem का dependency manager है, जबकि npm JavaScript ecosystem में packages और project dependencies manage करता है।

25. Practice Exercises#

इन exercises को अपने local PHP environment में perform करें।

Beginner Level

  1. composer init से एक नया PHP project बनाएं।
  2. composer.json file को समझें।
  3. Monolog package install करें।
  4. composer show से installed packages देखें।
  5. एक package remove करके देखें।

Intermediate Level

  1. require और require-dev में difference समझें।
  2. composer.lock generate करें और उसके contents देखें।
  3. PSR-4 autoloading configure करें।
  4. src/ directory में दो PHP classes बनाएं और autoloading से use करें।
  5. composer dump-autoload run करके देखें।

Advanced Level

  1. एक छोटा PHP project बनाएं जिसमें Monolog और PSR-4 autoloading use हो।
  2. Composer scripts configure करें।
  3. Project को GitHub पर push करें और vendor/ को .gitignore में रखें।
  4. दूसरी directory में project clone करके composer install run करें।

26. Summary#

Composer PHP projects में dependencies manage करने का एक essential tool है।

इस guide में आपने सीखा:

  • Composer क्या है और क्यों जरूरी है।
  • Composer installation।
  • composer.json और composer.lock।
  • Package install, update और remove करना।
  • vendor/ directory।
  • Autoloading और PSR-4।
  • Composer scripts।
  • Version constraints।
  • Platform requirements।
  • Common errors और best practices।

अगर आप professional PHP developer बनना चाहते हैं, तो Composer और PSR-4 autoloading की अच्छी understanding जरूरी है।

27. What to Learn Next?#

Composer के बाद अगला topic है SQL (Structured Query Language)।

SQL की मदद से आप databases में data store, retrieve, update और delete करना सीखेंगे।

Recommended Learning Path:

  1. PHP Cheat Sheet
  2. PHP OOP Cheat Sheet
  3. Composer Cheat Sheet
  4. SQL Cheat Sheet
  5. MySQL Cheat Sheet

Official References#

Practice Tip: केवल Composer commands याद न करें। एक छोटा PHP project बनाएं, उसमें package install करें, PSR-4 autoloading configure करें और फिर Git से clone करके composer install run करें। इससे पूरा workflow practically समझ आएगा।