2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個贊
通常的工作方式是使用每個請求都會經(jīng)過的一個引導(dǎo)文件。這通常還需要將路由移至 PHP 代碼中;即,您通常不會example.com/foo/bar.php簡單地調(diào)用 file foo/bar.php,而是使用漂亮的 URL(例如 )example.com/foo/bar,然后在 PHP 代碼中找出foo/bar確切的含義以及它應(yīng)該執(zhí)行的操作(盡管這是相當(dāng)可選的,由您決定)。
首先,您設(shè)置一個.htacess這樣的文件,或者在您的 Web 服務(wù)器配置文件中添加等效的配置:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ bootstrap.php
這會導(dǎo)致您的 Web 服務(wù)器調(diào)用bootstrap.php其文件實(shí)際上不存在的任何和所有請求(即css/style.css仍按原樣提供服務(wù),但foo/bar不是實(shí)際文件,而是會調(diào)用bootstrap.php)。
然后,bootstrap.php您需要require所有必要的文件,例如自動加載器,也許還有配置文件,然后運(yùn)行您想要的任何類、函數(shù)或文件:
<?php
require_once 'classes/autoload.php';
$request = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
require "$request.php";
上面是獲取請求的 URI(例如/foo/bar)并將其用于requirePHP 文件的簡單示例。這是非常幼稚的并且有潛在危險,因此您需要在實(shí)際使用中進(jìn)行一些更多的自定義處理。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個贊
您可以創(chuàng)建一個需要您要使用的所有其他文件的文件,包括自動加載:
<?php
require_once('classes/autoload.php');
require_once('file1.php');
require_once('file2.php');
...
然后您就不需要要求自動加載,因?yàn)槲募呀?jīng)附加在它后面。
- 2 回答
- 0 關(guān)注
- 142 瀏覽
添加回答
舉報