moehakram / webphp-oop
一个优雅的PHP框架,利用面向对象(OOP)原则简化开发。
dev-main
2024-08-19 15:18 UTC
Requires
- php: ^8.1
- moehakram/phpquick: dev-main
Requires (Dev)
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2024-09-19 15:27:33 UTC
README
关于本项目
此框架是针对原生PHP项目的简单解决方案,它集成了面向对象编程(OOP)原则。它旨在通过提供简化路由管理的工具来促进PHP应用程序的开发。
入门
要开始使用此框架,请按照以下步骤操作
- 将此存储库克隆到您的本地目录中。
- 运行
composer install
以安装必要的依赖。
用法
配置
数据库配置位于 /config/config.php
。
要启动本地服务器,请使用以下命令
composer serve
路由模式
路由配置位于 /config/routes.php
。
// Example: `https://:8080/users/123` $router->get('/users/:id', function($id, Request $req) { return "User ID: " . $id; // Output: User ID: 123 }); // Example: `https://:8080/users/asd123` $router->get('/users/:id', function($id, Request $req) { return "User ID: " . $id; // Output: User ID: asd123 }); // Example: `https://:8080/search/name_group/123` $router->get('/search/:group/:id', function($group, $id, Request $req) { return "Group / ID: " . $group . '/' . $id; // Output: Group / ID: name_group/123 });
回调格式
该框架接受各种回调格式
-
数组回调
回调应为一个包含两个元素的数组:控制器类名和方法名。
$router->get('/array', [HomeController::class, 'index']);
-
字符串回调
回调应为一个格式为
'Controller@method'
的字符串,其中Controller
是控制器类名,method
是方法名。$router->get('/string', 'HomeController@index');
-
可调用回调
回调应为一个可调用对象,例如闭包、匿名函数或任何定义为可调用的函数。
$router->get('/anonymous-function', function() { return "Hello World"; }); $router->get('/arrow-function', fn() => "Hello World");
摘要
- 数组:
[ControllerClass::class, 'methodName']
- 字符串:
'Controller@method'
- 可调用:
function(Request $req) { ... }
或fn(Request $req) => ...
实现中间件
您可以通过将中间件作为额外参数传递给 get
方法将中间件添加到路由中。
// Middleware example class AuthMiddleware implements Middleware { public function execute(Request $request, callable $next) { // Authentication logic if (!$request->user) { return redirect('/login'); } return $next($request); } } // Applying middleware to a route //$router->get(string $path, $callback, ...$middlewares): void $router->get('/dashboard', 'DashboardController@index', AuthMiddleware::class);