گیو سرور ارائه دهنده سرویس های ابری و VPS اختصاصی ایران و کانادا

نصب و استفاده Composer در Ubuntu 18.04

مقدمه

Composer یک برنامه مدیریت پیشنیاز های محبوب برای PHP است،که ساخته شده تا پیشنیاز های یک پروژه را بروزرسانی و نصب کند.چک میکند که پروژه برای اجرا شدن به کدام برنامه ها نیاز دارد و آنها را براساس نیاز پروژه و نسخه آن برای شما نصب میکند.

در این مقاله،Composer را برای Ubuntu 18.04 نصب میکنیم و استفاده های اولیه را یاد میگیریم.

نصب بودن Ubuntu 18.04 برای شروع کار کافی است.

مرحله اول – نصب پیشنیاز ها

قبل از دانلود و نصب Composer،باید مطمئن شوید سرور شما تمام پیشنیاز هارا نصب شده داشته باشد.

ابتدا حافظه مدیریت بستۀ aptitude را با دستور زیر بروزرسانی کنید:

حال نوبت پیشنیاز ها است.برای دانلود Composer به curl و برای نصب و اجرای آن به php-cli نیاز داریم.همچنین php-mbstring نیز برای به کارگیری و استفاده از کتابخانه ها استفاده میشود.از git نیز برای دانلود پیشنیاز های پروژه استفاده میشود و unzip برای خارج کردن بسته های zip شده.همه موارد گفته شده با خط زیر قابل نصب است:

بعد از نصب بسته های بالا،میتوانیم خود Composer را نصب کنیم.

مرحله دوم – دانلود و نصب Composer

Composer فایلی برای نصب به زبان PHP ارائه میدهد.ما آن را دانلود کرده سپس Composer را نصب میکنیم.

ابتدا مطمئن شوید در دایرکتوری home یوزرتان هستید،سپس با curl فایل نصب را دانلود میکنیم:

سپس چک کنید که فایل دانلود شده خراب نباشد.برای اینکار باید تایید شود که hash فایل نصبی با hash صفحه SHA-384 در github مغایرت ندارد.به لینک زیر مراجعه کنید:

https://composer.github.io/pubkeys.html

و خط اول که به صورت hash شده قرار دارد را کپی کرده و به عنوان متغیر HASH در سرور خود ذخیره کنید:

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

اگر مشکلی وجود نداشته باشد،در خط آخر این عبارت را میبینید:

اگر عبارت Installer corrupt را دیدید،باید دوباره برنامه را دانلود کنید و دوباره چک کنید که Hash آن صحیح باشد.پس از دریافت تایید فایل نصبی،میتوانید ادامه دهید.

برای نصب composer به طور Global یعنی برای کل سیستم عامل نه فقط برای یک پروژه،از دستور زیر استفاده کنید که آن را در دایرکتوری /usr/local/bin/ نصب میکند:

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

برای تصدیق عملیات نصب composer را وارد کنید:

و در خروجی توضیحاتی برای نسخه و تحلیل Composer را میبینیم:

*اگر با دسترسی root آنرا اجرا کنید،در خط اول یک عبارت به چشم میخورد که توصیه شدید میکند که با یوزر root یا با آن مقدار دسترسی برنامه را اجرا نکنید.جزییات این امر را میتوانید در اینجا ببینید.*

دریافت این پیام به این معنی است که Composer به طور کامل نصب شده و در کلِ سیستم در دسترسی است.

نکته:اگر نمیخواهید Composer برای کل سیستم نصب شده و فقط برای یک پروژه نصب شود،میتوانید از دستور زیر استفاده کنید.

با این دستور،در دایرکتوری که در آن قرار دارید،یک فایل composer.phar ساخته میشود که با دستور زیر قابل اجرا خواهد بود:

حال با خود برنامه Composer سعی در مدیریت پیشنیازها خواهیم کرد.

مرحله سوم – استفاده از Composer در یک پروژه

