آشنایی با مدیریت وابستگی در PHP با ابزار Composer

  • استک لرن
  • 19 فروردین 1401
What is Composer in PHP?

Composer چیست؟ کامپوزر یکی از مهم‌ترین ابزار‌های برنامه‌نویسان PHP است که به کمک آن می‌توانند پکیج‌های اپلیکیشن بک‌اند خود را مدیریت کنند. بنابراین Composer یک ابزار مدیریت وابستگی (dependency) در زبان PHP است.

به کمک این ابزار می‌توانید بسته‌ها (Package) را مدیریت کنید (نصب / به‌روز‌رسانی) کنید. با ما همراه باشید.

Composer چیست؟

همانطور که گفته شد، کامپوزر یکی از مهم‌ترین ابزار‌هایی است که برنامه‌نویسان و توسعه‌دهندگان در زبان PHP از آن استفاده می‌کنند. Composer چیزی شبیه به Gradle برای زبان جاوا و کاتلین است.

با قابلیت‌هایی که کامپوزر در اختیار شما قرار می‌دهد، نصب و به‌روز‌رسانی بسته‌های PHP بسیار آسان خواهد شد.

کامپوزر در فریمورک‌های معروفی مانند فریم ورک لاراول بصورت گسترده استفاده می‌شود.

کامپوزر یک ابزار مدیریت پکیج نیست؛ بلکه یک ابزار مدیریت وابستگی (Dependency) است.

تفاوت Package Manager و Dependency Manager
Package Manager برای پیکربندی سیستم و راه‌اندازی محیط توسعه استفاده می‌شود و با تنظیم کردن آن می‌توانید پروژه‌های زیادی را بسازید و آن تغییرات بر روی پروژه‌های ایجاد شده اعمال می‌شوند؛ در صورتی که Dependency Manager تنظیماتی را مختص یک پروژه انجام می‌دهد و تغییرات بر روی سایر پروژه‌های ایجاد شده اعمال نمی‌گردد.

ممکن است شما هم این موضوع را اشتباه کنید. درست است که Composer با پکیج‌ها سر‌و‌کار دارد اما به این دلیل که تنظیماتی که اعمال می‌شود فقط بر روی همان پروژه تغییرات اعمال می‌شود و در پروژه دیگر آن تنظیمات وجود ندارد، بنابراین یک Dependency Manager محسوب می‌شود. پس از این لحاظ با Yum و Apt متفاوت است؛ البته کامپوزر به طور گسترده‌ای از npm در توسعه خود الهام گرفته است.

Composer مولتی پلتفرم ارائه شده است. به این معنا که می‌توانید آن را بر روی ویندوز، لینوکس و مک نصب کنید.

 

مدیریت وابستگی‌ها (Dependency Manager) به کمک Composer

سیستم مورد نیاز

در آخرین نسخه کامپوزر باید نسخه 7.2.5 به بالای PHP بر روی سیستم شما نصب باشد تا بتوان Composer را اجرا کرد. البته یک نسخه طولانی مدت (نسخه 2.2.x) هنوز از نسخه 5.3.2 به بالای پی‌اچ‌پی پشتیبانی می‌کند. از این نسخه کامپوزر برای زمان‌هایی که مشکل نسخه PHP داشتید، می‌توانید استفاده کنید.

برخی تنظیمات PHP نیز برای اینکه کامپوزر بتواند به درستی کار کند، احتیاج خواهید داشت که در زمان نصب کامپوزر اگر مشکلی وجود داشته باشد، به شما اطلاع داده می‌شود.

 

آموزش نصب Composer (لینوکس / ویندوز / مک)

طریقه نصب Composer در ویندوز به این شکل است که می‌توانید نصب کننده Composer استفاده کنید.

در صورتی که سیستم عامل شما متفاوت است (مثلا سرور شما لینوکسی است و می‌خواهید بر روی هاست لینوکس نصب کنید)، کد‌های زیر را در خط فرمان Terminal به ترتیب وارد کنید.

قبل از اجرای مراحل زیر ابتدا باید PHP بر روی سیستم شما نصب باشد. کافیست در محیط ترمینال دستور php --version را بزنید تا پس از دیدن اطلاعات ورژن php، از نصب بودن php بر روی سیستم خود اطمینان حاصل کنید.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"

 

حال در همان مسیری که کد‌ها را اجرا کرده‌اید، یک فایل composer.phar خواهید دید. برای اینکه دستوری را اجرا کنید، کافیست در همان مسیر یک دستور composer اجرا کنید.

برای مثال اگر قصد آپدیت بسته‌ها را دارید:

php composer.phar update

