Mengirim email dengan Laravel 5.3

Salah satu penambahan yang ada di laravel 5.3 adalah pada bagian untuk mengirim email. Pada versi ini diperkenalkan metode baru untuk mengirim email, yaitu dengan mailable class. Jika sebelumnya untuk mengirim email kita membuat script/fungsi seperti berikut:

Mail::send('template.email', 'pesan' => $message], function ($message)
{
    $message->from('[email protected]', 'Email bro');
    $message->to('[email protected]');
});

Pada laravel versi 5.3 semua konfigurasi untuk data email yang dituji, dari alamat email, template email dan lain-lain bisa dimasukan ke dalam sebuah class. Sehingga untuk mengirim email cukup panggil:

Mail::to('[email protected]')->send(new EmailClass);

Baca Selengkapnya

Lumen, Basic Database

Pada tulisan kali ini, penulis akan membahas basic koneksi dan query ke database menggunakan micro framework lumen. Karena lumen ini merupakan saudara dari laravel maka kebanyakan juga akan sama dengan laravel.

Yang berbeda adalah untuk konfigurasinya menggunakan sebuah file dengan nama .env, silahkan rename .env.example menjadi .env kemudian edit bagian:


DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=testlumen
DB_USERNAME=db_username
DB_PASSWORD=db_password

Sebenarnya lumen sudah mendukung beberapa database, tapi untuk yang paling simpel gunakan saja mysql.

Setelah itu jangan lupa uncomment baris

Dotenv::load(__DIR__.'/../');

di boostrap/app.php

Jika ingin menggunakan DB Facade laravel maka uncomment

$app->withFacades();

Atau yang dibawah ini jika ingin menggunakan Eloquent

$app->withEloquent();

Untuk yang sekarang ini kita uncomment yang facade saja.

Sebelum mulai membuat query yang pertama perlu dilakukan adalah dengan membuat database dan tabel, diasumsikan database sudah dibuat maka kita tinggal membuat tabel saja. Untuk hal ini kita bisa memanfaatkan fitur migration yang ada pada laravel.

Untuk di lumen ini ternyata folder database/migrations belum ada, sehingga perlu dibuat secara manual agar kita bisa membuat migration:

$ mkdir database
$ mkdir database/migrations

Setelah itu jalankan perintah nya:

 $ php artisan make:migration create_users_table –create=tests

Created Migration: 2015_04_16_080319_create_users_table

Perintah diatas akan membuat file migration dengan nama tabel “tests”.

Kemudian buka file database/migrations/2015_04_16_075820_create_tests_table.php dan edit file tersebut untuk menambah field baru pada tabel yang akan dibuat, lebih jelas nya silahkan merujuk ke http://laravel.com/docs/5.0/schema

Sebagai contoh pada fungsi up() menjadi seperti dibawah:

Schema::create('tests', function(Blueprint $table)
{
	$table->increments('id');
	$table->char('name', 25);
	$table->string('email');
	$table->timestamps();
});

Kemudian jalankan migrasinya:

$ php artisan migrate

Maka tabel dengan nama “tests” akan dibuat di database “testlumen”.

Setelah itu kita bisa mulai membuat query untuk uji coba. Berikut contoh beberapa query yang dijadikan dalam satu controller:

<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use DB;

class CobaController extends Controller {
	public function index() {
		return "halaman index";
	}

	public function insert() {
		DB::insert('insert into tests (name, email, created_at, updated_at) values (?, ?, ?, ?)', ['Harry', '[email protected]', date("Y-m-d H:i:s"), date("Y-m-d H:i:s")]);
	}

	public function select() {
		$results = DB::select('select * from tests');

		print_r($results);
	}

	public function update() {
		DB::update('update tests set email = "[email protected]" where name = ?', ['Harry']);
	}

	public function delete() {
		DB::delete('delete from tests where email name = ?', ['[email protected]']);
	}
}