پروژه های PHP به طور معمول به یک کتابخانه (Library) خارجی نیاز دارد که مدیریت پیشنیازها و نسخه های آن ممکن است مستلزم مهارت زیادی باشد.Composer میتواند این امر را با پیگیری پیشنیاز ها و آسان کردن نصب آنها تسهیل ببخشد.

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

نیازی نیست که این فایل را خودتان  بسازید.چرا که ممکن است به راحتی موجب خطای نحوی در برنامه شود.Composer خود به خود این فایل را هنگامی که شما پیشنیازی را با دستور require صدا میزنید،میسازد.میتوانید پیشنیاز های دیگر را بدون تغییر دستی این فایل از همین طریق اضافه کنید.

برای ادامۀ نصب بسته ها به عنوان پیشنیاز در یک پروژه،این مراحل را باید طی کنید:

  • مشخص کنید برنامه به چه کتابخانه ای احتیاج دارد
  • در Packagist.org،مخزن بسته های رسمی Composer،یک کتابخانه مناسب و Open Source بیابید.
  • بسته ای که میخواهید پیشنیاز کنید را انتخاب کنید
  • composer require را اجرا کنید تا پیشنیاز در فایل composer.json مشمول شود و در آینده نصب شود.

حال بیایید این راه حل را با یک برنامه آزمایشی امتحان کنیم.

هدف برنامه این است که جمله ای که بعدش میآید را به یک جمله نزدیک به لینک (یا Slug) تبدیل میکند.

ابتدا یک دایرکتوری برای پروژه مان میسازیم:

حال در Packagist به دنبال یک بسته میگردیم که به ما کمک میکند Slug بسازیم.اگر در Packagist عبارت Slug را جستجو کنید،نتیجه به شکل زیر خواهد بود:

در سمت راست دو عدد میبینید،بالایی نشانگر تعداد دانلود ها و پایینی تعداد ستاره های دریافتی برنامه از کاربران در GitHub است. میتوانید با انتخاب یکی از دو گزینه فلش یا ستاره در کنار نوار جستجو،نتایج را براساس دانلود ها یا ستاره ها ببینید.درواقع بسته ای که تعداد دانلود بیشتر یا ستاره بیشتری داشته باشد،پتانسیل بیشتری برای اینکه یک نسخه پایدار باشند،دارند.همچنین خواندن توضیحات نیز توصیه میشود تا از دریافت بسته اشتباهی جلوگیری شود.

ما به یک مبدل رشته به slug ساده نیاز داریم.با توجه به جستجو،cocur/slug با تعداد دانلود و ستاره های زیاد،نتیجه مناسبی به نظر میآید.

بسته ها در Packagist،یک نام سازنده و یک نام بسته دارند.هر بسته یک نمایانگر به همین شکل دارد که GitHub نیز به همان شکل نمایش میدهد.کتابخانه ای که ما میخواهیم نصب کنیم از نام cocur/slugif استفاده میکند.شما به این نام برای استفاده آن در پروژه خود نیاز دارید.

حالا که میدانید دقیقا چه بسته ای را میخواهید اجرا کنید،دستور comand require را اجرا کنید تا بسته را با ایجاد فایل composer.json  پیشنیاز کند:

و خروجی را به شکل زیر میبینید:

همانطوری که میبینید،Composer انتخاب کرد که کدام نسخه از بسته را استفاده کند.حال اگر دایرکتوری پروژه تان را چک کنید،دو فایل جدید به وجود آمده اند:

composer.jsoncomposer.lock

و دایرکتوری vendor. با دستور ls لیست محتویات را دریافت کنید.

فایل composer.lock برای تشخیص اینکه کدام نسخه از هر بسته نیاز است و اطمینان از اینکه همان بسته ها در صورت نصب پروژه در یک سیستم دیگر نصب میشوند،استفاده میشود.دایرکتوری vendor محلی است که پیشنیاز های پروژه ذخیره میشوند.این دایرکتوری جز ملزومات کنترل نسخه به حساب نمیآید،شما تنها به composer.json و composer.lock نیاز دارید.

