کامپوزر (Composer) چیست؟ مقالهای است که در آن به طور مفصل پیرامون تاریخچه، ماهیت و همچنین کاربرد پَکِیج مَنِجِر کامپوزر توضیح داده شده است اما چنانچه بخواهیم به طور خلاصه به این پرسش پاسخ دهیم که «کامپوزر چیست؟» باید بگوییم کامپوزر ابزاری است که پروسهٔ Dependency Management (مدیریت وابستگی) پروژه را برای توسعهدهندگان زبان برنامهنویسی برنامهنویسی پیاچپی تسهیل میسازد. به عبارت دیگر، کامپوزر چک میکند ببیند که یک پروژه چه وابستگیهایی به سایر پروژهها دارا است، سپس آنها را بسته به نسخهٔ مد نظر به سادگی روی سیستم نصب میسازد.
با توجه به اینکه در فریمورک مبتنی بر امویسی که در حال توسعهٔ آن هستیم از مفهومی تحت عنوان Autoloading استفاده شده است، بالتبع نیاز به ابزار کامپوزر خواهیم داشت تا بر اساس استاندارد PSR-4: Autoloader این کار را عملی سازیم که این هم یکی دیگر از کاربردهای این پَکِیج مَنِجِر است (در ادامهٔ آموزشها با این استاندارد بیشتر آشنا خواهیم شد.)
راهنمای نصب کامپوزر روی گنو/لینوکس
به منظور نصب کامپوزر روی سیستمعامل اوبونتو، ابتدا به ساکن باید اطمینان حاصل کنیم که ابزار curl
روی سیستم نصب است؛ سپس با استفاده از کامند زیر کَش ابزار مدیریت پکیج لینوکس را بهروزرسانی میکنیم:
$ sudo apt-get update
حال با استفاده از کامند زیر میتوانیم کامپوزر را به صورت اصطلاحاً Globally یا «سراسری» روی سیستم نصب نماییم:
$ curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
پس از موفقیتآمیز بودن مراحل فوق، با استفاده از کامند زیر میتوانیم از صحتِ نصب کامپوزر اطمینان حاصل نماییم:
$ composer
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.8.5 2019-04-09 17:46:47
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--profile Display timing and memory usage information
--no-plugins Whether to disable plugins.
-d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
about Shows the short information about Composer.
archive Creates an archive of this composer package.
browse Opens the package's repository URL or homepage in your browser.
check-platform-reqs Check that platform requirements are satisfied.
clear-cache Clears composer's internal package cache.
clearcache Clears composer's internal package cache.
config Sets config options.
create-project Creates new project from a package into given directory.
depends Shows which packages cause the given package to be installed.
diagnose Diagnoses the system to identify common errors.
dump-autoload Dumps the autoloader.
dumpautoload Dumps the autoloader.
exec Executes a vendored binary/script.
global Allows running commands in the global composer dir ($COMPOSER_HOME).
help Displays help for a command
home Opens the package's repository URL or homepage in your browser.
i Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
info Shows information about packages.
init Creates a basic composer.json file in current directory.
install Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
licenses Shows information about licenses of dependencies.
list Lists commands
outdated Shows a list of installed packages that have updates available, including their latest version.
prohibits Shows which packages prevent the given package from being installed.
remove Removes a package from the require or require-dev.
require Adds required packages to your composer.json and installs them.
run-script Runs the scripts defined in composer.json.
search Searches for packages.
self-update Updates composer.phar to the latest version.
selfupdate Updates composer.phar to the latest version.
show Shows information about packages.
status Shows a list of locally modified packages, for packages installed from source.
suggests Shows package suggestions.
u Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
update Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
upgrade Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
validate Validates a composer.json and composer.lock.
why Shows which packages cause the given package to be installed.
why-not Shows which packages prevent the given package from being installed.
از این پس میتوانیم به سادگی با استفاده از کامپوزر اقدام به پیادهسازی Autoloading در پروژهٔ خود نماییم که چگونگی این مسئله را در آموزش بعد بررسی خواهیم نمود.