Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membina rangka kerja peribadi PHP yang sesuai untuk projek kecil atau peribadi

Bagaimana untuk membina rangka kerja peribadi PHP yang sesuai untuk projek kecil atau peribadi

PHPz
PHPzasal
2023-04-21 09:12:59734semak imbas

Dengan pembangunan aplikasi Internet yang berterusan, pembangunan aplikasi Web telah menarik lebih banyak perhatian. Dalam pembangunan aplikasi web, menggunakan rangka kerja boleh mempercepatkan pembangunan dan meningkatkan kestabilan dengan berkesan. Sebagai bahasa pengaturcaraan web yang popular, PHP mempunyai banyak rangka kerja yang matang dan sangat baik, seperti Laravel, CodeIgniter, Yii, dll. Walau bagaimanapun, dalam pembangunan beberapa projek kecil atau peribadi, menggunakan rangka kerja matang ini mungkin kelihatan terlalu kembung atau terlalu rumit. Pada masa ini, menjadi sangat penting untuk membina rangka kerja peribadi anda sendiri. Artikel ini akan memperkenalkan cara membina rangka kerja peribadi PHP yang sesuai untuk projek kecil atau peribadi.

1. Penghalaan

Penghalaan merupakan bahagian penting dalam rangka kerja Web Ia merupakan mekanisme untuk menentukan pengawal yang harus dipanggil berdasarkan URL yang diminta. Dalam rangka kerja PHP yang mudah, penghalaan boleh dilaksanakan menggunakan kod berikut:

// 解析请求的uri,比如/index.php/user/list
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
// 删除前导斜杠并选择控制器及其方法
if ('/index.php' === $uri || '/' === $uri) {
    $controller = 'home';
    $action = 'index';
} else {
    $uri = ltrim($uri, '/');
    $uri_parts = explode('/', $uri);
    $controller = $uri_parts[0];
    $action = $uri_parts[1];
}

// 根据路由调用对应的控制器及其方法,如Home::index()
$controller_name = $controller.'Controller';
$controller_file = __DIR__.'/controllers/'.$controller_name.'.php';
// 判断控制器文件是否存在
if (file_exists($controller_file)) {
    require_once $controller_file;
    $controller_instance = new $controller_name();
    // 判断控制器方法是否存在
    if (method_exists($controller_instance, $action)) {
        $controller_instance->$action();
    } else {
        echo '404 Not Found';
    }
} else {
    echo '404 Not Found';
}

Kod di sini melaksanakan peraturan penghalaan mudah: gunakan bahagian pertama URL sebagai nama pengawal dan gunakan bahagian pertama URL sebagai nama pengawal Bahagian kedua digunakan sebagai nama kaedah yang perlu dilaksanakan oleh pengawal. Fail pengawal perlu wujud dalam direktori pengawal. Dalam fail pengawal, anda boleh menulis kelas untuk melaksanakan fungsi tertentu, seperti:

class HomeController {
    public function index() {
        echo 'Hello, World!';
    }
}

Kod di atas akan mengeluarkan "Hello, World!". Jika URL akses ialah /index.php/home/index, kaedah indeks kelas HomeController akan dipanggil dan "Hello, World!" Melalui mekanisme penghalaan mudah ini, kami boleh melaksanakan fungsi penghalaan URL mudah dengan sangat mudah.

2. Permintaan dan respons

Dalam aplikasi web, permintaan dan respons adalah dua bahagian yang sangat diperlukan. Biasanya, pengguna membuat permintaan kepada pelayan Web melalui penyemak imbas, pelayan Web menerima permintaan, memprosesnya, dan akhirnya mengembalikan respons. Dalam rangka kerja peribadi PHP, penghuraian permintaan dan output respons boleh dicapai melalui kod berikut:

// 解析请求方式和请求参数
$request_method = strtolower($_SERVER['REQUEST_METHOD']);
if ('post' === $request_method) {
    $request_params = $_POST;
} elseif ('get' === $request_method) {
    $request_params = $_GET;
} else {
    $request_params = [];
}

// 响应输出
function response($data, $content_type = 'application/json') {
    header('Content-Type: '.$content_type);
    echo $data;
}

// 将请求转换为JSON格式的响应
$response_data = json_encode($request_params);
response($response_data);

Kod di atas terlebih dahulu menentukan kaedah permintaan Jika ia adalah permintaan POST, parameternya dihuraikan ke dalam Tatasusunan $_POST , jika ia adalah permintaan GET, parameternya dihuraikan ke dalam tatasusunan $_GET. Fungsi strtolower() terbina dalam PHP digunakan di sini untuk menukar kaedah permintaan kepada huruf kecil. Kemudian, dalam fungsi tindak balas, panggil fungsi pengepala untuk menetapkan jenis Kandungan tindak balas, dan kemudian gunakan gema untuk mengeluarkan $data. Dalam contoh ini, $data ialah rentetan JSON dan parameter permintaan ditukar kepada format JSON menggunakan fungsi json_encode(). Dengan merangkum output tindak balas ke dalam fungsi, ia boleh digunakan dengan lebih mudah dalam pengawal dan kaedah yang berbeza.

3. Operasi pangkalan data

Dalam aplikasi web, pangkalan data sering digunakan untuk penyimpanan data dan pertanyaan. Dalam rangka kerja peribadi PHP, anda boleh menggunakan PDO untuk melaksanakan operasi pangkalan data. Berikut ialah contoh penggunaan PDO untuk mendapatkan senarai semua pengguna dalam pangkalan data:

try {
    // 连接到本地数据库
    $pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
    // 设置错误报告
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 查询所有用户
    $stmt = $pdo->prepare('SELECT * FROM users');
    $stmt->execute();

    // 处理查询结果
    // fetch()方法用于取回当前行并向后移动指针
    // fetchAll()方法一次性将所有行取回并存储在一个数组中
    $users = $stmt->fetchAll();

    // 输出用户列表
    response(json_encode($users));
} catch (PDOException $e) {
    echo 'Database Error: '.$e->getMessage();
}

Dalam kod di atas, mula-mula gunakan PDO untuk menyambung ke pangkalan data, dan tetapkan mod ralat PDO kepada ERRMODE_EXCEPTION supaya PDO tidak normal. Kemudian, gunakan kaedah PDO::prepare() untuk menyediakan pernyataan pertanyaan, gunakan kaedah PDO::execute() untuk melaksanakan pertanyaan dan gunakan kaedah PDOStatement::fetchAll() untuk mendapatkan semula semua baris dalam set hasil. Akhirnya, set hasil ditukar kepada format dan output JSON. Dalam aplikasi sebenar, operasi PDO boleh dirangkumkan ke dalam fungsi atau kelas seperti yang diperlukan untuk memudahkan penggunaan semula dan pengurusan.

Ringkasnya, artikel ini memperkenalkan prinsip pelaksanaan asas rangka kerja peribadi PHP, termasuk penghalaan, permintaan dan respons serta operasi pangkalan data. Sudah tentu, ini hanyalah rangka kerja contoh mudah Dalam pembangunan rangka kerja sebenar, banyak butiran dan kesukaran teknikal perlu dipertimbangkan. Dalam proses membangunkan rangka kerja peribadi PHP, anda perlu sentiasa memahami dan mempelajari teknologi dan kaedah terkini untuk menjadikan rangka kerja itu lebih cekap dan praktikal.

Atas ialah kandungan terperinci Bagaimana untuk membina rangka kerja peribadi PHP yang sesuai untuk projek kecil atau peribadi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn