[ Discuss ] laravel

Oleh Minata 78 1 pada Sabtu, 30 Agu 2014, 00:27:00


Kembali ke forum umum


Petunjuk Diskusi
Silahkan masuk untuk berdiskusi



saya mau tanya + diskusi, kalau laravel itu apakah termasuk ke dalam framework ?
1 jempol


ganis
198
841
· 10 tahun, 2 bulan yang lalu · 0 jempol

Halo @Minata!

Dari yang saya dengar dulu2 dan (supaya yakin) hasil google selama satu menit tadi, benar adanya, lavarel adalah sebuah framework PHP. Tapi sayangnya saya sendiri belum pernah menyoba framework lavarel. Framework yg saya pernah coba untuk PHP cuman CodeIgniter. Pengalamannya belum banyak ya @_@

jowy
10
6
· 10 tahun, 2 bulan yang lalu · 1 jempol

laravel emg sebuah framework yang sudah menggunakan fitur PHP versi 5.3 keatas. Alangkah baiknya sebelum belajar laravel belajar dulu fitur fitur baru yang dimiliki PHp versi 5.3 - 5.6

ganis
198
841
· 10 tahun, 2 bulan yang lalu · 0 jempol

thanks @jowy untuk penjelasannya ttg lavarel

vchezt
208
11
· 10 tahun, 2 bulan yang lalu · 0 jempol

laravel memang sekarang sedang populer dikarnakan fleksibel dan bisa di intergrasi dengan bahasa pemograman yang lain, tapi bagi seseorang yang masih belajar seperti saya laravel agak ribet. untuk install saja kita harus pake composer dan setelah instal di local server saya melihat total file keseluruhan lebih dari 20MB dikarenakan banyak lib vendor...  tapi laravel emang bagus sih kalo saya ngerti...

jowy
10
6
· 10 tahun, 2 bulan yang lalu · 0 jempol

@vchezt : kalo ngerti konsep oop, fitur baru di php 5.3 keatas dan deisgn pattern dependency injection mudah kok. Dan semua sudah ada standardnya di http://www.php-fig.org/. 

vchezt
208
11
· 10 tahun, 2 bulan yang lalu · 0 jempol

@jowy : wah.. terimakasih untuk infonya... tapi saya belum siap untuk penggunaan interface dan namespace karna masih blum terlalu paham dan untuk name space menurut saya untuk aplikasi yang besar dan komplek sangat membantu tapi untuk aplikasi yang simple malah bikin ribet karna global function atau function bawaan harus pake backslash agar php tau function mana yang akan di eksekusi... 

jowy
10
6
· 10 tahun, 2 bulan yang lalu · 0 jempol

kan ada keyword 'use' gan jadi ga perlu tulis full path namespacenya. no application is too small & no application is too big. teknologi berkembang bukan untuk menyusahkan tp untuk memudahkan.

vchezt
208
11
· 10 tahun, 1 bulan yang lalu · 0 jempol

@jowi saya setuju tentang "teknologi berkembang bukan untuk menyusahkan tp untuk memudahkan."
tapi maksud saya adalah bagai mana kita menggunakan teknologi itu sesuai kebutuhan untuk aplikasi seperti company profile yang hanya beberapa halaman atau sebuah aplikasi portofolio itu hanya cukup standar class php 3 sudah cukup...
contoh yang saya maksud ribet untuk sebuah aplikasi portofolio:
file pertama misal ns.php:
<?php
namespace Anu\nganu;
trait PanggilAnuTest {
    public function panggil() {
       return \Anu\Test::wow(); 
    }
}
// nilai plus di namespace bisa buat Class dengan beberapa nama class yang sama
Class Test {
	use PanggilAnuTest;
	public function test()
	{
		// yang dua ini nilai plus namespace tapi ribet
		echo gmdate('F j Y', time()) . '<br />' . // ini internal namespace
			 \gmdate('F j Y', time()) . '<br />' . // ini built in/global
		
			 $this->gmdate('F j Y', time()) . '<br />' .
			 $this->gmdate('F j Y', time(), TRUE) . '<br />' .
		
			 \Anu\Test::wow() .
			 $this->panggil();
			 
	}
	
	protected function gmdate($a, $b, $i = FALSE)
	{
		if ($i) 
			return gmdate($a, $b);
		else
			return \gmdate($a, $b);
	}
}

function gmdate($a, $b) {
	return \gmdate($a, $b);
}
?>
lalu index.php:
<?php
namespace Anu;
Class Test {
	public static function wow() {
		return 'aih...';
	}
}

include 'ns.php';

/*** pake alias kadang suka lupa nama aliasnya ***/
use Anu\nganu as Aih;
use Anu\nganu\Test as Wow;

echo Test::wow(); // static biasa karna internal
echo '<br />';

$anu = new \Anu\nganu\Test(); // ini kadang bikin keder kalo NS nya banyak
$anu->test();
echo '<br />';

$aih = new Aih\Test(); // ini lebih mudah di ingat
$aih->test();
echo '<br />';

