i (am) Blogger and U?

from X-periment to X-perience

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 [...]

Aplikasi Web: URL Shortener Complete 1

URL Shortener Complete 1 adalah aplikasi yang membantu Anda untuk menjalankan situs/web yang memiliki fasilitas URL shortener. Pemendek URL sesuai namanya berfungsi untuk memangkas alam [...]

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 [...]

Aplikasi Web: URL Shortener Complete 2

URL Shortener Complete 2 adalah aplikasi yang membantu Anda untuk menjalankan situs/web yang memiliki fasilitas URL shortener. Pemendek URL sesuai namanya berfungsi untuk memangkas alam [...]

Aplikasi Web: Forum Mirip Twitter

Aplikasi ini merupakan aplikasi layaknya forum pada umumnya. Hal spesial dari aplikasi ini adalah adanya tambahan yang mirip dengan Twitter. Fitur-fitur yang dimiliki antara lain: foll [...]

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.

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. <<