Composer، یک ابزار مدیریتی به منظور مدیریت برنامههای پیش نیاز برای PHP است (همانطور که npm برای Node.js و pip برای python است).
Composer تمام بستههای PHP مورد نیاز پروژه شما را جمعآوری کرده و آنها را مدیریت مینماید؛ به همین دلیل در تمامی چارچوبها و پلتفرمهای مدرن PHP مانند Laravel ،Symfony ،Drupal و Magento 2 استفاده میشود.
در این آموزش، مراحل نصب Composer در CentOS 8 شرح داده شده است.
از اوبونتو استفاده می کنید؟ آموزش نصب php در اوبونتو را مطالعه نمایید.
چناچه عجله دارید و تنها به نصب سریع Composer نیاز دارید، به بخش نصب سریع Composer بروید.
قبل از دنبال کردن این آموزش، مطمئن شوید که موارد زیر را در سیستم خود دارید:
- به عنوان یک کاربر با امتیازات sudo وارد سیستم شدهاید.
- PHP را روی سیستم CentOS 8 خود نصب دارید.
نصب Composer در CentOS
مراحل زیر را برای نصب Composer در CentOS 8 انجام دهید.
بسته PHP CLI (واسط خط فرمان) و تمام وابستگیهای دیگر را با دستور زیر نصب نمایید:
sudo dnf install php-cli php-json php-zip wget unzip
پس از نصب PHP CLI، اسکریپت نصب کننده Composer را دانلود کنید:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
دستور بالا فایلی به نام composer-setup.php را در فهرست کاری فعلی دانلود میکند.
یکپارچگی داده را با مقایسه هش SHA-384 فایل با هش موجود در صفحه کلیدهای عمومی/امضاهای Composer بررسی نمایید.
دستور wget زیر، امضای آخرین نصب کننده Composer را از صفحه Composer’s Github دانلود کرده و آن را در متغیری به نام HASH ذخیره مینماید:
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
به منظور تأیید صحت اسکریپت نصب، دستور زیر را اجرا کنید:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
اگر هشها مطابقت داشته باشند، پیام زیر نشان داده میشود:
output
Installer verified
در غیر این صورت (اگر هشها مطابقت نداشته باشند)، پیغام Installer corrupt را مشاهده خواهید کرد. پس از تأیید یکپارچگی، به مرحله بعدی بروید.
این مطلب نیز ممکن است برای شما مفید باشد: نحوه افزودن و حذف کاربر در CentOS 8
برای نصب Composer در پوشه /usr/local/bin دستور زیر را اجرا کنید:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
دستور بالا، composer را به عنوان یک دستور در سراسر سیستم نصب میکند بطوریکه برای همه کاربران در دسترس خواهد بود. پس از اجرا، خروجی دستور چیزی شبیه به این خواهد بود:
output
All settings correct for using Composer
Downloading...
Composer (version 1.10.1) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
پس از آن، با اجرای دستور زیر و مشاهده نسخه Composer از صحت نصب اطمینان حاصل نمایید:
composer -V
output
Composer version 1.10.1 2020-03-13 20:34:27
در این مرحله، Composer را با موفقیت بر روی سیستم CentOS خود نصب کردهاید و اکنون میتوانید از آن استفاده نمایید.
نصب سریع Composer
برای نصب سریع Composer در سیستم CentOS 8 مراحل زیر را انجام دهید:
PHP CLI و Zip را با اجرای دستور زیر نصب کنید:
sudo dnf install php-cli php-json php-zip curl unzip
Composer را با دستور curl بصورت زیر نصب نمایید:
curl -sS https://getcomposer.org/installer |php
فایل Composer را به پوشه /usr/local/bin منتقل کنید:
sudo mv composer.phar /usr/local/bin/composer
شروع کار با Composer
اکنون که Composer روی سیستم CentOS شما نصب شده است، در ادامه نحوه استفاده از Composer را در یک پروژه PHP به شما نشان خواهیم داد.
با ایجاد دایرکتوری اصلی پروژه شروع کنید و سپس به آن مسیر بروید:
cd ~/my-first-composer-project
در این مثال، ما از یک بسته PHP به نام carbon به منظور ایجاد یک برنامه کاربردی که زمان فعلی را چاپ میکند، استفاده مینماییم.
دستور زیر را برای مقداردهی اولیه یک پروژه جدید Composer و نصب بسته carbon اجرا کنید:
composer require nesbot/carbon
output
sing version ^2.32 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.0.1): Downloading (connecting..Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.15.0): Downloading (100%)
- Installing symfony/translation (v5.0.6): Downloading (100%)
- Installing nesbot/carbon (2.32.1): Downloading (100%)
symfony/polyfill-mbstring suggests installing ext-mbstring (For best performance)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
Writing lock file
Generating autoload files
3 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
همانطور که از خروجی بالا میبینید، Composer فایلی به نام composer.json ایجاد میکند و carbon و تمام وابستگیهای آن را دانلود مینماید.
اگر دایرکتوری پروژه خود را لیست کنید، خواهید دید که شامل دو فایل composer.json و composer.lock و یک دایرکتوری vendor است.
ls -l
output
-rw-rw-r--. 1 vagrant vagrant 60 Mar 27 18:05 composer.json
-rw-rw-r--. 1 vagrant vagrant 11135 Mar 27 18:06 composer.lock
drwxrwxr-x. 6 vagrant vagrant 82 Mar 27 18:06 vendor
vendor یک دایرکتوری است که وابستگیهای پروژه در آن ذخیره میشود.
فایل composer.lock حاوی لیستی از تمام بستههای نصب شده، از جمله نسخههای آنها است.
composer.json فایلی است که پروژه PHP شما، از جمله وابستگیهای PHP و سایر فرادادهها را توصیف میکند،
Composer دارای قابلیت دانلود خودکار است که به شما امکان میدهد از کلاسهای PHP بدون نیاز به دستور require یا include استفاده کنید.
این مطلب نیز ممکن است برای شما مفید باشد: نحوه نصب و استفاده از PHP Composer در اوبونتو
یک فایل با نام testing.php ایجاد کرده و کد زیر را اضافه نمایید:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
در خط اول بعد از تگ php باز، فایل vendor/autoload.php را اضافه میکنیم که همه کتابخانهها را به صورت خودکار بارگذاری مینماید.
در مرحله بعد، Carbon\Carbon را به صورت Carbon نامگذاری میکنیم. خط آخر زمان فعلی را با استفاده از دستور now چاپ مینماید.
اکنون اسکریپت را با دستور زیر اجرا کنید:
php testing.php
خروجی دستور باید چیزی شبیه به این باشد:
output
Now: 2020-03-27 22:12:26
بعداً، اگر بخواهید بستههای PHP خود را به روز نمایید، کافیست دستور زیر را اجرا کنید:
composer update
دستور بالا جدیدترین نسخه بستههای نصب شده را بررسی کرده و در صورت وجود بسته جدیدتر و مطابقت محدودیت نسخه با آنچه در composer.json مشخص شده، Composer بسته را به روز مینماید.
منبع:
linuxize
0 دیدگاه
نوشتن دیدگاه