name: naming-conventions description: Standar penamaan variable/method & aturan import (use vs FQCN) di repo ini. Baca sebelum menulis kode PHP/Livewire/Volt baru — terutama saat menamai variable untuk konsep domain (risiko jatuh, dll.) atau menambahkan pemakaian class seperti Carbon di file Volt.
Naming Conventions & Imports
1. Singkatan modul sudah "dipesan" — jangan dipakai untuk makna lain
Di repo ini singkatan berikut SELALU berarti modul/unit, bukan yang lain:
| Singkatan | Artinya | BUKAN |
|---|---|---|
rj / $rj |
Rawat Jalan | risiko jatuh |
ri / $ri |
Rawat Inap | — |
ugd |
Unit Gawat Darurat | — |
rm |
Rekam Medis / No. RM | — |
Contoh kasus nyata: variable risiko jatuh sempat dinamai $rjList, $rjKategori — di file RJ, $rj adalah data rawat jalan → tabrakan makna, ditolak user.
Aturan: konsep domain ditulis LENGKAP, camelCase bahasa Indonesia, ikut idiom field JSON-nya:
$resikoJatuhTerakhir, hitungResikoJatuhTerakhir(), $kategoriResiko, $tglPenilaian.
Variable lokal juga ditulis LENGKAP — jangan singkatan walau scope-nya pendek
(keputusan user 2026-06-06, jadwal-kontrol):
$src→$sumber, $kw→$keyword, $w (closure where)→$subQuery,
$b/$r (item loop/sort)→nama itemnya ($kunjungan, $jadwal, $entri).
Nama generik untuk collection hasil juga dihindari: $hasil→$jadwalList/$riwayatList.
Pengecualian: $row untuk item $this->rows di template (idiom repo lintas halaman).
2. use import vs FQCN di file Volt
File Volt SFC punya 2 zona PHP yang dikompilasi terpisah:
- Blok
<?php ... ?>atas (class component) → import normal berlaku. Tulisuse Carbon\Carbon;di atas dan pakaiCarbon::— JANGAN\Carbon\Carbon::inline di zona ini. @php ... @endphpdi template → import dari blok atas TIDAK menjangkau sini; FQCN\Carbon\Carbon::memang diperlukan kalau terpaksa.
Aturan: logika non-trivial (loop, parsing tanggal, agregasi) JANGAN ditaruh di @php
template — pindahkan ke method class (private + public property hasil). Template @php
hanya untuk mapping display ringan. Dengan begitu FQCN nyaris tidak pernah dibutuhkan.
3. Konsistensi gaya yang sudah jalan
- Property/method Livewire: camelCase bahasa Indonesia sesuai domain (
$dataDaftarRi,openDisplay,hitungResikoJatuhTerakhir). - Key JSON EMR: ikuti key yang sudah ada di
datadaftar*_json(resikoJatuh,kategoriResiko) — jangan menerjemahkan/menyingkat ulang. - Kolom Oracle: snake_case lowercase di query (
bed_no,room_name) — lihat skilloracle-quirksuntuk jebakan mixed-case. - Komentar di blok
<?phpVolt: hindari substringreuse/re-use(lihat skillblade-safe-edit§3).
4. Branching data sensitif lintas tabel — JANGAN if/else atau ternary default
Operasi tulis yang cabangnya menentukan TABEL tujuan (mis. sumber RJ vs RI):
nilai di luar dugaan tidak boleh diam-diam jatuh ke cabang else.
// ❌ SALAH — sumber 'XX' ikut masuk cabang RI
$data = $sumber === 'RJ' ? $this->findDataRJ($no) : $this->findDataRI($no);
if ($sumber === 'RJ') { ...updateJsonRJ... } else { ...updateJsonRI... }
// ✅ BENAR — guard whitelist + if eksplisit per nilai
if (!in_array($sumber, ['RJ', 'RI'], true)) { toast error; return; }
if ($sumber === 'RJ') { ...updateJsonRJ... }
if ($sumber === 'RI') { ...updateJsonRI... }
Acuan: riwayat-kontrol-pasien (geser tgl kontrol RJ/RI).