Kemudian tambahkan di routes.php

$app->get('/db', 'App\Http\Controllers\[email protected]');
$app->get('/db/insert', 'App\Http\Controllers\[email protected]');
$app->get('/db/select', 'App\Http\Controllers\[email protected]');
$app->get('/db/update', 'App\Http\Controllers\[email protected]');
$app->get('/db/delete', 'App\Http\Controllers\[email protected]');

Untuk uji coba buka browser dan alamatkan ke http://lumen.dev/db/insert dan seterusnya.

Oya untuk contoh-contohnya nya masih basic sekali, belum ada input dengan form bahkan hasil query select saja hanya di print_r. Setidaknya basic untuk melakukan proses ke database sudah bisa dilihat.

 

happy coding

Lumen, Instalasi Dan Basic Routing

 lumen.dev

Tak kenal maka tak sayang, oleh karena itu mari berkenalan dengan lumen. Sebelum berkekenalan lebih lanjut, yang perlu dilakukan pertama kali adalah install dulu. Perlu diingat bahwa lumen ini membutuhkan php versi 5.4 keatas, jadi bagi yang masih menggunakan versi php dibawahnya harus updgrade terlebih dahulu.

Berikut cara-cara instalasinya

1. Download lumen installer terlebih dahulu

$ php ./composer.phar global require "laravel/lumen-installer=~1.0"

Jika menggunakan linux, jangan lupa untuk menambahkan $HOME/.composer/vendor/bin ke dalam PATH dengan melakukan edit pada file .bashrc (bash) atau .zshrc (zsh), untuk sistem operasi yang lain silahkan menyesuaikan.

2. Setelah selesai, jalankan perintah berikut:

$ lumen new coba-lumen

install lumen

Maka lumen akan diinstall di folder “coba-lumen” dan kita bisa mulai bekerja di folder tersebut

struktur folder

Oya entah kenapa saat menjalankan http://localhost/coba-lumen/public selalu error not found, dan menurut temen saya pak dosen @dwijonarko beliau bisa lancar dengan menggunakan virtual host.


Oke lah kita coba buat virtual host dulu. Berhubung laptop menggunakan Fedora, maka begini langkah-langkahnya, edit /etc/httpd/conf/httpd.conf tambahkan

<NameVirtualHost lumen.dev:80>
    ServerAdmin [email protected]
    DocumentRoot /home/harry/data/www/coba-lumen/public
    ServerName lumen.dev:80
    ErrorLog logs/lumen.dev-error_log
    CustomLog logs/lumen.dev-access_log common

</VirtualHost>

edit /etc/hosts dan tambahkan

127.0.0.1      lumen.dev

kemudian restart httpd nya

# service httpd restart

Untuk yang menggunakan distro lain atau sistem operasi lain, silahkan menyesuaikan.

Jangan lupa juga untuk merubah permission folder storage sehingga bisa ditulis oleh lumen:

$ chmod -R 777 storage

Setelah itu buka http://lumen.dev di browser.

Untuk route sendiri bisa di tambahkan di app/Http/routes.php, berikut contohnya: Routing basic

$app->get('/', function() use ($app) {
	return "Hello lumen user";
});

Routing dengan parameter

$app->get('/coba/{var}', function($var) use ($app) {
	return "Hello " . $var;
});

Contoh parameter hanya menerima huruf kecil saja:

$app->get('coba/{var:[a-z]+}', function($var) {
    return "Hello " . $var;
});

Demikian cara instalasi dan basic routing dari lumen framework, tentu masih banyak sekali fitur-fitur yang bisa di gali dari framework ini, setidaknya demikian untuk sekarang.

Lumen Micro Framework

lumen

Gambar diambil dari sini

