Composer ابزار استاندارد و محبوب مدیریت وابستگی در اکوسیستم PHP است که نصب، بهروزرسانی و نگهداری کتابخانههای مورد نیاز پروژه را آسان میکند. این راهنما گامبهگام نحوه نصب Composer بر روی یک سرور Debian 11 را توضیح میدهد و مثال عملی با یک بسته از Packagist ارائه میکند.
پیشنیازها
- یک سرور Debian 11 با دسترسی کاربر غیر-root که دسترسی sudo دارد.
- فایروال فعال شده و پیکربندی پایه سرور انجام شده باشد.
- ابزارهای مورد نیاز: php-cli برای اجرای اسکریپتهای PHP در خط فرمان و unzip برای باز کردن آرشیوها.
گام اول — بروزرسانی مخازن و نصب پیشنیازها
ابتدا کش بستهها را بروزرسانی کنید و سپس ابزارهای لازم را نصب نمایید:
sudo apt update
sudo apt install -y curl php-cli php-mbstring git unzip
توضیح: php-mbstring
برای پشتیبانی از توابع رشتهای چندبایتی لازم است و git
توسط Composer برای دانلود بستهها استفاده میشود.
گام دوم — دانلود و بررسی نصبکننده Composer
Composer نصبکنندهای به صورت یک اسکریپت PHP ارائه میدهد. آن را دانلود و بررسی کنید:
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
# obtain expected signature (SHA-384)
EXPECTED_SIGNATURE="$(curl -sS https://composer.github.io/installer.sig)"
# verify installer
php -r "if (hash('sha384', file_get_contents('composer-setup.php')) === '$EXPECTED_SIGNATURE') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
اگر پیام Installer verified دریافت کردید، میتوانید ادامه دهید. در غیر این صورت اسکریپت را دوباره دانلود و بررسی کنید.
گام سوم — نصب سراسری Composer
برای نصب سراسری Composer به طوری که دستور composer
در سرتاسر سیستم در دسترس باشد، از دستور زیر استفاده کنید:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
پس از نصب، صحت نصب را با اجرای نسخه Composer بررسی کنید:
composer --version
اگر خروجی نسخه Composer را نمایش داد، نصب سراسری با موفقیت انجام شده است.
php composer-setup.php
یک فایل composer.phar
در پوشه فعلی بسازید و با ./composer.phar
آن را اجرا کنید.گام چهارم — شروع کار با Composer در یک پروژه
Composer وابستگیهای پروژه را با استفاده از فایل composer.json
مدیریت میکند. این فایل معمولاً با اجرای دستور composer require
بهطور خودکار تولید میشود. در ادامه یک مثال عملی با هدف ساخت یک ابزار تبدیل رشته به «اسلاگ» (slug) آمده است.
ایجاد پروژه آزمایشی
cd ~
mkdir slugify
cd slugify
ما از بسته cocur/slugify
موجود در Packagist برای تولید اسلاگ استفاده میکنیم:
composer require cocur/slugify
پس از اجرا، Composer دو فایل اصلی و یک پوشه را ایجاد میکند: composer.json
, composer.lock
و پوشه vendor
.
نمونه محتویات composer.json
{
"require": {
"cocur/slugify": "^4.1"
}
}
توضیح کوتاه درباره علامت ^
: عملگر caret به Composer اجازه میدهد تا تا قبل از نسخه اصلی بعدی (major) آپدیتها را اعمال کند. برای مثال ^4.1
به معنی اجازه بروزرسانی از 4.1 تا قبل از 5.0 است.
گام پنجم — بارگذاری خودکار (Autoload) و تست
Composer یک فایل بارگذاری خودکار تولید میکند که کافی است در ابتدای اسکریپتهای PHP خود آن را فراخوانی کنید. یک فایل آزمایشی بسازید:
nano test.php
و محتوای زیر را در آن قرار دهید:
<?php
require __DIR__ . '/vendor/autoload.php';
use Cocur\Slugify\Slugify;
$slugify = new Slugify();
echo $slugify->slugify('Hello World!');
فایل را ذخیره کنید و سپس اجرا نمایید:
php test.php
خروجی باید چیزی شبیه به زیر باشد:
hello-world
گام ششم — بروزرسانی وابستگیها
برای بروزرسانی تمامی بستهها مطابق با محدودیتهای نسخه تعریفشده در composer.json
از دستور زیر استفاده کنید:
composer update
اگر قصد دارید تنها یک بسته مشخص را بروزرسانی کنید:
composer update vendor/package
پس از هر بروزرسانی، فایل composer.lock
بروزرسانی میشود؛ حتماً هر دوی composer.json
و composer.lock
را در کنترل نسخه (مثل git) نگه دارید تا سایر توسعهدهندگان یا محیطهای استقرار، همان نسخهها را نصب کنند.
در این راهنما Composer را روی Debian 11 نصب کردیم، نحوه افزودن وابستگیها را با یک مثال عملی (cocur/slugify) نشان دادیم، بارگذاری خودکار Composer را توضیح دادیم و روش بروزرسانی وابستگیها را بررسی کردیم. این فرایند برای تیمهای توسعه PHP که روی پلتفرمهای پردازش ابری مانند ParminCloud کار میکنند، پایهای و ضروری است.
از همراهی شما سپاسگزاریم. برای مطالعه بیشتر درباره مستندات محصولات ابری، معماریهای مقیاسپذیر و بهینهسازی هزینه در محیطهای ابری ParminCloud، به بخش منابع ما مراجعه کنید.
نظرات کاربران