Composer چیست؟
یک برنامه نویس زبان PHP را در نظر بگیرید که برای توسعه نرم افزار خود میخواهد به جای نوشتن کلاسهای خاص و تلف کردن زمان خود، از پکیجها و لایبرریهای نویسندگان دیگر به صورت متن باز (Open Source) استفاده کند. در این جا کامپوزر (Composer) به کمک توسعه دهندگان وب آمده و پکیجهای زیادی را در اختیار آنها قرار میدهد و فرایند مدیریت وابستگی را برای آنها آسان میکند. این برنامه توسط Nils Adermann و Jordi Boggiano ساخته شده و در سال 2012 منتشر شد.
PEAR نیز نوعی مدیریت وابستگی محسوب میشود اما امروزه تعداد کمی از برنامه نویسان به دلیل به روز نبودن کدها از آن استفاده میکنند. با این حال با استفاده از کامپوزر میتوانید کتابخانهها و ابزارها و مورد نیاز خود را را در پروژههای PHP خود به صورت خودکار نصب، بهروزرسانی و مدیریت کنید.
آشنایی با دستورات کامپوزر
پروژههایی که از کامپوزر استفاده میکنند دارای فایلی با نام composer.json هستند که دارای اطلاعاتی در قالب فرمت جیسون است و مشخص میکند ابزار کامپوزر از چه تنظیماتی باید تبعیت کند. برای ساخت composr.json از دستور php composer.phar init استفاده میشود. یکی از کامند (Commend)های پرکاربرد آن، dump-autoload است. این کامند ابتدا فایل autoload_classmap.php را آپدیت میکند. زمانی که برای بار اول این کامند اجرا شود، کامپوزر ابتدا فایلها و فولدرهای پیشنیاز مانند فولدر vendor را میسازد.
فایل autoload.php تشکیل شده به صورت اتوماتیک تمامی کلاسهای استفاده شده در وب را Import میکند. نقطه شروع هر کد نویسی، صفحه index.php در فولدر Public است. برای فراخوانی کردن فایل autoload، به صفحه ایندکس رفته و در ابتدای فایل آن کد require_once را قرار داده و سپس با نوشتن __DIR__ فایل autoload.php را صدا بزنید. اگر میخواهید پکیج جدیدی به پروژه خود اضافه کنید از دستور پر کاربرد php composer.phar require package-name استفاده کنید.

مزایای استفاده از کامپوزر
1. مدیریت وابستگیها: با استفاده از Composer میتوانید وابستگیهای پروژه خود را به صورت مدیریت شده و سازمانیافتهای مدیریت کنید. به همین منظور کدهایی که در پروژه وجود دارد به آسانی و با دقت بالا مدیریت شود.
2. نصب خودکار: نصب خودکار وابستگیهای کامپوزر از بهترین مزایای آن محسوب میشود. این امر سبب شده تا نگرانی از نصب دستی وابستگیها یا نگهداری آنها برای شما ایجاد نشود.
3. نسخهبندی: کامپوزر به شما امکان میدهد تا وابستگیهای پروژههای خود را به ورژنهای معین یا محدود کنید. این قابلیت به شما اجازه میدهد تا از ایجاد مشکلات ناخواسته به دلیل بهروزرسانیهای نامطمئن یا ناسازگاریها جلوگیری کنید.
4. مشارکتهای اجتماعی: با استفاده از composer و انتشار وابستگیهای خود در Packagist میتوانید به توسعه جامعه PHP کمک کنید.
با توجه به مزایای گفته شده، استفاده از Composer به شما کمک میکند فرآیند توسعه نرمافزار را در PHP بهبود بخشیده و کدنویسی را سریعتر، موثرتر و کارآمدتر کنید.
بیشتر بخوانید: بهترین افزونههای صفحه ساز وردپرس
روش نصب کامپوزر
به صورت کلی composer به روش محلی (Local) و (Globally) نصب میشود. کامپوزر میتواند هم بر سیستم عامل ویندوز و هم بر سیستم عاملهایی که بر پایه لینوکس هستند نصب شود. کامپوزری که به صورت لوکال یا همان محلی نصب شود، به آن ابزار پروژه محور میگویند. زیرا فقط برای پروژههای خاص میتوان استفاده کرد که به صورت فایل PHAR است. اما روش سراسری با محلی تفاوت دارد. ما میتوانیم فایل composer.phar را در آدرس سیستم عامل خود قرار دهیم تا به صورت سراسری تعریف شود و برای هر پروژهای که خواستیم بتوانیم استفاده کنیم.
Packagist چیست؟
اگر برایتان سوال است که کامپوزر پکیجها را از کجا تهیه میکند، باید بدانید که کامپوزرها از یک منبع رسمی Packagist استفاده میکند. در اصل میتوان گفت Packagist مخزن اصلی کامپوزر است. در این مخزن صدها کتابخانه وجود دارد که باعث افزایش محبوبیت composer در بین توسعه دهندگان شده است. اگر به دنبال ویژگی خاصی برای توسعه پروژههایتان هستید که شخص ثالثی آن را نوشته است، در ابتدا باید Packagist را بررسی کنید. همچنین با تغییر دادن کلید اصلی مخازن در فایل composer.json میتوانید به مخازن غیر از Packagist برای نصب کتابخانه نیز دسترسی داشته باشید. در واقع میتوان گفت که این کار سبب میشود تا بتوانید بستههای کامپوزر خصوصی خود را مدیریت کنید.