ابزاری برای مدیریت وابستگی های(Dependency) یک پروژه یا کتابخانه است. فرض کنید شما میخواهید یک کتابخانه جدید به پروژه خود اضافه کنید اما این کتابخانه جدید نیازمند چند کتابخانه دیگر است. آیا تک به تک شروع به جستجو و پیدا کردن و نصب آنها میکنید؟

کامپوزر (composer) یک نرم افزار کوچک است که این کار را برای شما انجام میدهد…

بدون اینکه شما درگیر این باشید که چه کتابخانه های دیگری نیاز خواهید داشت فقط کتابخانه مربوطه را با استفاده از composer نصب کنید. composer بر اساس تنظیماتی که در فایل composer.json به همراه کتابخانه وجود دارد تشخیص میدهد که برای اجرای این کتابخانه به چه ابزار دیگری و چه نسخه ای از آنها نیاز خواهید داشت. سپس آنها را دانلود و معمولا در پوشه ای به نام vendor قرار میدهد. به همراه آن یک فایل autoload.php تولید میشود که میتوانید به واسطه این فایل از کتابخانه مورد نظر استفاده کنید.

علاوه به این زمانی که شما نرم افزار جدیدی می نویسید که از کتابخانه های دیگری استفاده میکند, میتوانید نام این کتابخانه ها را در فایل composer.json مربوط به نرم افزار خود قرار دهید تا هر فرد دیگری با استفاده از composer به راحتی تمام موارد مورد نیاز برای اجرای نرم افزار را به صورت خودکار دانلود و نصب نماید.

اگر با لینوکس کار می کنید برای نصب این ابزار کوچک می توانید از دستور زیر استفاده نمایید :

این دستور فایلی را با نام composer.phar دانلود خواهد کرد که در واقع یک برنامه کوچک اجرایی (توسط PHP) است. بعد از دانلود میتوانید با استفاده از دستور php در ترمینال فایل composer.phar را اجرا نمایید.

اگر با ویندوز کار میکنید در CMD به پوشه نصب PHP وارد شوید و دستور زیر را وارد نمایید :

برای اتصال به https بایستی php_openssl.dll فعال باشد. در غیر اینصورت از http استفاده نمایید.

بعد از نصب میتوانیم فایل composer.json را داخل هر پروژه ایجاد کرد. محتوای این فایل به صورت json می باشد و اغلب مواقع تنها شامل متنی مانند متن زیر می باشد :

کلید require پر استفاده ترین کلید در این فایل است. دستورات بالا مشخص میکند که پروژه ما به کتابخانه ای با نام library-name/a-library نیاز دارد که ورژن این کتابخانه میتواند از 1.0.0 تا 1.0.9 باشد.

پس از ذخیره فایل composer.json در محلی که composer.phar وجود دارد میتوانید با دستور زیر کتابخانه های مشخص شده را نصب نمایید:

در صورتی که دستور php ناشناخته باشد بایستی آدرس کامل فایل php را به جای php قرار دهید. مانند :

با دستور بالا آخرین نسخه از نسخه های 1.0 کتابخانه a-library از مخازنی که composer شناسایی میکند یافت شده و دانلود میشود و در پوشه ای با نام vendor/library-name ذخیره می شود. همزمان فایلی نیز با نام composer.lock ایجاد می شود که در آن آخرین نسخه دانلود شده کتابخانه ها ذخیره می شوند. زمانی که این فایل وجود داشته باشد و دستور install را بزنید به جای آخرین نسخه، نسخه ای که در فایل lock ذخیره شده است دانلود و نصب خواهد شد. در واقع با این فایل پروژه شما روی ورژن خاصی که دانلود شده است قفل می شود. برای اینکه بتوانید از نسخه های جدید کتابخانه ها استفاده کنید بایستی از دستور update استفاده نمایید :

پس از اجرای دستور، آخرین نسخه از کتابخانه ها بر اساس تنظیمات composer.json دریافت و نصب می شود و فایل composer.lock نیز به روز رسانی می شود. حال میتوانید فایل vendor/autoload.php را در پروژه خود require کرده و از کلاس های کتابخانه های مورد نظر استفاده نمایید.

برای اینکه بتوانید پروژه خود را به صورت یک پکیج در composer قابل شناسایی کنید دو راه وجود دارد. یکی اینکه آدرس repository پکیج مربوطه را به صورت دستی در composer.json قرار دهید مانند زیر:

با این کار ما پروژه ای که با نام hello-world در github ایجاد کرده بودیم را به عنوان یک نیازمندی در composer تعریف میکنیم.

روش دوم این است که شما پروژه خود را در سایت https://packagist.org ثبت نمایید. در این صورت نیازی به کلید repositories برای مشخص کردن مسیر پکیج نخواهید داشت.

اطلاعات بیشتر را در این آدرس بخوانید :

https://getcomposer.org/doc/00-intro.md

محمد باقر رستمی

برنامه نویسی رو دوست دارم و از کارم و بیشتر از اون از یادگرفتن لذت می برم. دوست دارم از این طریق برای مردم دنیا مفید باشم. فارغ از رنگ، نژاد، ملیت و جنسیت.

Latest posts by محمد باقر رستمی (see all)

facebooktwittergoogle_pluslinkedin

2 نظر در رابطه با “Composer چیست؟

  1. saeb

    سلام من تازه دارم برنامه نویسی و پی اچ پی یاد میگیرم. از مطلبت ممنون.
    در صورتی امکانش هست یه ویدیو آموزشی بسازید به ما تازه کارایی که خیلی چیزایی که از نظر شما بدیهیه رو نمیدونیم قابل فهم تره.
    ممنون

    پاسخ

دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

*


5 − سه =