Kerangka kerja aplikasi web yang sederhana namun dapat diukur.
Contoh sederhana:
<?php
require_once 'Phapp.php';
class Hello extends PhappView
{
public function response()
{
return 'Hello World.';
}
}
$app = new Phapp();
echo $app->process( 'Hello' );
Temukan contoh ini dan lebih kompleks dalam cabang sampel.
Idenya adalah untuk menentukan satu set objek tampilan yang diproses oleh objek aplikasi utama.
Setiap objek tampilan mewarisi dari phappview yang memiliki dua metode utama yang harus Anda timpa. Yang pertama adalah permintaan ():
public function request()
{
if( !$_REQUEST['order_number'] )
return 'Home';
return null;
}
Tujuan dari metode ini adalah untuk menangani permintaan dan, jika diperlukan, mengembalikan nama tampilan lain yang harus mengambil alih.
Tampilan pertama yang mengembalikan NULL akan mendapatkan metode respons () yang dipanggil untuk menanggapi permintaan:
public function response()
{
return '<h1>Hello</h1>';
}
Inilah grafik kecil yang menunjukkan bagaimana semuanya bekerja bersama:
+----------------------------+
| Name of a PhappView object | <-------------------------+
+----------------------------+ |
| |
| |
+-- Phapp ------|-------+ |
| | | |
| V | |
| +------------------------+ +-- PhappView ---------+ |
| | Construct object | ------> | | |
| +------------------------+ | Object derived | |
| | | | from PhappView | |
| V | | | |
| +------------------------+ +-- request() ---------+ |
| | Call request() on | | | |
| | that object | ------> | Determine if | |
| +------------------------+ | this object | |
| | | can handle | |
| +------------------------+ yes? | this request | no? |
| | request() returned | <------ | | -----+
| | null | +-- response() --------+
| | so call response() | ------> | |
| | to get the output | <------ | Generate output for |
| +------------------------+ html | this request |
| | | | |
+---------------|-------+ +----------------------+
|
V
+----------+
| Web page |
+----------+
Phapp sangat minim dan sangat kecil. Lihat saja Phapp.php untuk sepenuhnya memahami konsepnya.
Subclass Phapp dan PhappView untuk menambahkan metode untuk akses basis data, internasionalisasi, dan hal -hal seperti itu.
Ide yang bagus untuk mengatur tampilan dasar yang berisi metode umum dan memperoleh pandangan Anda dari itu.
Jika Anda menggunakan PDO, Anda dapat mewarisi pandangan Anda dari phapppdoview dan hubungi kueri () seperti ini:
if( ($result = $this->query(
"SELECT
first,
last
FROM members
WHERE last_login = ?
ORDER BY last",
$lastLogin )) )
{
while( ($row = $result->fetch()) )
{
$contents .= "<li>{$row['first']} {$row['last']}</li>";
}
}
Mungkin yang terbaik adalah menambahkan Phapp sebagai submodul atau subtree ke repositori proyek Anda untuk dapat memperbarui dengan cepat dan mudah.