$wow = new Wow();
$wow->test();
?>
saya fikir seperti itu malah bikin write more do less bukan write less do more...
ma'af kalo saya salah tentang itu dan mohon dibenarkan karna saya masih belajar...

jowy
10
6
· 10 tahun, 1 bulan yang lalu · 0 jempol

@vchez: Nah itu kalo misal agan punya project web portfolio mau buat 3 web site dari awal atau buat 1 framework yang bisa di gunakan untuk 3 website tersebut?

Kalo ane sih untuk menghemat waktu ane develop sebuah framework untuk apps tertentu supaya kalo ada project yang sama tinggal pake.

Kalo bikin framework mau ga mau frameworknya harus berkembang sesuai permintaan pasar. framework harus bisa scale out.

nah skr pertanyaan nya gmn buat framework bisa scale out? jawabannya ada dengan merancang apps dari awal dengan menggunakan design pattern yang jelas. Memang namespace membuat kita membuat menulis lebih banyak tp harus diingat banyak juga kelebihan pake namespace selain agar tidak terjadi class collision yang terpenting adalah bisa autoloading dengan standar PSR. Fitur autoload ini akan sangat membantu kita,tidak ada lagi include / require di class  yang kita buat cukup mendaftarkan namespace untuk diautoload di awal. selain itu namespace juga sangat berguna jika kita menggunakan design pattern adapter:

Struktur folder:

Adapter
	- PayPal
		- Payment.php
	- Bitcoint
		- Payment.pgp
PaymentMethodInterface.php
Payment.php


<?php
// PaymentMethodInterface.php

namespace Payment;

interface PaymentMethodInterface
{
	public function pay();
}
// EOF

<?php 
// Payment.php

namespace Payment;

class Payment
{
	protected $adapter
	
	public function setAdapter(PaymentMethodInterface $adapter)
	{
		$this->adapter = $adapter;
	}

	public function getAdapter()
	{
		return $this->adapter;
	}

	public function pay()
	{
		$this->adapter->pay();
	}
}
// EOF

<?
// Adapter/PayPal/Payment.php

namespace Paymemt\Adapter\PayPal;

use Payment\PaymentMethodInterface;

class Payment implements PaymentMethodInterface
{
	public function pay()
	{
		return "paypal";
	}
}
//EOF

<?
// Adapter/Bitcoin/Payment.php

namespace Paymemt\Adapter\Bitcoin;

use Payment\PaymentMethodInterface;

class Payment implements PaymentMethodInterface
{
	public function pay()
	{
		return "bitcoin";
	}
}
//EOF

Nah dari contoh diatas ada 3 nama class yang sama kalo di load dan di panggil pasti ada duplikasi. Solusinya saya gunakan namespace

Semua tergantung pribadi masing masing gan mau digunakan atau ndak. seperti apa yang jelaskan diatas tidak ada aplikasi yang terlalu kecil, applikasi kecil itu bisa berkembang menjadi aplikasi besar. Ketimbang nanti pas appnya udah besar bingung mending dari awal sudah di rancang sedimikian rupa biar bisa scale

vchezt
208
11
· 10 tahun, 1 bulan yang lalu · 1 jempol

@jowy wah wah saya mulai tertarik nih gimana kalo agan buat thread biar saya bisa belajar bagaiman membuat framework yang baik... soalnya ini kan diskusi laravel :D
dan dari penjelasan agan  diatas saya merasa tercerahkan...

vchezt
208
11
· 10 tahun, 1 bulan yang lalu · 1 jempol

saya ingin lanjut diskusi tentang "autoloading dengan standar PSR. Fitur autoload ini akan sangat membantu kita,tidak ada lagi include / require di class  yang kita buat cukup mendaftarkan namespace untuk diautoload di awal" tapi pasti akan menyimpang dari tema forum...
tapi yang saya tau aotu load itu harus kita sendiri yang buat dengan bantuan spl_autuload_register() atau __aotuload();  atau custom autoload kecuali kita fake framework ternama yang udah ada autoloadnya...

vchezt
208
11
· 10 tahun, 1 bulan yang lalu · 1 jempol

sedikit referensi tentang auto load standar psr 4 https://github.com/php-fig/fig-s...

jowy
10
6
· 10 tahun, 1 bulan yang lalu · 1 jempol

"yang saya tau aotu load itu harus kita sendiri yang buat dengan bantuan spl_autuload_register() atau __aotuload();  atau custom autoload kecuali kita fake framework ternama yang udah ada autoloadnya..." gan usah kan udah ada composer nama namespace tinggal ngikutin standar PSR-0 atau PSR-4

vchezt
208
11
· 10 tahun, 1 bulan yang lalu · 1 jempol

oh yang agan maksud pake autoloadnya composer berarti kalo pake composer kita harus bikin skema compoernya trus instalasinya juga harus pake composer ya gan... gan ganti topik dong gan gak enak ini kan laravell...

vchezt
208
11
· 10 tahun, 1 bulan yang lalu · 0 jempol

