Autocomplete adalah salah satu fitur yang powerfull dan sangat memudahkan programmer untuk mengembangkan aplikasi menjadi lebih cepat dan efisien. Ya, dengan menggunakan autocomplete ini kita bisa langsung mengetikan sintaks kodingan hanya dengan mengetikan beberapa huruf saja. Selain itu, dengan menggunakan autocomplete ini kita bisa meminimalkan kesalahan dalam penulisan sintaks.

Saat ini fitur autocomplete ini sudah biasa kita temukan di text editor ataupun IDE, seperti Sublime text, Visual Studio Code, PHPStorm ataupun IDE lainnya. Fitur ini sudah tersedia secara built-in, atau kita bisa install plugin pendukung text editor.

Akan tetapi, kadang tidak semua kodingan ini bisa langsung secara otomatis terdapat dalam list sintaks yang ditampilkan autocomplete. Salah satu contohnya adalah saat menggunakan framework Laravel. Ya, belakangan ini saya mulai menggunakan Laravel untuk mengembangkan web dan handle project. Setelah mencoba, saya menemukan ternyata tidak semua kodingan bisa langsung pakai autocomplete. Misal ada sebuah class model namanya Post, kita ingin menampilkan daftar post dengan urutan desc berdasarkan id. Ketika kita ketik Post::or, asumsinya muncul autocomplete untuk method Post::orderBy(). Dan seperti yang tampak pada gambar, ternyata tidak ada.

uji coba autocomplete - kodingan tidak ada

Awalnya saya langsung mengetikan sintaksnya. Setelah beberapa waktu, ada salah seorang kawan yang terbiasa menggunakan Laravel sharing tentang package yang bisa menangani masalah autocomplete ini, nama packagenya Laravel Ide Helper.

Dengan Laravel IDE Helper ini kita bisa generate file helpers yang berfungsi untuk membantu IDE menyediakan autocomplete yang lebih akurat. Proses generate package ini berdasarkan file yang terdapat pada project kita, jadi file helpernya akan selalu up-to-date. Menarik bukan? Nah, sekarang kita coba install.

Step 1 - Install Laravel IDE Helper

Asumsinya kita sudah masuk dalam proses development sebuah project menggunakan framework laravel. Jadi di sini kita tidak bahas dari proses install Laravel, setting project dan lain-lain.

Kita akan install Laravel IDE Helper ini menggunakan composer. Buka terminal lalu run command berikut ini.

composer require --dev barryvdh/laravel-ide-helper

Bisa dilihat di commandnya, karena ini untuk development saja, kita tambahkan opsi --dev di dalam command composer.

Setelah proses install selesai, kita bisa publish file konfigurasi package Laravel IDE Helper. Kita run artisan command berikut ini.

php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config

Step 2 - Generate Helper

Untuk generate file helper, buka terminal, lalu run command berikut ini.

php artisan ide-helper:generate

Setelah command kita run, kita bisa lihat ada file baru, namanya _ide_helper.php.

Selanjutnya kita akan coba generate helper untuk model. Buka kembali terminal, lalu run command berikut ini.

php artisan ide-helper:models

Kurang lebih nanti ada pertanyaan seperti ini.

php artisan ide-helper:models

 Do you want to overwrite the existing model files? Choose no to write to _ide_helper_models.php instead (yes/no) [no]:

Kalau kita pilih yes, nanti di dalam file model ada tambahan phpDocs atau komentar hasil generate package ini. Nah supaya file model clean dan tidak terlalu banyak komentar, kita bisa pilih opsi no. Kita ketik no, lalu enter.

 Do you want to overwrite the existing model files? Choose no to write to _ide_helper_models.php instead (yes/no) [no]:
 > no

Model information was written to _ide_helper_models.php

Dari outputnya, kita bisa lihat ada file baru hasil generate packagenya. Kurang lebih isi filenya seperti ini.

<?php

// @formatter:off
/**
 * A helper file for your Eloquent Models
 * Copy the phpDocs from this file to the correct Model,
 * And remove them from this file, to prevent double declarations.
 *
 * @author Barry vd. Heuvel <[email protected]>
 */

namespace App\Models{
/**
 * App\Models\Post
 *
 * @property int $id
 * @property string $title
 * @property string $content
 * @property int $status 0=draft 1=publish
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @method static \Database\Factories\PostFactory factory(...$parameters)
 * @method static \Illuminate\Database\Eloquent\Builder|Post newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder|Post newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder|Post query()
 * @method static \Illuminate\Database\Eloquent\Builder|Post whereContent($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Post whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Post whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Post whereStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Post whereTitle($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Post whereUpdatedAt($value)
 */
    class Post extends \Eloquent {}
}

Step 3 - Uji Coba

File helper sudah kita generate di step sebelumnya, sekarang kita uji coba apakah ada perbedaan di autocomplete nya?

Case untuk uji coba masih sama, ada sebuah class model namanya Post, kita ingin menampilkan daftar post dengan urutan desc berdasarkan id. Ketika kita ketik Post::or, asumsinya muncul autocomplete untuk method Post::orderBy(). Nah sekarang kita coba.

Uji coba laravel ide helper - autocomplete lebih akurat

Bisa kita lihat di gambar, sekarang sudah bisa autocomplete untuk method orderBy().

Penutup

Teks editor ataupun IDE biasanya mempunyai fitur autocomplete untuk mempercepat proses development. Namun kadang tidak semua sintaks itu bisa menggunakan autocomplete. Kabar baiknya ada package yang menangani masalah ini, sehingga fitur autocomplete menjadi lebih akurat, yaitu package Laravel Ide Helper.

Semoga bermanfaat, semoga lebih semangat berkarya.

Gun Gun Priatna
Software Engineer, Content Writer and Founder qadrlabs.com
Komentar

blog comments powered by Disqus