Arsip Tag: Laravel

Kelebihan dan Kekurangan Laravel

Laravel - Mahrizal
Laravel

 

Temen2 yang ingin belajar framework PHP maka Framework ini layak untuk dipelajari dan digunakan.

Framework ini langsung populer begitu framework Codeigniter colaps waktu itu.

Meski sekarang Codeigniter diteruskan kembali oleh suatu universitas namun kabar Codeigniter yang tidak disupport oleh EllisLab lagi membuat para programmer mencari Framework alternatif, diantaranya Laravel.

Laravel dari segi kesulitan memang sedang namun menjanjikan fitur yang powerful. Kesulitan dalam arti pintu gerbang untuk memahami pertama kali. namun jika sudah paham maka justru malah memudahkan bahkan rasanya tidak mau kembali lagi ke Codeigniter, karena lebih efisien dalam pembuatannya.

Kelebihan Laravel

  1. Dokumentasi yang lengkap

Kita bisa mengakses dokumentasi yang lengkap di website nya : https://laravel.com/docs/5.5

2. Komunitas yang besar

Laravel mempunyai komunitas yang besar sehingga saat kita mendapatkan kendala kita bisa bertanya ke komunitas.

 

3. Fitur Yang membuat efisien

Laravel menyediakan fitur yang membuat pembuatan aplikasi menjadi lebih efisien yang tidak didapati oleh Codeigniter. Contohnya adalah Eloquent ORM. Laravel mendukung Eloquent ORM yang memudahkan query database bahkan join table.

4. Cara Install Yang Modern

Install Laravel ialah menggunakan Composer.

composer create-project –prefer-dist laravel/laravel blog

Apa itu composer?

Composer menurut web nya ialah dependency manager for php.

Bahasa mudahnya composer adalah tool yang berfungsi untuk mendownload software untuk keperluan php.

Layaknya npm yang dimiliki nodejs.

Bila belum mempunyai composer maka download terlebih dahulu di situs  : https://getcomposer.org/

5. Fitur yang Wah

Laravel ialah framework yang powerful sehingga menyediakan fitur-fitur yang wah dan lengkap.

Kita akan belajar hal-hal baru yang tidak ada di Codeigniter.

Kekurangan Laravel

Setiap kelebihan selalu ada kekurangan, kekurangannya ialah :

  1. Tidak Mudah memahami untuk pertama kali

Buat para beginner yang memahami laravel relatif akan kesulitan. sebab laravel tidak semudah codeigniter untuk dipahami. untuk masuk ke pintu gerbang nya diperlukan fokus agar bisa memahami laravel. Terlebih buat yang baru belajar Framework. Akan terbantu bila pernah belajar Framework sebelumnya seperti Codeigniter.

jangankan untuk memahami alurnya, untuk install pertama kali pun kalau para beginner bisa dibuat bingung. karena cara install yang modern

2. Update versi terlalu cepat

Update Laravel cepat bahkan menurut saya terlalu cepat. Sehingga bagi yang tidak mengikuti perkembangan laravel bisa ketinggalan jauh. Dan perubahan fitur nya pun terbilang signifikan.

Terlebih yang dari versi 4 ke versi 5, sangat signifikan perubahannya baik fitur maupun struktur folder nya.

Versi 5 pun cepat update versinya, sekarang saat saya menulis ini sudah sampai versi 5.5

3. Install di Server tidak semudah Codeigniter

Bila Install codeigniter di ftp tinggal upload dan ubah konfigurasi database, maka install Laravel tidak semudah itu.

Apabila kita sewa hosting di tempat lain, kita harus punya akses putty ke server agar bisa install composer.

Untuk apa composer? Untuk kita menjalankan perintah

composer update

Kenapa kita jalankan perintah itu, karena beda lingkungan OS beda sistem laravel.

Laravel di windows beda dengan Laravel di Linux

untuk itu jika kita membuat aplikasi di windows maka saat di upload di server Linux kita perlu jalankan perintah composer update di root aplikasi agar laravel bisa menyesuaikan lingkungan OS yang baru.

4. Relatif lebih berat

Laravel relatif lebih berat bila dibanding dengan framework Codeigniter.

Hal ini wajar karena laravel meload banyak file dan asset untuk menjalankan aplikasinya.

 

 

Iklan

Laravel Error : ErrorException in Filesystem.php : file_put_contents failed to open stream: Permission denied

Saya mendapatkan error di atas saat saya upload aplikasi Laravel saya dari local windows ke server Ubuntu.

Bagaimana Solusinya :

Masuk ke directory root aplikasi kita, kemudian jalankan perintah ini di terminal :

chmod -R gu+w storage

chmod -R guo+w storage

php artisan cache:clear

Done….

It works for me…..

Aplikasi saya bisa berjalan dengan baik….

Referensi : http://stackoverflow.com/questions/29169892/errorexception-in-filesystem-php

Mengatasi Error Ajax Jquery Internal Server Error 500

Saya mengalami error ini dari kemarin, saat membuat ajax pakai jquery. saya memakai laravel di server sidenya. setelah browsing sana sini akhirnya ketemu juga caranya.

Langsung aja ya

  1. Tambahkan script berikut di kode html atas :

<meta name=”csrf-token” content=”{{ csrf_token() }}” />

2. Tambahkan script berikut di Ajax nya :

$.ajaxSetup({
headers: {
‘X-CSRF-TOKEN’: $(‘meta[name=”csrf-token”]’).attr(‘content’)
}
});