kasus ditutup :D gak nyambung so'alnya :D

vchezt
208
11
· 10 tahun, 1 bulan yang lalu · 0 jempol

kalo gak pake composer mungkin seperti ini:
Struktur folder:

Adapter/
	PayPal/
		Payment.php
	Bitcoint/
		Payment.php
PaymentMethodInterface.php
Payment.php
index.php

<?php
// index.php
use Payment\Payment,
	Payment\Adapter\PayPal,
	Payment\Adapter\Bitcoin;

/*** autoload nya ***/
spl_autoload_register(
	function($className) {
		$className = str_replace('Payment\\', '', $className);
		$className = str_replace('\\', DIRECTORY_SEPARATOR, $className);
		$file = $className . '.php';
		if (!file_exists($file)) {
			return false;
		}
		include_once $file;
	}
);

$Pay = isset($_GET['pay']) ? trim($_GET['pay']) : false;
	
$PayPal = new PayPal\Payment();
$Bitcoin = new Bitcoin\Payment();

if ($Pay !== false) {
	$anu = new Payment();
	$anu->setAdapter($$Pay);

	$anu->pay();
}
else {
	echo '<a href="?pay=PayPal">PayPal</a> | <a href="?pay=Bitcoin">Bitcoin</a>';
}
//EOL

<?php
// PaymentMethodInterface.php

namespace Payment;

interface PaymentMethodInterface
{
	public function pay();
}
// EOF

<?php 
// Payment.php

namespace Payment;

class Payment
{
	protected $adapter
	
	public function setAdapter(PaymentMethodInterface $adapter)
	{
		$this->adapter = $adapter;
	}

	public function getAdapter()
	{
		return $this->adapter;
	}

	public function pay()
	{
		$this->adapter->pay();
	}
}
// EOF

<?php
// Adapter/PayPal/Payment.php

namespace Payment\Adapter\PayPal; // Typo Paymemt

use Payment\PaymentMethodInterface;

class Payment implements PaymentMethodInterface
{
	public function pay()
	{
		echo "bayar pake paypal";
	}
}
//EOF

<?php
// Adapter/Bitcoin/Payment.php

namespace Payment\Adapter\PayPal; // Typo Paymemt

use Payment\PaymentMethodInterface;

class Payment implements PaymentMethodInterface
{
	public function pay()
	{
		echo "bayar pahe bitcoin";
	}
}
//EOF

jowy
10
6
· 10 tahun, 1 bulan yang lalu · 0 jempol

contoh saya juga bisa diaplikasikan pada semua framework yang pake composer :D

BlackSheep
0
3
· 10 tahun yang lalu · 1 jempol

laravel memang sebuah framework, di awal kemunculannya laravel banyak diminati oleh para coder yg kebanyakan dulunya mengunakan CI karena pada saat kemunculannya hampir berbarengan dengan kabar CI yg tidak bisa support php versi terbaru pada saat itu (maaf lupa code versinya) makanya pada saat kemunculannya laravel tidak menunggu lama untuk mendapat gelar sebagai framework dengan pengguna yg paling banyak. gw sendiri pengguna yii ver 1, pernah ngoprek2 laravel, memang fitur nyabanyak yg baru, instalasinya emang repot sama seperti yii ver 2, alasan kenapa gw gak move on dari yii ver 1, dikarnakan gw lebih nyaman menggunakan yii ver 1, bisa menyelesaikan project jauh lebih cepat di banding menggunakan frame lain, tapi kalo kita bekerja di bidang teknologi kita harus selalu update, makadari itu gw sendiri selalu kepo soal laravel yii 2, CI, zend, kohana ato frameworks lainnya, jaga2 kalo suatu saat yii 1 gak bisa ngikutin php versi terbaru, CI emang sempet terdengar rumor mau di hentikan pengembangannya, tapi terakhir gw denger dari temen sekarang CI udah bisa ikutin perkembangan php n balik nempatin posisi satu lagi. sekedar informasi, ini gw sampein soalnya banyak yg salah sangka bahwa framework nomor satu ato yg menduduki peringkat pertama dengan pengguna terbanyak adalah framework terbaik, salah bro, faktanya tmn gw pernah dibajak 3kali berturut di project yg berbeda ketika mengunakan CI, dia kemudian pinda kr laravel dan sempet sekali kena bajak. bagus ato nggaknya security system itu kita sendiri yg buat, soalnya kalau kita mengunakan framework open source itu brt banya org yg tau mengenai kelemahan frame tsb, begitilah kira2 sorry kalo bnyk yg salahnya

MTeguhFh
29
3
· 9 tahun, 10 bulan yang lalu · 1 jempol

@BlackSheep : gile keren juga bro keterangan ente hihihi mantap

ganis
198
841
· 9 tahun, 10 bulan yang lalu · 0 jempol

@MTeguhFh jangan lupa jempol buat @BlackSheep nya.

@BlackSheep thanks infonya. Sangat membantu sekali.