Cara Install Composer di Windows, MacOS, dan Linux

Apa itu composer? Buat kalian yang baru aja bergabung ke dunia web development pasti baru denger ini kan? Tapi, no problem, semua master berawal dari pemula. Bagi kalian yang udah jago mungkin ga perlu lagi baca tulisan ini , tapi jaga-jaga kalo kalian yang lupa caranya, boleh kok mampir and baca tulisan ini untuk mengulik tutorial install composer baik di Windows, MacOs, maupun Linux.

Dependency Manager

Composer merupakan dependency manager pada bahasa PHP. Apa sih dependency manager ? Secara bahasa, dependency artinya ketergantungan. Nah, ngapain sih ada ketergantungan ? Bukanya lebih baik kalo apa-apa mandiri? Gini guys, aku kasih sedikit rahasia. Zaman now, apa yang kita buat hampir 90% lebih udah pernah dibuat orang. Artinya masalah yang kita hadapi juga udah pernah dihadapi oleh banyak orang. Oleh karena itu, tentunya udah banyak orang yang mendokumentasikan secara rapi. Kita cukup googling aja, and viola. Muncul lah jawabannya. 90% jawaban itu bakal muncul dari web bernama stackoverflow. Biasanya, pilihan jawaban yang sudah verified merupakan jawaban atas masalah yang lagi kamu alami.

Sama halnya dengan dependency manager ini. Ternyata banyak programmer berhati malaikat yang udah bisa resolve masalah dan berbaik hati berbagi dengan programmer lain. Programmer malaikat ini membuat suatu library dan membagikannya dalam repository publik, sehingga orang lain bisa gunain lewat internet. Nah itulah latar belakang adanya dependency, jadi jika kita bikin aplikasi dan membutuh suatu library library yang ternyata library itu udah ada orang lain yang buat, kita tinggal download aja melalui dependency manager. Dependency manager ini ibaratadalah jalan tol untuk memecahkan masalah kita.

Kembali lagi ke Composer. Sebenarnya, apa itu composer? Composer merupakan dependecy manager dalam bahasa PHP. Apa hanya untuk PHP? Of Cuorse. Buat kalian yang terbiasa menggunakan Java, composer ini seperti maven / gradle dan ibarat npm kalau pada NodeJS. Kalau kita ingin install composer sebenarnya gampang banget kok. Tinggal buka composer, lalu ikutin aja step-stepnya.

Nah sekian tutorial kali ini. Wkwkwkw nggak-nggak. Bercanda.

Oke , ga usah panjang lebar langsung kita coba aja install Composer. Nah perlu kalian tahu, instalasi composer ternyata beda-beda sesuai sistem operasinya. Nah perlu kalian tahu, instalasi composer ternyata beda-beda sesuai sistem operasinya. Karena itu, jangan sampai salah memilih tutorial ya.

Instalasi Pada Windows

Untuk kalian yang pake sistem operasi windows, kalian bisa langsung buka halaman Getting Started. Lalu kalian dibawa ke halaman berikut ini

Sumber : Composer

Pilih 4.1 Installation Windows -> Using Installer. Otomatis file installer Composer akan terdownload. Double klik pada installernya, kemudian next-next aja sampai selesai. Jika kalian diminta untuk menunjukan path dari php, maka pilih php.exe pada web server yang kalian install. Jika kalian menggunakan XAMPP (yang paling umum), path php terletak pada C:\Xampp\php\php.exe.

Instalasi Pada MacOs atau Linux

Kalian bisa bisa ikuti daftar command line berikut ini pada Terminal:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '8a6138e2a05a8c28539c9f0fb361159823655d7ad2deecb371b04a83966c61223adc522b0189079e3e9e277cd72b8897') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Composer akan terinstall namun masih dalam bentuk file composer.phar, pindahkan ke /usr/local/bin/ agar dapat menggunakan perintah CLI composer

mv composer.phar /usr/local/bin/composer

Selesai

Nah itulah tutorial boleh kok mampir and baca tulisan ini untuk mengulik tutorial cara install composer baik di Windows, MacOs, maupun Linux. . Jika mengalami masalah kalian bisa tinggalkan komentar ya. See ya in next article !

Implementasi Message Broker dengan RabbitMq dan Laravel

