آموزش جامع کامپوزر (Composer) در PHP؛ ابزار مدیریت پکیجها و وابستگیها
کامپوزر (Composer) چیست و چه کاربردی دارد؟
در گذشته، توسعهدهندگان PHP برای استفاده از کتابخانههای دیگران مجبور بودند فایلهای کد را به صورت دستی دانلود کرده، در پروژه خود کپی کنند و با استفاده از دستورات پیدرپی include یا require آنها را به پروژه معرفی نمایند. این روش مشکلات بزرگی به همراه داشت؛ از جمله سخت بودن بهروزرسانی کتابخانهها و تداخل نسخههای مختلف.
کامپوزر (Composer) یک ابزار مدیریت وابستگی (Dependency Manager) برای زبان برنامهنویسی PHP است. این ابزار به شما اجازه میدهد تا کتابخانههایی را که پروژهتان به آنها وابسته است اعلام کنید و Composer به طور خودکار آنها را برای شما دانلود، نصب و مدیریت (آپدیت) میکند.
تفاوت مدیریت وابستگی و مدیریت پکیج
اگرچه بسیاری از توسعهدهندگان Composer را یک «مدیریت پکیج» (مانند Apt یا Yum) مینامند، اما کامپوزر در سطح پروژه عمل میکند. به این معنی که کتابخانهها را در یک پوشه اختصاصی (به نام vendor) درون همان پروژه نصب میکند، نه به صورت عمومی (Global) در کل سیستمعامل (مگر اینکه خودتان تمایل داشته باشید پکیجی را گلوبال نصب کنید).
چرا باید از Composer استفاده کنیم؟
- مدیریت آسان کتابخانهها: تنها با نوشتن نام کتابخانه، کامپوزر آخرین نسخه پایدار را دانلود میکند.
- حل خودکار پیشنیازها: اگر کتابخانه A به کتابخانه B نیاز داشته باشد، کامپوزر به طور خودکار هر دو را دانلود میکند.
- سیستم بارگذاری خودکار (Autoloading): دیگر نیازی به نوشتن صدها دستور
requireنیست؛ کامپوزر یک فایل لودر خودکار در اختیارتان میگذارد. - هماهنگی با استانداردهای مدرن: هماهنگی کامل با استانداردهای کدنویسی PHP نظیر PSR-4.
آشنایی با فایلهای اصلی کامپوزر
وقتی از کامپوزر استفاده میکنید، دو فایل بسیار حیاتی در ریشه پروژه شما ساخته میشوند:
۱. فایل composer.json
این فایل نقش شناسنامه پروژه شما را دارد. تمام مشخصات پروژه و لیست کتابخانههایی که به آنها نیاز دارید در این فایل با فرمت JSON ذخیره میشود.
به عنوان مثال، یک فایل ساده composer.json به شکل زیر است:
{
"name": "developer/my-awesome-app",
"description": "یک پروژه آزمایشی وب با PHP",
"require": {
"monolog/monolog": "^3.0"
}
}
۲. فایل composer.lock
این فایل بسیار مهم است! وقتی شما دستور نصب را اجرا میکنید، کامپوزر نسخههای دقیقی از پکیجهای نصب شده را در فایل composer.lock قفل میکند. این کار باعث میشود تا تمام همکاران شما در تیم توسعه، دقیقاً همان نسخهای از کتابخانهها را استفاده کنند که شما نصب کردهاید و از بروز باگهای ناشی از تفاوت نسخه جلوگیری شود.
قابلیت Autoloading در Composer
یکی از شاهکارهای کامپوزر، فایل vendor/autoload.php است. پس از نصب پکیجها، کافی است این فایل را یکبار در ابتدای برنامه خود لود کنید. پس از آن، تمام کلاسهای پکیجها بدون نیاز به هیچ include دیگری در دسترس خواهند بود:
// بارگذاری خودکار تمام پکیجها
require_once 'vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// اکنون به راحتی میتوان از کلاسهای دانلود شده استفاده کرد
$log = new Logger('name');
$log--->pushHandler(new StreamHandler('app.log', Logger::WARNING));
$log->warning('این یک پیام تست است!');
دستورات پرکاربرد کامپوزر که باید بدانید
برای کار با کامپوزر در ترمینال، دستورات زیر جزء پر استفادهترینها هستند:
composer init: برای راهاندازی و ساخت اولین فایل composer.json به صورت تعاملی.composer require [package-name]: برای نصب یک پکیج جدید و اضافه شدن خودکار آن به composer.json.composer install: برای نصب تمام پکیجهای موجود در composer.json (معمولاً پس از کلون کردن پروژه از گیتهاب استفاده میشود).composer update: برای بهروزرسانی پکیجهای نصب شده به آخرین نسخههای مجاز.
در بخش شبیهساز پایین صفحه، شما میتوانید پکیجهای دلخواه خود را انتخاب کنید تا نحوه ساخته شدن فایل پیکربندی و دستور نصب آنها را به صورت زنده و تعاملی مشاهده کنید.
پرسش و پاسخ
نظری یافت نشد
برای ارسال نظر ابتدا وارد شوید