Pembuat laravel, mas Taylor Otwell, ini sepertinya punya tingkat ke “selo” an yang tinggi, di sela kesibukannya beliau ini baru saja merilis lumen sebuah micro framework yang di desain lebih kecil sehingga bisa bekerja lebih cepat dibanding saudaranya, laravel. Bahkan di website nya lumen berani mengklaim lebih cepat dari silex dan slim, 2 micro framework php yang selama ini dikenal sebagai framework kecil yang super cepat.

Dengan nama laravel di belakangnya sepertinya lumen ini akan cepat mendapatkan tempat di hati para programmer php, ya kalau sekedar ingin membuat website kecil-kecilan yang tidak membutuhkan fitur macam-macam, lumen ini layak dicoba. Selain itu menurut dokumentasinya fitur-fitur yang ada pada laravel pun bisa digunakan pada lumen, misal nya saja cache, validation atau eloquent. Bahkan menurut mas taylor, jika kita ingin mengupgrade lumen ke laravel itu mudah sekali, dari website lumen:

Since Lumen is powered by Laravel’s components, just drop your code into a Laravel installation. You won’t have to change a thing.

Sepertinya memang menarik, kalau pas ada waktu selo bisa buat mainan 😀

Mau Pakai Framework PHP Yang Mana?

Sudah lama tidak update isi blog, kalau gak salah posting terakhir sebelum ini di bulan desember, sudah hampir 2 bulanan lah. Selama 2 bulan ini tentu banyak sekali kejadian yang terjadi di sekitar penulis tapi ya memang lagi tidak ada ke selo an untuk menulis.

Yang terbaru adalah meletusnya gunung kelud kemarin dan abunya sejak kemarin menghiasi setiap sudut jogja dan sekitarnya yang membuat berdebu, tadi lewat ringroad utara lumayan debunya.

Berhubung penulis adalah orang yang setiap hari bekerja dalam lingkungan pengembangan web dengan php tentu saja selalu bersinggungan dengan yang namanya framework. Dari dulu awal-awal kenal Codeigniter dan sampai sekarang masih menggunakan juga 😀 pernah mencoba Kohana, Fuelphp, Yii dan tentu saja yang sedang naik daun dan sangat wow sekarang ini Laravel. Bahkan blog ini pun dibangun dengan Laravel.

Tapi kalau menurut penulis pribadi yang namanya framework itu tidak perlu dipaksakan, mau pakai yang mana atau gak pake sama sekali itu hak pribadi, ya semacam HAM lah kalau di dunia manusia. Walau Laravel yang sedang wow wow nya dan menggunakan teknologi paling mutakhir ya gak wajib dipakai kok. Contohnya saja misal kita mau kerja di sebuah kantor dan ternyata aplikasi yang dibangun masih pake codeigniter yang walau kita anggap itu sudah jadul jika dibanding laravel yang wow tadi ya gak mungkin to kita tiba-tiba minta rewrite sistem yang dibangun dengan codeigniter itu dengan laravel? bilang saja sama yang nginterview “kalau gak rewrite ke laravel saya gak mau masuk kantor sini!” paling dalam hati yang nginterview cuma bilang “siapa elo?” mending sih kalau cuma dalam hati, kalau malah diomelin terus suruh pulang? kalau bujang sih enak gak kerja masih bisa minta ortu, la kalau yang sudah berkeluarga? ya gak bisa gitu-gitu banget. Kalau kata paman @tediscprit “katresnan always win”, idealisme pikir belakangan yang penting halal 😀

Kalau memang selo dan punya kemampuan untuk menentukan sih gak masalah mau pake framework yang mana, ada di lingkungan yang semuanya cuma bisa Codeigniter terus minta semua harus menggunakan Laravel kemudian semua sistem yang ada di rewrite, tentu butuh waktu dan effort yang tidak sedikit.

Jadi mau pake apa? terserah saja, yang penting halal dan migunani tumraping liyan, minimal migunani buat keluarga 😀 karena ngomongin framework php itu gak akan ada habisnya, dah kayak debat kusir gak ada guna.