Kodeloka
  1. Kodeloka
  2. Kelas PHP
  3. Materi

Materi tertulis · 25 modul

Materi PHP

Kelas PHP berbahasa Indonesia: 25 modul tentang PHP 8.4–8.5, tipe dan OOP modern, Composer, keluaran aman, session, unggah berkas, PDO, kata sandi, CSRF, PHPUnit, dan PHP-FPM.

1 · Fondasi

  1. 1. Pengantar PHP Modern: Siklus Versi, Cara Kerja di Server, dan strict_typesMemahami transformasi PHP modern (PHP 8.2 hingga 8.5), kebijakan siklus dukungan 4 tahun, model eksekusi share-nothing pada PHP-FPM dan CLI, serta penggunaan wajib…
  2. 2. Sintaks, Sistem Tipe Modern, Ekspresi match, dan Operator Pipe (|)Menguasai variabel, konstanta, deklarasi tipe skalar dan gabungan (union/intersection types), perbandingan ketat ===, ekspresi match (sejak PHP 8.0), operator nullsafe…
  3. 3. Pengolahan String Multibyte (mb_*) dan Array Modern di PHP 8.4 & 8.5Memanipulasi teks UTF-8 dengan aman menggunakan fungsi mb_* dan str_contains() / str_starts_with(), serta menguasai struktur data Array PHP, destructuring/unpacking…
  4. 4. Fungsi, Named Arguments, Closure, Arrow Function (fn), dan #[\NoDiscard]Menulis fungsi yang ekspresif dan aman dengan deklarasi tipe ketat, named arguments (PHP 8.0), variadic parameters, perbedaan anonymous function (use) dan arrow function…
  5. 5. Tanggal, Waktu (DateTimeImmutable), Zona Waktu UTC, dan Internasionalisasi (intl)Mengelola waktu dengan aman menggunakan DateTimeImmutable (dan metode mikrodetik PHP 8.4), memisahkan penyimpanan waktu UTC di basis data dari tampilan zona waktu lokal…