نکته:هنگام نصب یک پروژه که فایل composer.json را دارد،کافیست composer install را در خط دستور وارد کنید تا پیشنیاز ها دانلود شوند.

با چک کردن composer.json میتوانیم بفهمیم Composer کدام نسخه را برای پیشنیاز کردن در اولویت قرار داده:

همانطور که میبینید،با لحاظ کردن ^ در ابتدای شماره نسخه،یعنی حداقل نسخه ۳٫۱ و حداکثر نسخه پایینتر از ۴٫۰ را نصب کند.

در اکثر موارد شما نیازی به تغییر دستیِ نسخه پیشنیاز در فایل composer.json ندارید.اما ممکن است شرایطی رخ دهد که شمارا مجبور به ایجاد تغییر در این فایل کند.برای مثال وقتی که یک آپدیت بزرگ از این کتابخانه ارائه شود و شما بخواهید بروزرسانی کنید.در اینجا میتوانید اطلاعات مربوط به تنظیم نسخه هارا بیشتر مطالعه کنید.

در مرحله بعد،به بارگذاری خودکار پیشنیازها توسط Composer میپردازیم.

مرحله چهارم – مشمول کردنِ اسکریپت Autoload

از آنجا که PHP به طور خودکار کلاس ها را بارگذاری نمیکند،Composer یک اسکریپت برای بارگذار خودکار تهیه کرده که میتوانید در پروژه خود بگنجانید و به صورت رایگان بارگذاری اتوماتیک دریافت کنید.

تنها کاری که نیاز است انجام دهید،قرار دادن فایل autoload.php از دایرکتوری vendor (که پیشتر خواندیم) در دایرکتوری پروژه،قبل از ساختن کلاس ها میباشد.این فایل با اضافه کردن اولین پیشنیاز،خود به خود ساخته میشود.

حال آنرا در برنامه آزمایشی امتحان میکنیم.

فایل test.php را بسازید و با یک ویرایشگر متن آنرا باز کنید:

قطعه کد زیر را در این فایل وارد کنید.این کد autoload.php را در دایرکتوری vendor اجرا میکند،پیشنیاز cocur/slugify را بارگذاری میکند و از آن برای ساخت slug استفاده میکند.

فایل را ذخیره کرده و خارج شوید.

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

در خروجی باید شاهد این شکل از نوشته باشیم:

هنگام انتشار نسخه های جدید،به بروزرسانی احتیاج دارند.پس در مرحله بعد به بروزرسانی آنها خواهیم پرداخت.

مرحله پنجم – بروزرسانی پیشنیاز های پروژه

هرگاه خواستید پیشنیاز های پروژه تان را بروزرسانی کنید،دستور update را اجرا کنید:

این دستور دنبال نسخه های جدیدتر کتابخانه های شما میگردد.اگر نسخه ای جدیدتری وجود داشته باشد و با محدوده نسخه هایی که در composer.json مشخص کردید همخوانی داشته باشد،Composer نسخه جدید را جایگزین آن میکند.composer.lock نیز بروز میشود تا این تغییرات اجرایی شوند.

همچنین میتوانید با دستور زیر یک یا چند کتابخانه مورد نظرتان را به جای همه آنها آپدیت کنید:

نتیجه

Composer ابزار قدرتمندی است که هر توسعه دهندۀ PHP ای باید آنرا در کنار خود نگه دارد.در این مقاله،شما Composer را برای یک پروژه ساده نصب و استفاده کردید.حالا شما میدانید چطور پیشنیاز هارا نصب و بروزرسانی کنید.

علاوه بر اینکه راهی آسان و قابل اعتماد برای مدیریت پیشنیازهای پروژه میباشد،Composer یک راه استاندارد برای اشتراک و اکتشاف بسته های ساخته شده PHP نیز میباشد.