Selesai…..

Adapun kode saya akhirnya seperti ini  :

$(function(){
$(‘#btn-add-copy’).click(function(e){
e.preventDefault();
var url = “{{ url(‘user/admin/bookCollection/manage/addQuantityCopy’) }} “;
var qty = $(‘.copy_quantity’).val();

$.ajaxSetup({
      headers: {
     ‘X-CSRF-TOKEN’: $(‘meta[name=”csrf-token”]’).attr(‘content’)
    }
});

$.ajax({
url : url,
type : “POST”,
data : “qty=”+qty,
error : function(xhr, ajaxOptions, thrownError){
console.log(xhr.status);
console.log(xhr.responseText);
console.log(thrownError);
},
success : function(data){
alert(data);
}
});
});

Alhamdulillah berhasil juga kode saya…..

 

Referensi saya :

https://laravel.io/forum/01-30-2015-laravel5-tokenmismatchexception-in-verifycsrftoken

https://laravel.com/docs/5.0/routing#csrf-protection

Laravel : Mengatasi Error FatalErrorException in Collection.php line 11: Interface ‘Illuminate\Contracts\Queue\QueueableCollection’ not found

Hari ini saya mendapat error di sistem saya yang memakai laravel, errornya ialah :

FatalErrorException in Collection.php line 11: Interface ‘Illuminate\Contracts\Queue\QueueableCollection’ not found

Akhirnya saya nemu solusinya di stackoverflow, yaitu dengan download file  QueueableCollection.php di link :

https://github.com/illuminate/contracts/blob/master/Queue/QueueableCollection.php

Saya tadi buat file dan copas…jreng..selesai….masalah solved.

Referensi :

http://stackoverflow.com/questions/37695774/laravelfatalerrorexception-in-collection-php-line-11-interface-illuminate-con

http://stackoverflow.com/questions/37695774/laravelfatalerrorexception-in-collection-php-line-11-interface-illuminate-con

 

Laravel Eloquent Mengambil Satu Kolom atau Kolom Tertentu

Kalau kita ingin mengambil satu kolom atau kolom tertentu dalam Eloquent Laravel caranya ialah dengan menambahkan kolom di belakang fungsi relationship.

Contoh :

public function user(){

return $this->hasOne(‘App\User’)->select(‘fullname’);

}

kalau mau lebih dari satu kolom tinggal menambahkan kolomnya :

public function user(){

return $this->hasOne(‘App\User’)->select(‘fullname’, ’email’);

}

 

Referensi :

https://laracasts.com/discuss/channels/eloquent/eloquent-hasone-relation-get-only-id-or-certain-columns

 

Mendapatkan Log Query pada Laravel

Untuk mendapatkan log query atau query yang dijalankan pada laravel caranya :

Tambahkan script berikut di atas :

use DB;

Kemudian di atas query yang akan kita cari :

DB::enableQueryLog();

dan setelah query tambahkan script berikut :

dd(DB::getQueryLog());

dd berfungsi seperti print_r atau var_dump yang menampilkan dalam bentuk array, dan berfungsi juga seperti exit() yang akan menghentikan program tidak menjalankan program di bawahnya.

Contoh lengkapnya seperti ini :

namespace App\Http\Controllers;

use DB:

class HomeController extends Controller{

public function index(){

DB::enableQueryLog();
$dataSession = (EmployeesModel::find(Auth::user()->employees_id));

dd(DB::getQueryLog());

return view(‘home’);

}

}

Maka akan menghasilkan di browser :

array:1 [
  0 => array:3 [
    "query" => "select * from `net_hrd`.`employees` where `net_hrd`.`employees`.`id` = ? limit 1"
    "bindings" => array:1 []
    "time" => 0.85
  ]
]

DB::enableQueryLog() bisa dipakai untuk menampilkan log query lebih dari satu, tinggal letakkan query2 yang mau kita lihat di antara DB::enableQueryLog() dan DB::getQueryLog().

 

Referensi :

http://itsolutionstuff.com/post/how-to-get-last-executed-mysql-query-in-laravel-example.html

https://laravel.com/docs/5.0/database#query-logging

https://laravel.com/docs/5.1/queries

 

Melirik Framework selain CodeIgniter

Sudah seminggu ini aku melirik laravel, Framework yang sedang naik daun. Setelah berkutat di framework Codeinginter setelah sekian lama aku melirik framework2 lain, terlebih ada kabar CodeInigter  masa depannya kurang jelas. Maka mulailah aku searching framework2 yang bagus.

Waktu itu pernah melirik YII. YII terkenal powerful, saya suka dengan konsep ORM, has to many dsb. yang tidak ada di CodeIgniter. namun ternyata Dokumentasi YII tidak seindah CodeIgniter. Butuh waktu untuk mempelajari YII. fitur bagus lainnya CRUD yang ciamik, mantep banget . membuat CRUD tidak perlu coding, models controller bisa buat secara instant dengan fitur gii.

Dan sekarang aku sedang melirik Laravel. Framework ini tergolong baru , dibuat dari tahun 2011 namun sudah mempunyai komunitas besar. Framework baru ini naik daun ternyata. Dokumentasinya lebih jelas dari YII. membuat pagination di Laravel sangat mudah dibanding dengan CI. Support ORM pula.

Sepertinya aku ingin mencoba menggunakan laravel di pengembangan sistem selanjutnya di kantor. sistem CPD