andriajah Sun Jun 2022 1 year ago

Cara Membuat Composer PHP Package

PHP telah menjadi bahasa pemrograman yang lebih populer dalam pengembangan situs web. Komposer adalah salah satu faktor kunci utama. Terkadang Anda memerlukan beberapa fungsionalitas yang sudah Anda kerjakan dalam satu proyek. Atau ketika Anda mencari di web, sebagian besar waktu, Anda sudah akan menemukannya di repositori github. Dalam hal ini, Anda hanya perlu mengunduh perpustakaan itu dengan git dan memasukkannya ke dalam proyek Anda, terkadang perlu menambahkan konfigurasi Anda dan Anda dapat menggunakan perpustakaan itu di poroject Anda dengan composer.

Composer adalah manajer paket PHP di mana Anda dapat menggunakan paket yang dikembangkan oleh komunitas. Anda juga dapat membuat paket Anda sendiri dan membagikannya dengan pengembang lain. Pada artikel tutorial ini, kita akan membuat package sederhana dan menggunakannya. Saya akan membuat proyek sederhana yang akan memberikan alamat IP pengguna.

 

file composer.json

Untuk membuat paket, pertama Anda perlu menginisialisasi paket Anda dengan file composer.json . composer.json adalah file tempat informasi paket Anda disimpan. Untuk membuat file composer.json, jalankan perintah di bawah ini:

composer init

Ketika Anda menjalankan perintah ini, ia akan menanyakan informasi paket, seperti nama paket, deskripsi, penulis, jenis, lisensi dll. Ia juga akan menanyakan apakah paket Anda memerlukan paket lain. Setelah itu, Anda dapat melihat file composer.json di bawah ini. Berikut adalah file yang telah saya buat.

{
    "name": "jiteshmeniya/ipgetter",
    "description": "Get IP address of the user",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "jiteshmeniya99",
            "email": "[email protected]"
        }
    ],
    "require": {}
}

Selain composer.json, ada juga beberapa file di root package.json. README.md file adalah dokumentasi dasar yang akan menjelaskan tentang paket dan cara menggunakannya. LICENSE file adalah istilah bagaimana pengembang lain diizinkan untuk menggunakan dan memodifikasi kode paket. srcadalah direktori utama tempat semua kode Anda berada

Saya telah membuat kelas di bawah ini di file src/getip/IPGetter.php.

<?php

namespace IPGetter;

class IPGetter
{
    /**
     * get IP address of the user
     *
     * @return void
     */
    public static function getIPAddress()
    {
        return $_SERVER['REMOTE_ADDR'];
    }
}

Sekarang kita harus memodifikasi file composer.json karena kita perlu memuat semua kelas src secara otomatis.

{
    "name": "jiteshmeniya/ipgetter",
    "description": "Get IP address of the user",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "jiteshmeniya99",
            "email": "[email protected]"
        }
    ],
    "require": {
        "php": ">=5.6"
    },
    "autoload": {
        "psr-4": {
            "IPGetter\\": "src/getip"
        }
    }
}

Dalam persyaratan, kami telah menambahkan versi php minimum yang diperlukan. Jadi jika paket Anda memiliki kode yang hanya dapat bekerja pada versi PHP tertentu, Anda dapat menentukannya di sini. Jadi setelah itu seseorang akan mencoba menginstal ini akan mendapatkan kesalahan tanpa menginstal. Juga di autoload, kami telah menambahkan namespace kelas, sehingga semua file di dalam src/getipdirektori akan dimuat namespace "IPGetter".

 

Kirim paket ke Packagist.

Setelah paket dibuat, Anda dapat membagikannya kepada pengembang lain dengan github dan mengirimkannya ke ahli paket. Dengan melakukan ini, pengembang lain dapat menggunakan paket Anda hanya dengan satu perintah. Untuk mengunggah paket Anda ke github, periksa artikel ini [Bagaimana cara mengunggah proyek ke git?]

 

Sekarang buka Packagist  dan kirimkan tautan paket Github Anda.

 

Sekarang Anda akan mendapatkan perintah untuk menginstal paket. Dalam kasus saya, saya mendapatkan perintah seperti ini:

composer require jiteshmeniya/ipgetter

Gunakan paket di Proyek Anda

Kapan pun Anda perlu menggunakan paket di proyek Anda, jalankan perintah itu di proyek. Ini akan membuat direktori vendor dengan folder paket Anda bersama dengan folder komposer. folder komposer memuat semua kelas folder vendor. Ada juga autoload.phpfile di folder vendor yang mencakup folder komposer semua kelas. Jadi yang harus Anda lakukan adalah memasukkan file vendor/autoload.php ke dalam file Anda index.php. Saya telah membuat index.phpfile di bawah ini dan menggunakan kelas paket.

<?php

require_once __DIR__ . '/vendor/autoload.php';

use IPGetter\IPGetter;

$ip_address = IPGetter::getIPAddress();

echo($ip_address);exit;

Kesimpulan

Dengan cara ini, Anda juga dapat membuat paket dinamis dan kompleks sesuai dengan kebutuhan Anda dan digunakan di semua proyek Anda. Dengan cara ini juga membantu pengembang lain untuk menggunakan paket Anda dan berkontribusi pada komunitas.

 

Jika Anda memiliki pertanyaan atau saran, silakan komentar di bawah.

php composer