Composer چیست و چرا باید از آن استفاده کنیم؟
Composer مدیر وابستگی (Dependency Manager) برای زبان PHP است. با Composer میتوانید کتابخانهها و پکیجهای مورد نیاز پروژهتان را به راحتی نصب، بروزرسانی و مدیریت کنید.
مزایای Composer:
- مدیریت خودکار وابستگیها
- Autoloading استاندارد (PSR-4)
- جلوگیری از Conflict بین پکیجها
- پشتیبانی از repositories خصوصی (Git, Bitbucket, GitLab)
- استفاده گسترده در فریمورکهای Laravel، Symfony، Yii، CodeIgniter و …
نصب Composer در ویندوز، لینوکس و macOS
نصب در ویندوز:
به سایت رسمی بروید: https://getcomposer.org/download
فایل Composer-Setup.exe را دانلود کنید.
نصب را انجام دهید (بهتر است تیک “Add to PATH” را بزنید).
بعد از نصب، Command Prompt یا PowerShell را باز کنید و دستور زیر را بزنید:
composer –version
نصب در لینوکس (Ubuntu / Debian)
sudo apt update
sudo apt install curl php-cli unzip
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
برای اطمینان از نصب با استفاده از دستور composer –version ورژن نصب شده را باید مشاهده کنید.
نصب در macOS
با استفاده از دستور brew install composer میتوانید نصب را انجام دهید یا طبق مراحل لینوکس نصب را انجام بدید.
تنظیمات اولیه بعد از نصب
این بخش اختیاری هستش و در صورتی که نیاز به تنظیمات اضافی داشتید یا محدودیت منابعی ایجاد نکنید از دستور زیر استفاده کنید:
composer config --global process-timeout 0
composer config --global memory-limit -1
آشنایی کامل با فایل composer.json
این فایل قلب تپنده پروژه شماست. برای ایجاد پروژه میتوانید با ساخت یک فایل composer.json کلیه توضیحات پروژه و پکیج های مورد نیاز رو ثبت کنید و با دستور composer install نصب را به صورت کامل انجام دهید. مثال کامل از فایل composer.json :
{
"name": "yourname/project-name",
"description": "توضیح پروژه",
"require": {
"php": "^8.2",
"laravel/framework": "^11.0"
},
"require-dev": {
"phpunit/phpunit": "^11.0"
},
"autoload": {
"psr-4": {
"App\\": "app/"
}
},
"repositories": [
{
"type": "composer",
"url": "https://packagist.org"
}
]
}
مدیریت پکیجها
دستورات برای مدیریت پکیج ها بسیار هست، اما مهمترین ها رو در زیر لیست کردم که در هر پروژه ای نیاز هست:
| دستور | توضیح |
| composer install | نصب پکیجها طبق composer.lock |
| composer update | بروزرسانی تمام پکیجها |
| composer require vendor/package | نصب پکیج جدید |
| composer remove vendor/package | حذف پکیج |
| composer require –dev vendor/package | نصب در require-dev |
Autoloading در Composer
Composer مدیر وابستگی (Dependency Manager) برای PHP است. با آن میتوانید کتابخانهها و پکیجهای مورد نیاز پروژه را به راحتی نصب، مدیریت و بروزرسانی کنید و از Autoloading استاندارد بهره ببرید. تقریباً تمام پروژههای مدرن PHP (مثل Laravel) از Composer استفاده میکنند.
composer dump-autoload
# یا کوتاه:
composer dump
# برای بهینه سازی:
composer dump-autoload --optimize
کار با ریپازیتوریهای خصوصی
با تنظیم بخش repositories در فایل composer.json میتوانید پکیجهای خصوصی خودتان را از GitHub، GitLab یا سرور خصوصی نصب کنید. این قابلیت برای تیمهای توسعه و شرکتها بسیار مفید است و امکان استفاده از پکیجهای بسته را فراهم میکند.
"repositories": [
{
"type": "vcs",
"url": "https://github.com/yourname/private-repo"
},
{
"type": "composer",
"url": "https://packagist.yourcompany.com"
}
]
دستورات مهم عیب یابی Composer
مهمترین دستورات شامل composer install، composer update، composer require و composer remove هستند. دستوراتی مثل composer outdated، composer show و composer dump-autoload هم برای مدیریت روزانه و عیبیابی بسیار پرکاربردند.
- composer show → نمایش پکیجهای نصب شده
- composer outdated → نمایش پکیجهای قدیمی
- composer why vendor/package → دلیل نصب پکیج
- composer depends vendor/package → وابستگیها
- composer clear-cache → پاک کردن کش
- composer diagnose → تشخیص مشکلات
بهترین شیوهها و نکات امنیتی
نکات زیر برای داشتن پروژه ای امن و بدون باگ هستش، رعایت کردن این نکات در بهینه سازی پروژه شما کمک شایانی میکند:
- همیشه فایل composer.lock را در Git نگه دارید.
- از composer install در سرور تولید استفاده کنید (نه update).
- نسخه PHP را در composer.json مشخص کنید.
- از ^ و ~ به درستی استفاده کنید.
- پکیجها را از منابع معتبر نصب کنید.
- composer audit اجرا کنید (امنیت).
رفع مشکلات رایج Composer در ویندوز
برای رفع برخی مشکلات رایج کامپوزر در ویندوز از دستورات زیر استفاده کنید:
- خطای Memory Limit: composer install –no-scripts یا افزایش memory_limit
- مشکل SSL/Certificate: composer config –global disable-tls true (موقت)
- کند بودن: استفاده از composer config –global repo.packagist composer https://packagist.org
- Permission Error: اجرای Command Prompt به عنوان Administrator
جمع بندی
سعی کردم در این پست آموزشی کلیه مطالب مهم رو بیان کنم تا بتونید به ساده ترین شکل از کامپوزر در پروژه های php خود استفاده کنید. برای بروزرسانی کامپوزر هم میتونید از دستور composer self-update استفاده کنید.
Composer یکی از مهمترین ابزارهای هر برنامهنویس PHP است. با تسلط بر آن، سرعت توسعه پروژههایتان چند برابر میشود.
اگر سوالی داشتید، در کامنتها بپرسید 😉
