fhooe / router-skeleton
一个示例应用程序或框架,用于入门fhooe/router。
Requires
- php: ^8.3
- fhooe/router: ^1.0
- fhooe/twig-extensions: ^1.0
- monolog/monolog: ^3.7
- twig/twig: ^3.14
Requires (Dev)
- phpstan/phpstan: ^1.12
README
一个示例应用程序,也称为入门框架fhooe/router:为媒体技术与设计课程开发的简单面向对象的奥地利应用科学大学。此框架及其背后的库主要用于教育目的(学习路由和面向对象原则)。请在自己的风险下使用它。
创建 fhooe/router 应用程序
使用Composer创建包含框架文件的全新项目
composer create-project fhooe/fhooe-router-skeleton path/to/install
Composer将在指定的path/to/install
目录中创建项目。
基本用法
路由调用发生在public/index.php
。此前端控制器文件接收所有请求,因为相关的.htaccess
文件将一切重定向到它。
fhooe/router可以用两种方式使用
使用Router
对象(推荐)
-
实例化
Router
类。$router = new Router();
-
使用
get()
和post()
方法定义路由。提供一个URI模式进行匹配,并在模式和协议匹配时执行回调。$router->get("/", function() { // e.g., load a view });
-
设置404回调以加载视图或在没有路由匹配时触发行为。
$router->set404Callback(function() { // e.g., load a 404 view });
-
可选:如果您的应用程序不在服务器文档根目录中,则定义基本路径。
$router->setBasePath("/path/to/your/files");
-
运行路由器。这将获取当前URI,将其与定义的路由匹配,如果找到匹配项则执行它们。
$router->run();
使用静态路由方法Router::getRoute()
-
调用静态方法。如果您的项目不在服务器文档根目录中,请提供基本路径作为参数。该方法以
PROTOCOL /pattern
的形式返回路由字符串,例如,当对根目录发起GET请求时,返回GET /
。$route = Router::getRoute("/path/to/your/files");
-
使用条件表达式来决定对匹配的路由做什么。
switch($route) { case "GET /": // e.g., load a view break; default: // e.g., load the 404 view break; }
显示输出
简单的HTML和PHP格式的视图文件位于views
目录中,以及Twig示例,以便输出更清晰。
已添加三个Twig扩展。
RouterExtension
为模板提供url_for()
和get_base_path()
函数,用于生成URL和从Router
对象获取基本路径。SessionExtension
提供session(key)
函数,用于检索$_SESSION
超全局中的条目。DebugExtension
提供dump()
函数,用于在模板中转储变量(类似于var_dump()
)。
浏览应用程序
要快速查看,您可以使用PHP内置的Web服务器
cd path/to/install
composer start
在浏览器中导航到https://:8888/以查看应用程序的实际操作。
贡献
如果您想做出贡献,请参阅CONTRIBUTING以获取详细信息。
许可证
fhooe/router-skeleton 使用MIT许可证授权。更多信息请参阅LICENSE。