Composeris adalah manajer ketergantungan untuk PHP (mirip dengan npm untuk Node.jsor pip untuk Python).
Komposer akan menarik semua paket PHP yang diperlukan untuk proyek Anda dan mengelolanya untuk Anda. Ini digunakan di semua kerangka kerja dan platform PHP modern seperti Laravel, Symfony, Drupal, dan Magento 2.
Dalam tutorial ini, kita akan melalui langkah-langkah menginstal dan menggunakan Composer pada mesin CentOS 7.
Prasyarat #
Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan tutorial ini:
- Masuk sebagai pengguna dengan hak istimewa sudo
- Sudah menginstal PHP 7 di sistem CentOS 7 Anda.
Menginstal Komposer di CentOS #
Langkah-langkah berikut menjelaskan cara menginstal Composer pada sistem CentOS 7.
-
Pertama-tama instal paket PHP CLI (antarmuka baris perintah) dan semua dependensi lainnya dengan:
sudo yum install php-cli php-zip wget unzip -
Setelah PHP CLI terinstal, unduh skrip penginstal Komposer dengan:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"Perintah di atas akan mendownload
composer-setup.phpfile di direktori kerja saat ini. -
Untuk memverifikasi integritas data skrip, bandingkan skrip
SHA-384hash dengan hash penginstal terbaru yang ditemukan di Kunci Publik / Halaman Tanda Tangan Komposer.Perintah wget berikut akan mengunduh tanda tangan yang diharapkan dari penginstal Komposer terbaru dari halaman Github Komposer dan menyimpannya dalam variabel bernama
HASH:HASH="$(wget -q -O - https://composer.github.io/installer.sig)"Untuk memverifikasi bahwa skrip instalasi tidak rusak, jalankan perintah berikut:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"Jika hash cocok, pesan berikut akan ditampilkan:
Installer verifiedJika hash tidak cocok, Anda akan melihat
Installer corrupt. Dalam hal ini, Anda perlu mengunduh ulang skrip penginstalan Composer dan memeriksa ulang nilai$HASHvariabel denganecho $HASH. Setelah penginstal diverifikasi, Anda dapat melanjutkan ke langkah berikutnya. -
Jalankan perintah berikut untuk menginstal Komposer di
/usr/local/bindirektori:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composerAll settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composercomposerdiinstal sebagai perintah di seluruh sistem dan akan tersedia untuk semua pengguna. -
Langkah terakhir adalah memverifikasi instalasi:
composerPerintah di atas akan mencetak versi, perintah, dan argumen Composer.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]Pada titik ini, Anda telah berhasil menginstal Komposer di sistem CentOS Anda.
php composer-setup.php yang akan membuat file bernama composer.phar di direktori kerja Anda saat ini. Anda dapat menggunakan komposer dengan menjalankan ./composer.phar <command>. Memulai Komposer #
Sekarang setelah Composer terinstal di sistem CentOS Anda, kami akan menunjukkan cara menggunakan Composer dalam proyek PHP.
Mulailah dengan membuat direktori yang akan menjadi direktori root proyek dan tahan composer.json berkas.
composer.json file menjelaskan proyek PHP Anda termasuk dependensi PHP dan metadata lainnya.
Buat direktori proyek dan alihkan ke direktori tersebut dengan:
mkdir ~/my-first-composer-projectcd ~/my-first-composer-project
Dalam contoh ini, kami akan membuat aplikasi sampel yang akan mencetak waktu saat ini menggunakan paket yang disebut karbon.
Jalankan perintah berikut untuk menginisialisasi proyek Composer baru dan menginstal paket karbon:
composer require nesbot/carbon Using version ^2.2 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v4.1.4): Downloading (100%)
- Installing nesbot/carbon (2.2.0): Downloading (100%)
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
Seperti yang Anda lihat dari output di atas Komposer akan membuat composer.json file dan itu akan mengunduh dan menginstal karbon dan semua dependensinya.
Jika Anda mencantumkan direktori proyek Anda, Anda akan melihat bahwa direktori itu berisi dua file composer.json dan composer.lock , dan vendor direktori.
ls -l -rw-r--r-- 1 linuxize users 60 Aug 29 00:50 composer.json
-rw-r--r-- 1 linuxize users 6.8K Aug 29 00:50 composer.lock
drwxr-xr-x 5 linuxize users 4.0K Aug 29 00:50 vendor
- The
vendordirektori adalah direktori tempat dependensi proyek disimpan. composer.lockberisi daftar semua paket yang diinstal termasuk versinya.composer.jsonmenjelaskan proyek PHP dan semua dependensi PHP.
Composer menyediakan kemampuan autoload yang memungkinkan kita menggunakan kelas PHP tanpa perlu menggunakan require atau include file.
Buat file bernama testing.php dan tambahkan kode berikut:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Mari kita menganalisis kode baris demi baris.
Di baris pertama setelah tag php pembuka, kami menyertakan vendor/autoload.php file yang dihasilkan secara otomatis oleh Composer yang akan memuat semua perpustakaan secara otomatis.
Selanjutnya, kita aliasing Carbon\Carbon sebagai Carbon dan di baris terakhir kami mencetak waktu saat ini menggunakan Karbon now metode.
Jalankan skrip dengan mengetik:
php testing.php Outputnya akan terlihat seperti ini:
Now: 2018-09-26 20:08:18
Nanti, jika Anda ingin memperbarui paket PHP Anda, Anda cukup menjalankan:
composer update
Perintah di atas akan memeriksa versi yang lebih baru dari paket yang diinstal dan jika versi yang lebih baru ditemukan dan batasan versi cocok dengan yang ditentukan di composer.json , Komposer akan memperbarui paket.