آموزش نصب و استفاده از Composer
۳۰ آبان ۱۳۹۹
در این مقاله قصد داریم تا نحوهی نصب و استفاده از Composer که یک ابزار برای مدیریت وابستگیهای زبان PHP است را در سیستمعاملهای مختلف به شما نشان دهیم. این ابزار بسیار ساده و قابل اعتماد است و همچنین تعداد زیادی از توسعهدهندگان برای مدیریت و اضافه کردن پکیجها یا کتابخانهها در پروژههای PHP از آن استفاده میکنند زیرا دیگر مجبور نیستند صفحههای وب یا بخشی از برنامههای خود را از ابتدا توسعه دهند. قبل از کار با Composer میبایست آن را بر روی سیستم خود نصب کنیم.
نصب Composer
در این بخش به نحوهی نصب Composer بر روی سیستمعاملهای مختلف مانند Windows، macOS، Linux و هاستهای اشتراکی خواهیم پرداخت.
۱) نصب Composer در macOS، Linux و هاستهای اشتراکی
دستورهایی که در این بخش قرار دارند مختص به نصب Composer در macOS، Linux و هاستهای اشتراکی است. اگر میدانید که این ابزار قبلا بر روی سیستم فعلی نصب شده اما بسیار قدیمی است، میتوانید آن را با دستور زیر بهروزرسانی کنید:
php composer.phar self-update
اما اگر نصب نشده باشد میتوانید با دنبال کردن مراحل زیر Composer را نصب کنید:
- با استفاده از SSH به سرور میزبانی خود متصل شوید یا اگر میخواهید Composer را بر روی سیستم شخصی خود نصب کنید، وارد Terminal شوید.
- با استفاده از دستور زیر فایل نصب Composer را دانلود کنید:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- حال با استفاده از دستور زیر از سالم بودن فایل نصب اطمینان حاصل کنید (تایید Signature با SHA-384):
php -r "if (hash_file('sha384', 'composer-setup.php') === 'Installer-Checksum') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer-Checksum
در دستور بالا متغیر است زیرا در هر نسخه از Composer این مقدار متفاوت میشود و شما میتوانید با مراجعه به این صفحه، آخرینInstaller-Checksum
را دریافت کرده و در دستور بالا جایگزین کنید.
- پس از اطمینان از سالم بودن فایل نصب میتوانید Composer را به دو صورت local و global نصب کنید. نصب به صورت local یعنی اینکه Composer را در پوشهی فعلی نصب کنید که دردسرهایی نیز به همراه دارد. مثلا برای اجرای دستورهای Composer میبایست پوشهی نصب آن را مشخص کنید اما با نصب global که باعث میشود Composer در پوشهی
/usr/local/bin
نصب شود، میتوانید از آن در همه جا استفاده کنید. حال این تصمیم به شما بستگی دارد، ما هر دو روش را به شما آموزش خواهیم داد:
نصب به صورت local:
php composer-setup.php
نصب به صورت global:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
اگر همهچیز درست باشد خروجی زیر را مشاهده خواهید کرد:
You will get this result:
All settings correct for using Composer
Downloading...
Composer (version 1.10.5) successfully installed to: /usr/local/bin/composer
- پس از اتمام نصب میتوانید با اجرای دستور زیر فایل نصب Composer را حذف کنید:
php -r "unlink('composer-setup.php');"
- در نهایت با دستور زیر به Composer دسترسی خواهید داشت:
composer
با اجرای دستور بالا، نتیجه زیر به شما نمایش داده میشود:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ / __ `__ / __ / __ / ___/ _ / ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
____/____/_/ /_/ /_/ .___/____/____/___/_/
/_/
Composer version 1.10.5 2020-02-12 16:20:11
۲) نصب Composer در سیستمعامل Windows
شروع کار با Composer در سیستمعامل Windows کمی متفاوت است، مثلا برای دانلود و نصب آن نیازی به اجرای دستورهای مختلف نیست و فقط با دنبال کردن مراحل زیر میتوانید آن را بر روی سیستم خود نصب کنید:
- برای نصب PHP میتونید از XAMPP استفاده کنید زیرا روند کار ساده است و این برنامه در عرض چند دقیقه بر روی سیستم شما نصب میشود.
- پس از نصب XAMPP میتوانید آخرین نسخهی Composer را از وبسایت رسمی دانلود کنید.
- پس از دانلود، فایل نصب Composer را اجرا کنید و در زمانی که از شما خواسته میشود تا Developer mode را فعال کنید، آن را نادیده بگیرید و فرایند نصب را ادامه دهید.
- یک صفحهی دیگر باز میشود که میخواهد مسیر پیشفرض PHP را تعیین کنید. اگر XAMPP را نصب کرده باشید میتوانید از مسیر C:/xampp/php/php.exe استفاده کنید و بر روی Next کلیک کنید.
- در ادامهی فرایند نصب از شما خواسته میشود تا تنظیمات پروکسی را پیکربندی کنید. این مرحله را نیز میتوانید Skip کنید و در مرحلهی آخر بر روی Install کلیک کنید.
- پس از اتمام نصب میتوانید با استفاده از کلیدهای ترکیبی CTRL + R، ابزار Run را باز کنید و cmd را تایپ کرده و بر روی OK کلیک کنید.
- حال شما میتوانید با دستور زیر با Composer کار کنید:
composer
اکنون شما Composer را در سیستمعامل Windows نصب کردهاید. PATH variable این ابزار بهطور خودکار در سیستم شما ثبت میشود. اکنون میتوانید Command Prompt را باز کرده و Composer را در هر جا میخواهید استفاده کنید.
کار با Composer.json
اکنون برای استفاده از Composer در پروژههای PHP میبایست یک فایل با نام composer.json در پروژه خود ایجاد کنید. این فایل شامل پکیجهایی است که از آنها بهعنوان وابستگیهای پروژه استفاده میکنیم و باید دانلود شوند. علاوهبراین این ابزار نسخهی پکیجهای شما را بررسی میکند، مثلا در هنگام استفاده از یک پکیج قدیمی به شما اطلاع میدهد تا آن را بهروزرسانی کنید.
این امکان وجود دارد که شما composer.json را به صورت دستی ایجاد و بهروزرسانی کنید اما این مقاله در رابطه با خودکار کردن این فرایند است و توصیه نمیشود که این کار را به صورت دستی انجام دهید. در ادامه با ایجاد یک نمونه پروژه، فواید composer.json را بررسی میکنیم.
پروژهای که میخواهیم بر روی آن کار کنیم، یک timer ساده با زبان PHP است که به توسعهدهندگان اجازه میدهد تا زمان اجرای کدهایشان را متوجه شوند. این پروژه برای اهداف دیباگینگ و بهینهسازی پروژهها بسیار مفید است.
مراحل زیر را قدم به قدم انجام دهید:
- یک پوشه جدید برای پروژه ایجاد کنید. از آنجا که پروژه فعلی ما یک تایمر است، نام پوشه را phptimer میگذاریم. شما میتوانید پوشه جدید را به صورت دستی ایجاد یا دستور زیر را در خط فرمان سیستمعامل خود اجرا کنید تا پوشه مورد نظرمان ساخته شود:
mkdir phptimer && cd phptimer
- یک پکیج یا کتابخانه متناسب با این پروژه پیدا کنید. بهترین منبع برای پیدا کردن پکیجها و کتابخانههای زبان PHP را میتوانیم Packagist بدانیم. پس از وارد شدن به Packagist میتوانید کلمهی timer را در نوار جستجو تایپ کنید تا پکیجهای مرتبط به شما نشان داده شوند:
همانطور که مشاهده میکنید، تعداد زیادی پکیج با عنوان timer در این سایت وجود دارد و هر یک دارای نام مشخص به همراه توضیحی کوتاه از آنچه که انجام میدهند، است. ما برای این پروژه از phpunit/php-timer استفاده میکنیم زیرا بیشترین دانلود و بیشترین ستاره در GitHub را دارد.
- حال با اجرای دستور زیر میتوانید پکیجی را که در مرحلهی قبل انتخاب کردهایم به پروژه فعلی اضافه کنید:
composer require phpunit/php-timer
خروجی دستور بالا، نسخهی پکیج را نشان میدهد:
Using version ^1.0 phpunit/php-timer
نماد caret (^) به این معناست که Composer همیشه این پکیج را بهروز میکند تا زمانیکه نسخهی جدید با نسخههای قبل ناسازگار باشد. در این مثال محدودهی بهروزرسانی را میتوان از نسخهی ۱.۰.۹ تا نسخهی ۲.۰.۰ دانست و از نسخهی ۲ به بعد سازگاری با نسخههای قدیمی از بین میرود. شما میتوانید برای کسب اطلاعات بیشتر در رابطه با نسخههای Composer، مستندات رسمی این ابزار را مطالعه کنید.
البته پس از اجرای دستور بالا در پوشهی پروژه شما دو فایل با نامهای composer.json و composer.lock و یک پوشه با نام vendor که تمام پکیجها و وابستگیها در آنجا ذخیره میشوند، ایجاد خواهد شد.
استفاده از اسکریپت Autoload
تا به اینجای پروژه، Composer را نصب و پکیج phpunit/php-timer را به پروژه خود اضافه کردیم، تنها کاری که باقی مانده این است که از پکیج phpunit/php-timer در هر جا که نیاز است زمان اجرای کدهایمان را اندازهگیری کنیم، استفاده کنیم و خوشبختانه توسط فایل Composer autoload، روند استفاده از این پکیج سریعتر میشود.
قبل از شروع استفاده از پکیج phpunit/php-timer میبایست با کد زیر فایل autoload را در ابتدای کدها اضافه کنیم:
require __DIR__ . '/vendor/autoload.php';
برای درک بهتر موارد این پکیج را در پروژه phptimer استفاده میکنیم:
- فایلی با نام demo.php ایجاد و با یک ویرایشگر آن را باز کنید، در این مثال ما از ابزار nano برای ویرایش فایل استفاده میکنیم:
nano demo.php
سپس کدهای زیر را در این فایل وارد کنید:
<?php
require __DIR__ . '/vendor/autoload.php';
Timer::start();
// your code
$time = Timer::stop();
var_dump($time);
print Timer::secondsToTimeString($time);
- حال این اسکریپت آمادهی اجرا است. شما میتوانید با اجرای دستور زیر مقدار زمانی که طول میکشد تا کدهای شما کاملا اجرا شوند را مشاهده کنید:
php demo.php
خروجی دستور بالا باید به صورت زیر باشد:
double(1.0893424438611E-5)
0 ms
بهروزرسانی وابستگیهای پروژه
در آخر نیاز است بدانید که چگونه میتوانید وابستگیهای پروژه خود را بهروزرسانی کنید. برای انجام این کار دو روش وجود دارد:
- در این نوع بهروزرسانی با استفاده از دستور زیر همهی پکیجها بررسی و نسخهی جدید آنها نصب میشود:
composer update
- یا اگر میخواهید یک پکیج خاص یا چندین پکیج را بهروزرسانی کنید میتوانید از دستور زیر استفاده کنید:
composer update vendor/package vendor2/package2
به یاد داشته باشید که میبایست vendor/package را با نام پکیج مورد نظر خود جایگزین کنید. Composer با اجرای هر یک از دستورهای بالا، فایلهای composer.json و composer.lock را بهروز میکند.
جمعبندی
Composer به توسعهدهندگان PHP کمک میکند تا وابستگیهای پروژهشان را مدیریت کنند. به لطف این ابزار، توسعهدهندگان بهراحتی میتوانند پکیجهای متنباز را در یک بخش خاص از پروژه استفاده و آنها را مدیریت کنند.
منبع: https://www.hostinger.com/tutorials/how-to-install-composer