Composer Dengan Repositori Localhost
Umumnya untuk memanfaatkan Composer
kita wajib daring (online) untuk memanggil repositori yang berada pada situs packagist.org. Otomatis dengan demikian, jika kita ingin membuat dependensi harus diunggah ke sana terlebih dahulu. Lalu bagaimana jika kita tidak ingin mengunggah dependensi ke packagist.org namun tetap dapat menggunakan Composer
? Yakni, gunakan repositori dari localhost.
Sebenarnya, apa sih tujuannya menggunakan Composer
dengan repositori localhost? Bukankah Composer
merupakan paket manajer yang memang ditunjukan untuk mempermudah menggunakan paket-paket dependensi dari luar?
Ada pelbagai macam alasan untuk menggunakan repositori lokal, umumnya seperti berikut:
- Dependensi yang dibuat masih tahap pengembangan dan belum sempurna. Belum sepurna di sini bisa diartikan dependensi masih sebatas coba-coba, atau ia masih belum disertakan dokumentasi yang lengkap, sehingga orang lain tidak bisa memanfaatkan dependensi tersebut terkecuali si developer-nya.
- Dependensi yang dibuat memang tidak untuk disebarluaskan. Mungkin karena memang belum siap disebarluaskna atau entah karena memang kebijakannya belum atau tidak nyetujui.
- Tidak ingin menggunakan banyak dependensi buatan orang lain. Meskipun seharusnya bisa saja kita ungguah dulu, lalu gunakan dependensi yang telah kita buat tersebut. Alasan poin ke-3 akan kuat jika dihubungankan dengan alasan poin pertama.
Dari semua alasan di atas, yang paling umum alasannya adalah dependensi belum siap dipublikasi, masih sekadar coba-coba.
Persiapan
Sebelum praktek ada beberapa persiapan yang perlu:
- Sudah memasang
Composer
dan sudah dapat dipergunakan dengan sebagai mana mestinya. Jika tahap ini belum sukses, Anda bisa lihat postingan sebelumnya di sini. - Anda sudah memasang paket
git
pada sistem operasi Anda. Untuk cara pemasangannya bisa lihat di: https://git-scm.com/downloads.
Penyangkalan (Disclaimer)
Pada dasarnya tutorial ini ditunjukan untuk berbagai jenis sistem operasi yang umum dipakai sebagai desktop / personal computer seperti Windows, MacOS dan GNU/Linux, namun dalam prakteknya di sini saya hanya menggunakan di GNU/Linux. Bagi Anda yang bukan pengguna GNU/Linux tulisan ini masih tetap dapat dipergunakan, hanya saja Anda perlu menyesuaikannya dilingkungan sistem operasi Anda tersebut.
Lagipula beberapa perintah-perintahnya ada yang mirip, seperti mkdir
dan echo
. Di semua OS baik Windows, MacOS dan GNU/Linux semua menggunakan perintah tersebut.
Memulai
Pertama-tama persiapkan satu direktori bebas dengan nama apa saja, Contoh saja misalnya composerku
. Kemudian buat 2 direktori, pertama untuk nama paket dependensi Anda, contoh dengan nama paketane
, lalu dalam direktori itu buat direktori bernama src. Nah, kemudian yang kedua untuk direktori proyek Anda, misalnya
proyekane
.
Susunan Gambaran direktorinya seperti berikut:
Caranya membuatnya buka Terminal
, atau cmd
di Windows.
Kemudian lakukan perintah berikut:
mkdir composerku cd composerku mkdir paketane mkdir paketane/src mkdir proyekane
Masukan paket dependensi Anda di paketane/src/PaketAne.php
. Contoh:
Perhatian nama berkas harus CamelCase.
<?php namespace AliSoftware; Class PaketAne { public static function hello($str) { print $str; } }
Setelah itu, pada masing-masing direktori paketane
dan proyekane
, keduanya Anda buat berkas bernama composer.json
.
echo > paketane/composer.json echo > proyekane/composer.json
Kemudian Anda isikan pada composer
.json di direktori paketane
dengan kode berikut:
{ "name": "alisoftware/paketane", "type": "library", "description": "My test package", "license": "MIT", "authors": [ { "name": "Ali", "email": "admin@situsali.com", "homepage": "https://situsali.com", "role": "Developer" } ], "require":{ "php": ">=5.4.0", "ext-curl": "*" }, "autoload": { "psr-4": { "AliSoftware\\": "src/" } } }
Perhatian kode di atas menggunakan PSR-4, jika Anda ingin menggunakan PSR-0 ganti dengan:
... "autoload": { "psr-0": { "AliSoftware": "src" } ...
Kemudian yang kedua, isi composer.json pada direktori proyekane dengan kode berikut:
{ "name": "alisoftware/project", "description": "Test project", "license": "MIT", "authors": [ { "name": "Ali", "email": "admin@itusali.com" } ], "minimum-stability": "dev", "repositories": [ { "type": "vcs", "url": "../paketane" } ], "require": { "alisoftware/paketane": "*" } }
Kemudian setelah itu kita buat inisial git di dalam direktori paketane.
cd paketane git init
Langsung saja Anda commit paket Anda.
git add -A git commit -m "first commit"
Nah, jika sudah, paket seharusnya bisa langsung dipasang dengan perintah composer install
, seperti berikut:
cd .. cd proyekane composer install
Walhasil, kita tinggal memanggil autoload. Seperti berikut:
<?php require __DIR__ . '/vendor/autoload.php'; use \AliSoftware\PaketAne as Paket; Paket::hello('Hello World');
Selesai sudah Anda dapat membuat suatu dependensi dengan memanfaatkan Composer yang berada pada repositori localhost. Bagaimana jika Anda ingin melakukan perubahan atau penyuntingan pada dependensi? Cukup lakukan pada paket Anda:
git add -A git commit -m "editing ... "
Kemudian tinggal perbarhui di proyek Anda dengen perintah:
composer update
Cukup mudah bukan? Semoga tulisan ini bermanfaat. 😁