Halo, nama saya Agung. Berasal dari Denpasar, Bali. Blog ini adalah blog harian saya, dari tips dan trick code, curahan hati, dan beberapa tulisan tidak penting.

Menu & Search

Code Completion pada PhpStorm untuk Laravel

September 12, 2015

Beberapa hari ini saya lagi hobi untuk mempelajari Framework php baru yaitu laravel. Menurut saya laravel adalah framework yang sangat menarik, dependency injection nya mengingatkan saya dengan Spring di Java, dan konsep OOP nya yang sangat kental tidak seperti PHP framework lain yang pernah saya gunakan dahulu, dan composer nya yang juga meningatkan pada Maven pada java. Laravel juga memiliki satu resource untuk pemula atau mungkin yang sudah level tinggi, yaitu Laracast yang sangat membantu dalam mempelajari laravel dalam pengaplikasian dunia nyata.

Saya mengikuti video laravel fundamental di laracast, disana mereka menggunakan PhpStorm sebagai IDE. dan kebetulan juga dalam beberapa saat ini saya juga menggunakan PhpStorm untuk development WordPress. dan beruntung nya PhpStorm memiliki code completion cukup bagus untuk laravel, namun itu tidak datang langsung dari installasi pertama PhpStorm, beberapa plugin atau tool harus di install. detil bagaimana menginstall tools PhpStorm untuk laravel ada disini : https://confluence.jetbrains.com/display/PhpStorm/Laravel+Development+using+PhpStorm

Tapi permasalahan nya datang saat saya mempelajari video ke 9, yang mana di video tersebut menggunakan Model, namun code completion nya tidak memiliki fungsi “findOrFail” atau “where”, atau “latest”. saya mencoba untuk browsing mencari solusi, dan menemukan diskusi ini https://github.com/barryvdh/laravel-ide-helper/issues/168. Disana dijelaskan bahwa hanya dengan menggunakan Alias Eloquent dan bantuan dari laravel artisan untuk menggenerate helper bisa menyelesaikan masalah.

Extend Eloquent

Eloquent sendiri merupakan facade dari Model yang di definisikan di config > app.php

Eloquent Facade

Namun jika kita menggunakan artisan, file akan digenerate dengan meng-extend Model, bukan Eloquent. dan saya mengharapkan setiap model tetap akan mengextend model seperti gambar berikut.

Extend Model

cara untuk mendapatkan hasil seperti diatas cukup simple :

  1. di config > app.php tambahkan code berikut, dengan menambahkan Facade ini, anda akan dapat mengunakan alias namespace “Model”, yang nanti nya oleh artisan ide helper akan di extend.
    'Model'     => Illuminate\Database\Eloquent\Model::class,
  2. Kemudian di config > ide-helper.php tambahkan code berikut pada array extra :
    'Model' => array('Illuminate\Database\Eloquent\Builder', 'Illuminate\Database\Query\Builder'),
  3. lalu generate ide helper, dengan command php artisan ide-helper:generate , code ini akan menggenerate class yang akan meng-extend Facade model. file nya berada pada _ide_helper.php (jika setting nama file tidak dirubah)Model extend Facade Model
  4. dan hasilnya, code completion untuk model lebih lengkap, coding pun lebih mengasikkan. Model Code Completion

 

 

Article Tags

Discussion about this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Type your search keyword, and press enter to search