حال اگر در سیستم عامل لینوکس دستورات را اجرا کرده‌اید و قصد دارید به صورت سراسری دستور composer در ترمینال شناخته شده باشد و نیازی به فراخوانی فایل composer.pharcomposer.phar mv composer.phar /usr/local/bin/composer

در صورتی که در سیستم عامل لینوکس مشکل Permission (عدم دسترسی) در اجرای دستوری داشتید، از sudo قبل از هر خطی از فرمان‌های بالا استفاده کنید.

 

آشنایی با دستورات Composer

در اینجا به مهم‌ترین دستوراتی که در Composer می‌توانید استفاده کنید، می‌پردازیم.

توجه فرمایید که اگر فایل composer.phar را بصورت محلی (Local) ایجاد کرده‌اید، برای اجرای دستورات زیر باید از همان php composer.phar در ابتدای دستورات استفاده کنید؛ اما اگر کامپوزر را به صورت سراسری (Global) تعریف کرده‌اید و ترمینال شما دستور composer را می‌شناسد، می‌توانید از composer در ابتدای دستورات به جای php composer.phar استفاده نمایید.

 

دستور ساخت فایل composer.json کامپوزر (init)

با اینکه می‌توان به صورت دستی فایل composer.json را ساخت، اما می‌توان از composer هم کمک گرفت و آن را به کمک دستور composer ایجاد کرد.

php composer.phar init

 

دستور نصب (Install)

این دستور فایل composer.json را از همان مسیری که در آن قرار دارید، می‌خواند، وابستگی‌ها را پیدا می‌کند و آن‌ها را نصب می‌کند.

php composer.phar install

 

دستور افزودن بسته جدید (Require)

برای نصب یک بسته (Package) جدید می‌توانید از دستور زیر استفاده کنید. این دستور یک پکیج را به پروژه اضافه می‌کند و نام و ورژن پکیج را در composer.json قرار می‌دهد. همچنین پس از نصب بسته، اطلاعات آن بسته در پوشه vendor پروژه قرار داده می‌شود.

php composer.phar require package-name

در کد بالا به جای package-name، باید نام یک بسته معتبر را قرار دهید.

 

دستور به‌روز‌رسانی (Update)

به کمک این دستور می‌توانید پکیج‌های نصب شده را به‌روز‌رسانی کنید:

php composer.phar update

 

دستور حذف (Remove)

با این دستور می‌توانید یک پکیجی که نصب شده و به پوشه vendor افزوده شده است را پاک کنید.

php composer.phar remove vendor/package-name

در کد بالا به جای package-name، باید نام یک بسته معتبر را قرار دهید.

 

نصب دوباره (ReInstall)

این دستور به دنبال یک پکیج می‌گردد و اگر آن بسته وجود داشت، آن را پاک می‌کند و دوباره نصب می‌کند.

php composer.phar reinstall package-name

در کد بالا به جای package-name، باید نام یک بسته معتبر را قرار دهید.

 

همه پکیج‌هایی که قابلیت نصب دارند (مانند بسته فریم ورک Laravel)، در یک یا چند مخزن (Repository) قرار دارند. مهم‌ترین مخزن در کامپوزر، Packagist است. با این دستور می‌توانید در مخزن Packagist به دنبال یک بسته بگردید. در صورتی که آن بسته وجود داشته باشد و یا مشابهی از آن را پیدا کند، لیست بسته‌های در دسترس را به شما نشان می‌دهد.

برای جستجو در مخازن Dependency، دستور زیر را اجرا کنید:

php composer.phar search package-name

 

کامپوزر یک ابزار مدیریت وابستگی (Dependency Manager) برای زبان برنامه‌نویسی PHP است که به کمک آن می‌توانید بسته‌های خود را مدیریت کنید.

پس از دانلود و نصب بسته‌ها، همه آن‌ها در پوشه vendor پروژه PHP شما قرار می‌گیرند.

composer.json یک فایل json است که در ریشه پروژه PHP قرار می‌گیرد و شامل اطلاعاتی در رابطه با بسته‌های PHP نصب شده می‌باشد.

composer.json شامل اطلاعات پکیج‌های PHP است که در واقع Composer آن را ایجاد کرده است؛ ولی package.json برای npm یا yarn است که برای کار با Node از آن استفاده می‌گردد.

composer.lock نسخه‌های دقیق بسته‌های نصب شده را ذخیره می‌کند. به طوری که شما در نسخه های مشابه با همکاران خود هستید که بر روی همان پروژه کار می‌کنید. می‌توان گفت که یک چک لیست ساده است.
1 نظر
در بحث پیرامون این مقاله شرکت کنید...
ارسال نظر :
پاسخ به