PHP Composer और Packages
In this page:
// composer.json
{
"require": {
"vendor/package": "^1.0"
}
}
// composer install
require "vendor/autoload.php";
Composer क्या है?
Composer PHP का standard package manager है, आपको यह declare करने देते हुए कि आपके project के third-party libraries पर कौन सी dependencies हैं और सही versions को automatically download करते हुए बजाय code हाथ से copy करने के।
उदाहरण: What is Composer?
<?php
// Print "Composer downloads the exact dependency versions your project declares." to the output
echo "Composer downloads the exact dependency versions your project declares.";
?>
Login to try C/C++/Java/PHP code in the editor
composer.json बनाना
composer.json आपके project root में बैठता है और हर dependency को एक version constraint के साथ list करता है, इस बात का single source of truth बनकर कि आपके project को चलने के लिए क्या चाहिए।
उदाहरण: Creating composer.json
<?php
$composerJson = [
"require" => [
"monolog/monolog" => "^2.0"
]
];
// Print `json_encode($composerJson, JSON_PRETTY_PRINT)` to the output
echo json_encode($composerJson, JSON_PRETTY_PRINT);
?>
Login to try C/C++/Java/PHP code in the editor
Packages Install करना
composer install चलाना composer.json पढ़ता है, हर dependency के लिए compatible versions resolve करता है, और उन सबको एक vendor/ folder में download कर देता है जहाँ से आपका code फिर require करता है।
उदाहरण: Installing Packages
<?php
// Run in terminal: composer install
echo "Downloads dependencies into vendor/ based on composer.json";
?>
Login to try C/C++/Java/PHP code in the editor
Composer का Autoloader Load करना
अपनी entry script के top पर vendor/autoload.php include करना Composer का autoloader wire up कर देता है, जिसका मतलब है हर installed package की classes बिना एक भी manual require statement के available हो जाती हैं।
उदाहरण: Loading Composer's Autoloader
<?php
// require __DIR__ . '/vendor/autoload.php';
echo "One require statement makes every installed package's classes available";
?>
Login to try C/C++/Java/PHP code in the editor
Package Versions Manage करना
Composer semantic versioning conventions follow करता है: एक caret (^1.2.0) कोई भी non-breaking update allow करता है, जबकि एक tilde (~1.2.0) updates को सिर्फ patch-level releases तक restrict करता है, आपको यह fine control देते हुए कि dependencies कितने aggressively update हों।
उदाहरण: Managing Package Versions
<?php
$constraints = [
"^1.2.0" => "any non-breaking update",
"~1.2.0" => "patch-level updates only",
];
// Loop over `$constraints`, binding each item to `$range => $meaning`
foreach ($constraints as $range => $meaning) {
// Print "$range: $meaning\n" to the output
echo "$range: $meaning\n";
}
?>
Login to try C/C++/Java/PHP code in the editor
require 'vendor/autoload.php';भूल जाना, ताकि installed packages न मिल सकें।composer.jsonऔरcomposer.lockfiles के बजायvendorfolder को version control में commit करना।composer.lockको हाथ से edit करना, जो version mismatches का कारण बन सकता है।
Chapter Quiz — Complete all 24 topics to unlock
0/24 topics done
Complete these topics first:
- PHP Date & Time
- PHP Math Functions
- PHP JSON Handling
- PHP XML Handling
- PHP cURL Introduction
- PHP REST API Basics
- PHP Composer & Packages
- PHP Autoloading
- PHP Design Patterns
- PHP MVC Architecture
- PHP Security Best Practices
- PHP Performance Optimization
- PHP 8 New Features
- PHP Type Declarations
- PHP Match Expression Advanced
- PHP Fibers
- PHP Attributes
- PHP Magic Constants
- PHP Include & Require
- PHP Iterables
- PHP SimpleXML Parser
- PHP SimpleXML Get
- PHP XML Expat Parser
- PHP DOM Parser