Apabila aplikasi web terus berkembang, cara tapak web dibina juga sentiasa bertambah baik. Pada masa lalu, pembangun sering membina tapak web menggunakan berbilang fail, masing-masing bertanggungjawab untuk mengendalikan permintaan yang berbeza. Walau bagaimanapun, pendekatan ini boleh membawa kepada kod yang tidak kemas yang sukar untuk dikekalkan. Berdasarkan ini, seni bina MVC wujud, membahagikan kod kepada tiga bahagian: Model, Lihat dan Pengawal, menjadikan kod mudah untuk disusun dan diurus. Walau bagaimanapun, untuk beberapa aplikasi kecil atau pemula, adalah tidak perlu menggunakan seni bina MVC, dan menggunakan rangka kerja MVC akan meningkatkan akses aplikasi, yang tidak kondusif untuk pengoptimuman prestasi.
Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan satu entri tanpa menggunakan rangka kerja MVC.
Entri tunggal
Entri tunggal ialah seni bina yang digunakan dalam aplikasi Keseluruhan aplikasi hanya mempunyai satu fail kemasukan dan semua permintaan diproses oleh fail ini. Kelebihan seni bina ini ialah permintaan boleh diuruskan secara seragam dan diselenggara dengan mudah. Pada masa yang sama, sekatan keselamatan juga boleh dilaksanakan ke atas permintaan untuk menghalang akses haram.
Dalam PHP, kita boleh menggunakan fail .htaccess untuk memajukan semua permintaan ke fail index.php untuk mencapai satu entri.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L] </IfModule>
Kod di atas memajukan permintaan ke fail index.php Ia hanya akan dimajukan apabila fail yang diminta tidak wujud dan direktori yang diminta tidak wujud. ## Laksanakan penghalaan Dalam mod kemasukan tunggal, kita perlu menghuraikan URL dan memetakannya kepada pengawal dan tindakan yang sepadan. Proses ini dipanggil penghalaan. Kita boleh menggunakan ungkapan biasa untuk menghuraikan URL kepada dua parameter: pengawal dan tindakan.
$request = $_SERVER['REQUEST_URI']; if (preg_match('/index.php\/(?P<controller>[a-z]+)\/(?P<action>[a-z]+)/', $request, $matches)) { $controller = ucfirst($matches['controller']) . 'Controller'; $action = $matches['action'] . 'Action'; } else { $controller = 'IndexController'; $action = 'indexAction'; }
Kod di atas menghuraikan URL kepada dua parameter, pengawal dan tindakan, dan menyerahkannya kepada pembolehubah $controller dan $action. Jika URL tidak mematuhi peraturan, IndexController dan indexAction digunakan secara lalai.
Laksanakan pengawal dan operasi Pengawal ialah bahagian teras mod kemasukan tunggal, bertanggungjawab untuk menerima permintaan dan memanggil operasi yang sepadan. Pada masa yang sama, pengawal juga bertanggungjawab untuk pemprosesan data dan melihat output. Pengawal biasa kelihatan seperti ini:
class IndexController { public function indexAction() { // 处理数据 $data = ['title' => 'Hello World']; // 输出视图 require_once 'index.view.php'; } }
Kod di atas mentakrifkan pengawal IndexController dengan tindakan indexAction. Data diproses dalam operasi dan dihantar ke paparan untuk output. ## Laksanakan pandangan Pandangan adalah satu lagi bahagian penting dalam mod kemasukan tunggal, bertanggungjawab untuk memproses data yang diluluskan oleh pengawal dan membentangkan data kepada pengguna. Kita boleh menggunakan HTML dan CSS untuk membina pandangan. Paparan ringkas kelihatan seperti ini:
<!DOCTYPE html> <html> <head> <title><?= $data['title'] ?></title> </head> <body> <h1><?= $data['title'] ?></h1> <p>Welcome to my website.</p> </body> </html>
Kod di atas menggunakan tag pendek PHP untuk mengeluarkan data yang diluluskan oleh pengawal.
Kesimpulan Dalam artikel ini, kami memperkenalkan cara untuk melaksanakan satu titik masuk menggunakan PHP tanpa menggunakan rangka kerja MVC. Kami menggunakan fail .htaccess untuk memajukan semua permintaan ke dalam fail dan laluan index.php untuk menghuraikan URL, memetakannya kepada pengawal dan tindakan yang sesuai. Pada masa yang sama, kami juga memperkenalkan kaedah pelaksanaan pengawal dan pandangan. Menggunakan satu titik masuk boleh menjadikan kod lebih teratur dan meningkatkan kebolehselenggaraan dan keselamatan kod.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan satu titik masuk menggunakan PHP tanpa menggunakan rangka kerja MVC. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!