Ringkasan: Proyek yang Terorganisasi
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan PHP di Coddy. Pelajaran 14 dari 91.
Tantangan
MudahMari kita bangun aplikasi blog lengkap dengan pengaturan namespace yang tepat, dengan menggabungkan semua yang telah kamu pelajari tentang namespace, kata kunci use, dan pemuatan otomatis PSR-4.
Kamu akan membuat proyek yang terstruktur dengan baik dan terdiri dari lima file, yang menunjukkan cara aplikasi PHP nyata mengatur kodenya:
src/Models/Author.php: Definisikan classAuthordi namespaceBlog\Models. Class ini harus memiliki propertypublic $name, constructor yang menerima dan menetapkan nama, serta methodgetBio()yang mengembalikan"Author: [name]".src/Models/Post.php: Definisikan classPostdi namespaceBlog\Models. Class ini harus memiliki propertypublic $titledanpublic $author(dengan author berupa objectAuthor). Constructor menerima judul dan objectAuthor, lalu menetapkan keduanya. Tambahkan methodgetSummary()yang mengembalikan"[title] by [author name]".src/Services/Publisher.php: Definisikan classPublisherdi namespaceBlog\Services. Class ini harus memiliki methodpublish(Post $post)yang menerima objectPostdan mengembalikan"Published: [post title]". Kamu perlu mengimpor classPostmenggunakan kata kunciusekarena class tersebut berada di namespace yang berbeda.vendor/autoload.php: Buat autoloader PSR-4 menggunakanspl_autoload_registeryang memetakan prefix namespaceBlog\ke direktorisrc/. Satu autoloader ini menangani pemuatan semua class-mu secara otomatis.index.php: Titik masukmu. Wajibkan autoloader, lalu gunakan kata kunciuseuntuk mengimporBlog\Models\Author,Blog\Models\Post, danBlog\Services\Publisher. BuatAuthorbernama"Jane Smith",Postdengan judul"Getting Started with PHP"menggunakan author tersebut, dan sebuahPublisher. Cetak bio author, ringkasan post, dan hasil penerbitan post, masing-masing pada baris tersendiri.
Perhatikan bagaimana service Publisher bergantung pada model Post. Ini menunjukkan bagaimana class dalam namespace yang berbeda dapat bekerja sama dengan mengimpor hal yang mereka perlukan menggunakan pernyataan use.
Coba sendiri
<?php
// Muat autoloader dengan require
require_once 'vendor/autoload.php';
// TODO: Impor class yang diperlukan menggunakan pernyataan 'use'
// - Blog\Models\Author
// - Blog\Models\Post
// - Blog\Services\Publisher
// TODO: Buat Author bernama "Jane Smith"
// TODO: Buat Post berjudul "Getting Started with PHP" menggunakan Author tersebut
// TODO: Buat Publisher
// TODO: Tampilkan biodata Author
// TODO: Tampilkan ringkasan Post
// TODO: Tampilkan hasil penerbitan Post
?>Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengenalan OOPclass vs objectKata Kunci $thismethodpropertyConstructor (__construct)Destructor (__destruct)Ringkasan: Kalkulator Sederhana4Pewarisan
Pewarisan DasarKata Kunci parent::Penimpaan methodKata Kunci finalClass AbstrakRingkasan: Hierarki Karyawan7Enkapsulasi
Public, Protected, PrivateModifier Akses secara MendalamGetter dan SetterPenyembunyian InformasiPromosi Constructor (8.0)Ulasan: Sistem Catatan Siswa2Namespace dan Autoloading
Pengenalan NamespaceKata Kunci useStandar Autoloading PSR-4Autoloader ComposerRingkasan: Proyek yang Terorganisasi5Interface dan Kontrak
Pengenalan InterfaceMengimplementasikan InterfaceImplementasi Beberapa InterfaceInterface vs Abstract ClassPetunjuk Tipe dengan InterfaceRekap: Kalkulator Bentuk8Magic Methods
Pengantar Magic Methods__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Cloning Object__serialize & __unserializeRingkasan: Koleksi Kustom11Sistem Tipe Data dan Penanganan Error
Deklarasi TipeTipe NullableTipe Union dan IntersectionClass ExceptionHierarki Exception KustomTry, Catch, FinallyRekap: Validator Form3Property dalam class
Property instance vs staticKonstanta dalam classMethod & property staticProperty private & protectedProperty readonly (PHP 8.1)Ulasan: Pengelola Rekening Bank6Polimorfisme
Meninjau Kembali Method OverridingPolimorfisme melalui AntarmukaPetunjuk Tipe dan Tipe UnionPengikatan Statis TertundaRangkuman: Pemroses PembayaranLatihan sendiri: Compiler PHP online