2 · OOP & Struktur Kode

  1. 6. Pemrograman Berorientasi Objek (OOP) Modern: Readonly, Asymmetric Visibility, dan Property HooksMerancang class yang ringkas dan tangguh di PHP 8 menggunakan Constructor Property Promotion, Readonly Classes & clone($this, [...]) (PHP 8.5), Asymmetric Visibility…
  2. 7. Enumerations (enum — Sejak PHP 8.1): Pure Enum, Backed Enum, Metode, dan InterfaceMenggantikan konstanta nilai ajaib (magic strings/numbers) dengan tipe enum yang aman di tingkat kompilasi, menguasai Pure Enum dan Backed Enum (string/int), konversi…
  3. 8. Penanganan Exception (Throwable), Hierarki Galat, dan Global HandlerMembedah hierarki Throwable (Error vs Exception), menerapkan pola try/catch/finally dan exception chaining ($previous), merancang hierarki Domain Exception, serta…
  4. 9. Namespace, Resolusi Nama, dan Cara Kerja Autoloading PSR-4 di Balik LayarMenguasai pengorganisasian ruang nama (namespace, use, use function, use const), memahami aturan resolusi nama (unqualified, qualified, fully qualified), menulis…
  5. 10. Manajemen Dependensi dengan Composer, SemVer, composer.lock, dan Standar PER/PSR-12Mengelola siklus hidup pustaka pihak ketiga menggunakan Composer, memahami aturan Semantic Versioning (^ vs ~), mengunci rilis dengan composer.lock, memindai kerentanan…
  6. 11. Ekspresi Reguler (PCRE2 preg_*), Attributes (#[...]), dan Reflection APIMencocokkan dan mengekstrak pola teks menggunakan fungsi PCRE2 (preg_match, preg_match_all, preg_replace_callback), serta merancang metadata deklaratif menggunakan PHP…

3 · Web & Keamanan Dasar

  1. 12. Menangani Permintaan HTTP, Validasi filter_input(), dan Ekstensi Uri (PHP 8.5)Membedah siklus permintaan HTTP di PHP melalui variabel superglobal ($_SERVER, $_GET, $_POST), membaca body JSON dari php://input, memvalidasi masukan pengguna dengan…
  2. 13. Keluaran Aman (Contextual Output Escaping), Pencegahan XSS, dan Header Keamanan HTTPMencegah celah Cross-Site Scripting (XSS) dengan menerapkan pengodean keluaran sesuai konteks penempatannya (HTML body, atribut HTML, blok JavaScript, parameter URL)…
  3. 14. Manajemen State: Cookie yang Aman, Session, dan Pencegahan Session FixationMengelola identitas dan state pengguna di atas protokol HTTP yang stateless menggunakan setcookie() dengan atribut keamanan (HttpOnly, Secure, SameSite, partitioned)…
  4. 15. Menangani Unggah Berkas (File Upload) Secara AmanMemproses unggahan berkas melalui $_FILES dengan memeriksa kode status UPLOAD_ERR_*, memverifikasi tipe MIME sejati dari isi biner berkas menggunakan ekstensi finfo…
  5. 16. Perlindungan Cross-Site Request Forgery (CSRF), random_bytes(), dan Pertahanan BerlapisMembedah anatomi serangan Cross-Site Request Forgery (CSRF), mengimplementasikan Synchronizer Token Pattern dengan random_bytes() dan hash_equals(), memanfaatkan header…
  6. 17. Keamanan Kata Sandi: password_hash() (Argon2id/Bcrypt), password_verify(), dan Reset Sandi AmanMengamankan kredensial pengguna menggunakan fungsi Key Derivation bawaan PHP (password_hash, password_verify, password_needs_rehash), memahami parameter memori dan waktu…
  7. 18. Akses Basis Data Aman dengan PDO, Prepared Statements, dan TransaksiMenghubungkan PHP ke basis data (PostgreSQL, MySQL, SQLite) menggunakan ekstensi PDO dan PDO::connect() (PHP 8.4), menangkal SQL Injection secara mutlak dengan Prepared…

4 · Data & Berkas

  1. 19. Sistem Berkas, PHP Streams, dan Pemrosesan Data Besar Hemat Memori dengan Generator (yield)Membaca dan menulis berkas secara aman dengan penguncian LOCK_EX (berbasis flock()), memanfaatkan aliran PHP Streams (php://temp, php://output), serta memproses jutaan…

5 · Arsitektur Aplikasi

  1. 20. Arsitektur Aplikasi Modern: Routing, Middleware (PSR-15), dan Dependency Injection (PSR-11)Memahami arsitektur internal di balik kerangka kerja PHP modern melalui pola Front Controller, Router, pipa pemrosesan Middleware (PSR-7 & PSR-15), serta Dependency…
  2. 21. Struktur Direktori Proyek Siap Produksi, Konfigurasi Lingkungan, dan Logging Terstruktur (PSR-3)Mengorganisasikan arsitektur direktori aplikasi PHP yang memisahkan public/ dari kode sumber internal, mengelola konfigurasi via variabel lingkungan (getenv), serta…

6 · Layanan & Proses

  1. 22. Komunikasi Antar-Layanan (cURL & Persistent Handles PHP 8.5), Caching, dan Rate LimitingMemanggil API eksternal dengan aman menggunakan ekstensi cURL dan fitur baru curl_share_init_persistent() di PHP 8.5, mempercepat aplikasi dengan pola Cache-Aside (APCu…

7 · Kualitas & Produksi

  1. 23. Pengujian Otomatis (Unit & Integration Testing) dengan PHPUnit 12Membangun suite pengujian otomatis kelas industri menggunakan PHPUnit 12, menguasai atribut #[Test] dan #[DataProvider], menggunakan Test Doubles (createStub vs…
  2. 24. Menyajikan Aplikasi PHP di Produksi dengan Nginx, PHP-FPM, dan OPcacheMerancang arsitektur server produksi menggunakan Nginx + PHP-FPM melalui soket FastCGI, menghitung kapasitas worker pool (pm.max_children), mengoptimalkan kinerja dengan…
  3. 25. Proyek Akhir Kelas PHP: Aplikasi Manajemen Modul & Catatan Belajar AmanMembangun aplikasi web PHP 8.4/8.5 berarsitektur bersih dari nol yang memadukan PSR-4 Autoloading, Backed Enum, Readonly Class, PDO Prepared Statements, proteksi sesi…