sekidenkiku / file-router
简单的PHP路由类。
Requires (Dev)
- phpunit/phpunit: ^8
This package is not auto-updated.
Last update: 2024-09-23 09:29:16 UTC
README
提供简单的URL分发功能。仅限于文件名的分发,无法通过GET、POST或URL查询进行分发。
特点
・可以自由指定页面的URL。
・可以将共通处理集中在index.php中。
・适用于小型网站。不适用于使用数据库的网站。
使用方法
1.请将.htaccess文件放置在网站的路径目录下。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
</IfModule>
2.请加载并执行类文件。
require_once('sekidenkiku/FileRouter.php'); $file_router = new FileRouter(); $file_router->setFilePath('template') $file_router->addRoute('/', 'index.php'); $file_router->addRoute('/services', 'services.php'); $file_router->addRoute('/company', 'company.php'); $file_router->addRoute('/contact', 'contact.php'); $file_router->run();
如果通过composer安装,则无需require_once('sekidenkiku/FileRouter.php')。相反,请加载autoload.php。
require_once('vendor/autoload.php'); $file_router = new FileRouter();
安装方法
・直接读取文件时,请下载文件并使用require_once进行读取。
require_once('sekidenkiku/FileRouter.php');
・使用composer安装。
$ composer require sekidenkiku/file-router
许可证
MIT许可证
函数参考
FileRouter类
setSiteDir($dir)
设置网站的目录。路由信息的URL路径的基本目录。
默认值是'/'。开头和结尾的斜杠可以省略。不能为空字符串。
@param string $dir 目录名
@return void
将'/sub'设置为网站目录时,addRoute('/example', 'index.php')将匹配URL路径'/sub/example'。
getSiteDir()
返回网站的目录。
@param void @return string 网站的目录名。
setFilesDir($dir)
设置执行文件的目录。路由信息的执行文件安装目录。
默认值是'files'。
开头和结尾的斜杠可以省略。不能为空字符串。
@param string $dir 执行文件的目录。
@return void
默认情况下,路由目录下创建的files目录将作为执行文件目录。
请将执行文件放置在执行文件目录内。路由目录
├ .htaccess
├ index.php
├ files目录
│ ├ 执行文件
・ ・
・ ・
getFilesDir()
返回执行文件的目录。
@param void
@return string 执行文件的目录。
addRoute($url, $file)
添加路由信息。
@param string $url 页面URL。开头的前斜杠可以省略。不能为空字符串。
@param string $file 执行文件名。为执行文件目录内的相对路径。开头的前斜杠可以省略。不能为空字符串。
@return void
getRoutes()
返回所有路由信息。
@param void
@return array 路由信息。
run($exit = true)
包含与路由信息匹配的执行文件。如果不匹配,则执行notFoundPage404函数。
@param bool $exit 如果为true,则在文件读取后结束处理。如果为false,则不结束。
@return void
getRoute($url)
返回与URL路径匹配的路由目标文件名。
@param string $url URL路径。
@return string 路由目标文件名。如果不存在,则返回空字符串。
addVar($name, $value)
添加可以在执行文件作用域中使用的值(执行文件引用值)。
@param string $name 键名。
@param mixed $value 值。
@return void
getVar($name)
获取执行文件引用值。
@param string $name 键名。
@return mixed|null 值。如果找不到键名,则返回null。
[静态函数]
FileRouter::getUrlPath()
从当前URL返回除主机名或查询字符串之外的路径部分。
@param void
@return string URL的路径名。
FileRouter::notFoundPage404($exit = true)
输出404 Not Found页面。
@param bool $exit 如果为true,则在页面显示后结束处理。如果为false,则不结束。
@return void
关于执行文件内的变量作用域
由于作用域不同,在index.php上定义的变量在执行文件内无法引用。
如果要引用,请通过getVar函数传递变量。可以在执行文件的$FileRoute->getVar函数中获取。
执行文件内变量
$FileRouter
说明:FileRouter类的子类实例。继承FileRouter类的属性。
执行文件内函数
在执行文件内可用的函数。可以作为$FileRouter的成员方法使用。
$FileRoute->getSiteDir()
返回设置的网站目录。 @param void
@return string 目录名
$FileRoute->getFilesDir()
返回执行文件的目录。
@param void
@return string 执行文件的目录。
$FileRoute->getRoutes()
返回所有路由信息。
@param void
@return array 路由信息。
$FileRoute->getRoute($url)
返回与URL路径匹配的路由目标文件名。
@param string $url URL。
@return string 路由目标文件名。如果不存在,则返回空字符串。
$FileRoute->getVar($name)
获取执行文件引用值。
@param string $name 键名。
@return mixed|null 值。如果指定了不存在的名称,则返回null。