


Penjelasan terperinci tentang corak arahan dalam PHP dan kaedah aplikasinya
Corak arahan ialah corak reka bentuk yang merangkum permintaan ke dalam objek, membolehkan anda membuat parameter klien dengan permintaan, baris gilir atau log permintaan yang berbeza dan menyokong operasi yang boleh dibuat asal. Idea teras corak ini adalah untuk memisahkan tingkah laku yang diminta oleh klien daripada tingkah laku pelaksanaan. Mod arahan dalam PHP digunakan secara meluas dalam sistem yang perlu merekod log aplikasi, dan sistem yang perlu melaksanakan perintah sejarah secara dinamik.
Komponen teras corak arahan termasuk arahan, penerima dan pemanggil. Objek arahan membawa permintaan dan parameter operasi klien Penerima ialah objek yang benar-benar melaksanakan permintaan ini, dan pemanggil menghantar permintaan kepada penerima. Kelebihan ini ialah pemanggil tidak perlu mengetahui penerima mana permintaan akan dilakukan, kerja ini boleh dicapai dengan mudah melalui objek arahan.
Objek arahan biasanya perlu mengandungi bahagian berikut: kaedah
-
execute
, yang sebenarnya akan melaksanakan operasi arahan. Kaedah -
undo
, apabila pemanggil perlu membatalkan arahan, kaedah ini akan memulihkan penerima kepada keadaan asal. Kaedah -
redo
, apabila pemanggil perlu membuat semula arahan, kaedah ini akan memulihkan penerima kepada keadaan pelaksanaan terakhir arahan.
Penerima melaksanakan operasi tertentu, seperti memproses fail, melaksanakan operasi pangkalan data, dsb. Pemanggil bertanggungjawab untuk membuat permintaan kepada penerima, tetapi tidak berinteraksi secara langsung dengan penerima. Objek arahan bertindak sebagai jambatan antara pemanggil dan penerima. Ia memisahkan kandungan khusus arahan daripada pemanggil dan penerima, membolehkan arahan disimpan, bersiri, dihantar atau dilaksanakan berulang kali.
Di bawah ini kami akan menggunakan contoh khusus untuk memahami lebih lanjut mod arahan dalam PHP.
Andaikan kita perlu melaksanakan editor teks ringkas yang menyokong operasi buat asal dan buat semula. Pertama, kita perlu mentakrifkan Perintah kelas asas abstrak, yang akan mengisytiharkan tiga kaedah execute
, undo
dan redo
.
abstract class Command { abstract public function execute(); abstract public function undo(); abstract public function redo(); }
Kemudian, kita perlu melaksanakan arahan khusus, seperti membuka fail, menyimpan fail dan memadamkan teks.
class OpenFileCommand extends Command { public function __construct(FileReceiver $receiver) { $this->receiver = $receiver; } public function execute() { $this->receiver->openFile(); } public function undo() { $this->receiver->closeFile(); } public function redo() { $this->execute(); } } class SaveFileCommand extends Command { public function __construct(FileReceiver $receiver) { $this->receiver = $receiver; } public function execute() { $this->receiver->saveFile(); } public function undo() { // No need to implement } public function redo() { $this->execute(); } } class DeleteTextCommand extends Command { public function __construct(TextReceiver $receiver) { $this->receiver = $receiver; } public function execute() { $this->receiver->deleteText(); } public function undo() { $this->receiver->insertText(); } public function redo() { $this->execute(); } }
Penerima melaksanakan operasi tertentu, seperti membuka fail, menyimpan fail dan memadam teks.
class FileReceiver { public function openFile() { // Open file } public function closeFile() { // Close file } public function saveFile() { // Save file } } class TextReceiver { private $text = ''; public function insertText($text) { $this->text .= $text; } public function deleteText() { $this->text = substr($this->text, 0, -1); } public function getText() { return $this->text; } }
Akhir sekali, kami perlu melaksanakan peranti untuk menghantar permintaan kepada penerima.
class Invoker { private $commands = []; private $current = 0; public function addCommand(Command $command) { array_splice($this->commands, $this->current); $this->commands[] = $command; $command->execute(); $this->current++; } public function undo() { if ($this->current > 0) { $this->current--; $command = $this->commands[$this->current]; $command->undo(); } } public function redo() { if ($this->current < count($this->commands)) { $command = $this->commands[$this->current]; $command->redo(); $this->current++; } } }
Apabila menggunakan editor teks, kita boleh menggunakan Invoker untuk menambah dan membuat asal arahan, yang akan mengekalkan sejarah arahan untuk operasi seterusnya. Contohnya:
$invoker = new Invoker(); // Open file $invoker->addCommand(new OpenFileCommand(new FileReceiver())); // Type 'Hello' $textReceiver = new TextReceiver(); $textReceiver->insertText('Hello'); $invoker->addCommand(new DeleteTextCommand($textReceiver)); // Save file $invoker->addCommand(new SaveFileCommand(new FileReceiver())); // Undo $invoker->undo(); // Redo $invoker->redo();
Seperti yang ditunjukkan dalam kod di atas, kami mula-mula melaksanakan arahan untuk membuka fail, kemudian menambah arahan untuk memadam teks, melaksanakan arahan dan menyimpan arahan fail Akhirnya, kami menggunakan Invoker untuk membatalkan operasi dan membuat semula operasi.
Ringkasnya, corak arahan dalam PHP boleh membantu kami merangkum permintaan dan memisahkannya daripada penerima dan pemanggil, menjadikan aplikasi lebih modular dan mudah diperluaskan. Kami boleh menambah fungsi baharu pada aplikasi kami dengan mudah hanya dengan mencipta objek arahan yang berbeza. Sama ada editor teks atau aplikasi lain, corak arahan dalam PHP ialah corak reka bentuk yang sangat berguna.
Atas ialah kandungan terperinci Penjelasan terperinci tentang corak arahan dalam PHP dan kaedah aplikasinya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

MicrosoftStore ialah platform yang berguna di mana anda boleh memuat turun permainan dan apl yang dipercayai untuk Windows. Kadangkala apabila mengemas kini Windows atau mengemas kini aplikasi secara tidak betul, kami menghadapi kod ralat 0x80073D02 dalam Microsoft Store. Ralat ini menghalang anda daripada membuka Microsoft Store atau kadangkala daripada mengemas kini apl. Ini adalah pengalaman yang menjengkelkan untuk pengguna. Mari lihat bagaimana untuk menghapuskan ralat ini. Kaedah Satu: Menetapkan Semula Cache Gedung Windows Entri rosak dalam cache juga boleh menambah masalah dan boleh membawa kepada kod ralat 0x80073D02. jom cuba
![Cara untuk dwi-but Windows 11 dan macOS [Panduan Lengkap]](https://img.php.cn/upload/article/000/000/164/168146628429366.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Windows 11 membawa beberapa perubahan besar, kebanyakannya diterima secara meluas oleh pengguna di seluruh dunia. Walaupun anda boleh dwi-but Windows 11 dan Windows 10, bagaimana pula dengan sistem pengendalian lain? Windows 11 boleh digunakan dengan sistem pengendalian yang berbeza, dan anda boleh dwi-but Windows 11 dan Linux jika perlu. Ramai orang sering bertanya, bolehkah saya dwi-boot Windows dan macOS? Jawapannya ya. Apabila ia datang kepada macOS, keadaannya tidak berbeza. Anda boleh dwi-but macOS dan Windows untuk menggunakan perisian Windows atau bermain permainan pada Mac anda. Sesetengah orang mungkin mencuba macOS pada PC mereka menggunakan dwi but. Dwi but Win

Menyalin sentiasa menjadi cara terbaik untuk menyimpan dan berkongsi fail. Ia membolehkan anda membuat sandaran manual, melakukan pemindahan mudah, dan juga membuat pengubahsuaian yang mungkin merosakkan fail asal jika tidak disalin. Walau bagaimanapun, ini kadangkala sukar jika anda menghadapi masalah cuba menggunakan papan keratan pada PC Windows anda. Beberapa pengguna Windows 11 baru-baru ini tidak dapat menggunakan salin-tampal pada sistem mereka. Isu ini boleh berlaku disebabkan beberapa sebab dan jika anda berada dalam bot yang sama, maka anda boleh membetulkannya pada PC anda. Cara Membetulkan Salin-Tampal pada Windows 11 Memandangkan terdapat banyak isu yang boleh menyebabkan salin-tampal tidak berfungsi pada Windows, kami telah menyenaraikan penyelesaian yang paling biasa untuk menyelesaikan masalah ini di bawah. Kami mengesyorkan anda mulakan dengan yang pertama

Dalam aplikasi PHP, kadangkala kita perlu menyimpan atau memuat naik fail menggunakan tarikh semasa sebagai nama fail. Walaupun boleh memasukkan tarikh secara manual, ia adalah lebih mudah, lebih cepat dan lebih tepat untuk menggunakan tarikh semasa sebagai nama fail. Dalam PHP, kita boleh menggunakan fungsi date() untuk mendapatkan tarikh semasa. Kaedah penggunaan fungsi ini ialah: tarikh(format, cap masa); di mana format ialah rentetan format tarikh, dan cap masa ialah cap masa yang mewakili tarikh dan masa Jika parameter ini tidak diluluskan, ia akan digunakan

Selepas memasang sistem pengendalian terkini pada PC anda, mengaktifkan salinan Windows 11 anda ialah tugas utama. Ia bukan sahaja membuka kunci potensi sebenar sistem pengendalian Windows 11, tetapi ia juga menyingkirkan mesej "Aktifkan Windows 11" yang menjengkelkan. Walau bagaimanapun, bagi sesetengah pengguna, ralat pengaktifan Windows 11 0xc004f074 menghalang kemajuan pengaktifan yang lancar. Pepijat ini nampaknya menghalang pengguna daripada mengaktifkan Windows 11 dan memaksa mereka menggunakan sistem pengendalian dengan fungsi terhad. Kod ralat pengaktifan Windows 11 0xc004f074 berkaitan dengan Perkhidmatan Pengurusan Kunci. Anda akan menghadapi masalah ini apabila KMS tidak tersedia. Okay, itu sahaja untuk tutorial ini

Tutorial: Menggunakan Pemesejan Awan Firebase untuk melaksanakan fungsi tolak mesej berjadual dalam aplikasi PHP Gambaran Keseluruhan Pemesejan Awan Firebase (FCM) ialah perkhidmatan tolakan mesej percuma yang disediakan oleh Google, yang boleh membantu pembangun menghantar mesej masa nyata ke aplikasi Android, iOS dan Web. Tutorial ini akan membawa anda menggunakan FCM untuk melaksanakan fungsi tolak mesej berjadual melalui aplikasi PHP. Langkah 1: Buat projek Firebase Pertama, dalam F

1. Apakah pengaturcaraan generik? Pengaturcaraan generik merujuk kepada pelaksanaan jenis data biasa dalam bahasa pengaturcaraan supaya jenis data ini boleh digunakan pada jenis data yang berbeza, dengan itu mencapai penggunaan semula dan kecekapan kod. PHP ialah bahasa yang ditaip secara dinamik Ia tidak mempunyai mekanisme jenis yang kuat seperti C++, Java dan bahasa lain, jadi ia tidak mudah untuk melaksanakan pengaturcaraan generik dalam PHP. 2. Pengaturcaraan generik dalam PHP Terdapat dua cara untuk melaksanakan pengaturcaraan generik dalam PHP: menggunakan antara muka dan menggunakan ciri. Buat antara muka dalam PHP menggunakan antara muka

Redis ialah sistem storan nilai kunci berprestasi tinggi yang menyokong pelbagai struktur data, termasuk rentetan, jadual cincang, senarai, set, set tersusun, dsb. Pada masa yang sama, Redis juga menyokong padanan ungkapan biasa dan operasi penggantian pada data rentetan, yang menjadikannya sangat fleksibel dan mudah dalam membangunkan aplikasi PHP. Untuk menggunakan Redis untuk operasi ungkapan biasa dalam aplikasi PHP, anda perlu memasang sambungan phpredis terlebih dahulu. Sambungan ini menyediakan cara untuk berkomunikasi dengan pelayan Redis.
