i (am) Blogger and U?

from X-periment to X-perience

One-Page Portofolio / Gallery 3

One-Page Portofolio / Gallery 3 memiliki fitur-fitur yang sama persis dengan One-Page Portofolio / Gallery 1 tapi dengan theme/template yang berbeda.

Belajar Online: E-learning - Kuis & Soal

"Belajar Online: E-learning - Kuis & Soal", Software/aplikasi e-learning berbasis web yang dapat digunakan oleh pengajar/guru/pembimbing atau perorangan untuk membuat soal/kuis atau per [...]

Aplikasi Web: Online Shop PRO 2

Toko Online Pro 2 memiliki fitur-fitur yang sama persis dengan Toko Online Pro 1 tapi dengan theme/template yang berbeda.

Profile / Portofolio Pro 2

Aplikasi Profil / Portofolio Pro 2, software berbasis web untuk pengelolaan portofolio atau untuk menampilkan profil baik perusahaan maupun perseorangan. Selain itu software ini dapat p [...]

WP Plugins: RSS to Post

RtoP adalah WordPress Plugins yang memudahkan untuk membuat post yang content-nya berasal dari blog/web lain dalam hal ini dengan memanfaatkan RSS. RtoP dapat menyimpan banyak RSS da [...]

Starter: Anime/Movie Sharing

Produk yang satu ini adalah aplikasi web yang dikhususkan bagi Anda yang ingin memiliki situs/web yang dengan fasilitas untuk menampilkan anime/movie dan dapat ditonton oleh para pengun [...]

Laravel URI Segment

Category: Web DevelopmentDate:
Friday, 22 Feb 2019

Laravel (paling tidak pada contoh ini saya menggunakan laravel 5.5) tidak menyediakan helper, class, dll yang memungkinkan untuk mengakses uri segment (saya menggunakan "istilah" yang digunakan di CodeIgniter). Kali ini saya akan membahas bagaimana cara untuk mengakses uri segment. Pengaksesan url di laravel yang saya dapat dari dokumentasi kira-kira seperti di bawah ini

[php]
// Get the current URL without the query string...
echo url()->current();

// Get the current URL including the query string...
echo url()->full();

// Get the full URL for the previous request...
echo url()->previous();
[/php]


Mungkin timbul pertanyaan, apa perlunya mengakses uri segment? Ya, uri segment mungkin "tidak terlalu berguna" di laravel karena pola pengaksesan controller di laravel berbeda misalnya dengan di codeigniter. Laravel "terlalu terbatas" pada apa yang didefiniskan di dalam route. Pembahasan mengenai pro-kontra framework dan pendekatan masing-masing tidak akan kita bahas pada tulisan kali ini (mungkin udah ada yang membahasnya?).

Satu dari beberapa hal yang mungkin bermanfaat dari pengaksesan uri segment adalah "dynamic parameters". Biasanya ketika mengakses parameter di dalam method digunakan contoh0 seperti ini
[php]
class CobaController extends Controller
{
#contoh0
function contoh($param1,$param2,$param3)
{
$hasil = ($param1 + $param2) * $param3;
return $hasil;
}
}
[/php]


Bandingkan dengan contoh1 ini
[php]
class CobaController extends Controller
{
#contoh1
function contoh()
{
$uri = fungsiURISegment();
$hasil = ($uri[2] + $uri[3]) * $uri[4];
return $hasil;
}
}
[/php]


Ya, mungkin "kegunaannya" belum kelihatan pada contoh1 di atas karena hal yang dilakukan sama dengan contoh0. Dengan contoh2 berikut akan kelihatan "salah satu manfaatnya" karena yang dilakukan di dalam method berkaitan dengan method yang lain.
[php]
class CobaController extends Controller
{
#contoh2
function contoh()
{
$uri = fungsiURISegment();
if($uri[2] == ''){
return $this->home($uri);
}else{
#bla bla bla tergantung kebutuhan
}
return $hasil;
}

private function home($param)
{
if(is_array($param)){
return 'home data:'.$param[3].$param[4];
}
}
}
[/php]


fungsiURISegment() cuma contoh saja, function yang asli kira-kira begini
[php]
function uri_segment()
{
$url = url()->current();
$url = explode($_SERVER['HTTP_HOST'],$url);
$url = explode('/',$url[1]);

return $url;
}

[/php]


Anda mungkin bertanya mengapa tidak menggunakan $_SERVER['REQUEST_URI'] saja tapi malah menggunakan url()->current()? Jawabannya adalah karena url()->current() menghasilan url tanpa query string.

Misal kita punya url http://contoh.com/contoh/segment/2/3 ketika kita gunakan uri_segment
[php]
$url = uri_segment();
print_r($url);
[/php]


maka hasilya:
[php]
Array
(
[0] =>
[1] => contoh
[2] => segment
[3] => 2
[4] => 3
)
[/php]


Contoh saya di atas mungkin kurang lengkap karena ya cuma contoh saja dan dalam prakteknya, uri segment bisa dimanfaatkan untuk hal-hal lain tergantung imaginasi dan kebutuhan programmer. Terakhir, supaya function bisa diakses di controller yang lain, salah satu caranya adalah Anda bisa menambahkannya ke dalam helpers


No comments...
>> Comments closed. <<