Implementasi Message Broker dengan RabbitMq dan Laravel

Pertama-tama kita buat baru project laravel dengan mengetikan command

composer create-project --prefer-dist laravel/laravel laravel-rabbitmq

Kemudian masuk ke folder laravel-rabbitmq, dan jalankan

composer require vladimir-yuldashev/laravel-queue-rabbitmq

Setelelah itu buka file app/config/queue.php tambahkan konfigurasi driver rabbitmq ke dalam file tersebut,

'connections' => [
    // ...

    'rabbitmq' => [
    
       'driver' => 'rabbitmq',
       'queue' => env('RABBITMQ_QUEUE', 'default'),
       'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,
   
       'hosts' => [
           [
               'host' => env('RABBITMQ_HOST', '127.0.0.1'),
               'port' => env('RABBITMQ_PORT', 5672),
               'user' => env('RABBITMQ_USER', 'guest'),
               'password' => env('RABBITMQ_PASSWORD', 'guest'),
               'vhost' => env('RABBITMQ_VHOST', '/'),
           ],
       ],
   
       'options' => [
           'ssl_options' => [
               'cafile' => env('RABBITMQ_SSL_CAFILE', null),
               'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),
               'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),
               'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
               'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),
           ],
       ],
   
       /*
        * Set to "horizon" if you wish to use Laravel Horizon.
        */
       'worker' => env('RABBITMQ_WORKER', 'default'),
        
    ],

    // ...    
],

Langkah Selanjutnya adalah menginstall RabbitMq, Anda bisa mengunjungi halaman berikut https://www.rabbitmq.com/download.html untuk Installasinya. Kali ini kita gunakan docker untuk install rabbitmq di lokal, maka tingga jalankan command berikut:

docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

Setelelah itu Buat Template Email SendMailTemplate.php di app/Mail/SendMailTemplate.php dengan code berikut:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class SendMailTemplate extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * The content instance.
     *
     * @var content
     */
    protected $content;


    public function __construct($content)
    {
        $this->content = $content;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('templateEmail')
            ->with([
                'content' => $this->content
            ]);
    }
}

Setelah itu, buat viewnya pada folder resources/views dengan nama templateEmail.blade.php Isikan sebagai berikut:

{{ $content }}

Lalu buat MailController.php pada folder app/Http/Controllers dengan nama MailController.php

<?php

namespace App\Http\Controllers;

use App\Mail\SendMailTemplate;
use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
    public function sendEmail()
    {
        $email = request("email");
        Mail::to($email)->send(new SendMailTemplate("Halo"));
    }

    public function sendEmailQueue()
    {
        $email = request("email");
        Mail::to($email)->queue(new SendMailTemplate("Halo"));
    }
}

Tambahkan pada file routes/web.php. Routing atas adalah mengirim email secara syncronous tanpa menggunakan message broker, sedangkan yang bawah menggunakan message broker dengan queue driver yang kita set dengan rabbitmq.

Route::post('/mail', 'MailController@sendEmail');
Route::post('/mail-queue', 'MailController@sendEmailQueue');

Kemudian setting file .env pada bagian MAIL config, sesuaikan dengan mail server yang anda punya, saat ini kita gunakan smtp gmail , maka konfigurasinya sebagai berikut

MAIL_DRIVER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=GMAIL KAMU
MAIL_PASSWORD=PASSWORD GMAIL KAMU
MAIL_ENCRYPTION=ssl

Setelah itu jalankan “php artisan serve“. dan jalankan pula “php artisan queue:work”

Kemudian kita buka postman untuk mengetest kedua route tersebut.

Nampak perbedaan yang sangat signifikan antara post pertama dengan post kedua, karena post kedua menggunakan queue karena proses pengiriman email secara paralel. Sehingga ketika kita melakukan request belum tentu setelah mendapatkan response email berhasil terkirim.

Kalian bisa melihat hasil kodenya di https://github.com/agung3wi/laravel-rabbitmq

Demikian Merupakn artikel mengenai Implementasi Message Broker dengan RabbitMq dan Laravel.

Baca Artikel Kami Lainnya : Skill Set yang kalian harus pelajari jika ingin menjadi fullstack enginer zaman now