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.
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.
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
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 {}
}
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.
Bisa kita lihat di gambar, sekarang sudah bisa autocomplete untuk method orderBy()
.
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.
© 2024 qadrLabs . All rights reserved. 000515268