erdum / php-weekend
一组简单的最小函数集,提供您在无需设置时间的情况下构建API和Web应用的能力
v1.1.1
2023-11-07 12:09 UTC
Requires
- php: >=5.1
This package is auto-updated.
Last update: 2024-09-08 08:40:48 UTC
README
一组简单的最小函数集,提供您在无需设置时间的情况下构建API和Web应用的能力
目录
特性
- 使用动态路由的路由
- 模板化
- 访问请求数据的方法
- 发送json数据的方法
- 可定制
- 无设计限制,按您想要的任何方式构建API
- 零配置
安装
使用composer安装PHP-Weekend
composer require erdum/php-weekend
或者,在较旧的PHP版本上不使用composer安装,只需复制src目录,并require App.php和Router.php
<?php require(__DIR__ . '/src/App.php'); require(__DIR__ . '/src/Router.php'); use PhpWeekend\Router; use PhpWeekend\App; Router::get('/', function() { App::send_json(array('data' => 'Hello, World!')); }); Router::get('/simple', function() { App::send_response('This is the content.', 200, 'text/html'); }); Router::get('/get_pdf', function() { App::send_file(__DIR__ . '/static/my_file.pdf'); });
使用
安装包后,您的项目目录将有以下内容
ls
- composer.json
- composer.lock
- vendor
创建一个index.php文件
<?php require(__DIR__ . '/vendor/autoload.php'); use PhpWeekend\Router; use PhpWeekend\App; Router::get('/', function() { App::send_json(['data' => 'Hello, World!']); }); /* Router also have post put patch delete any */
您可以使用一个函数获取任何格式的请求数据
- 查询参数
- 表单数据
- multipart/form-data
- application/json
<?php require(__DIR__ . '/vendor/autoload.php'); use PhpWeekend\Router; use PhpWeekend\App; Router::post('/', function() { $request_payload = App::get_request(); App::send_json(['data' => $request_payload], 201); });
您还可以构建动态路由
<?php require(__DIR__ . '/vendor/autoload.php'); use PhpWeekend\Router; use PhpWeekend\App; Router::get('/user/$name', function($name) { App::send_json(['data' => $name]); });
您还可以使用模板,在项目根目录中创建一个名为templates的目录
mkdir templates
在您的模板目录内部,您可以构建模板,如home.php
<h1><?= $data ?></h1> <h2><?= $foo ?></h2> <?php if ($age > 18): ?> Hello <?php else: ?> whatsapp <?php endif; ?>
现在您可以从index文件中渲染home.php模板
<?php require(__DIR__ . '/vendor/autoload.php'); use PhpWeekend\Router; use PhpWeekend\App; Router::get('/', function() { App::send_template('home', [ 'data' => 'Hello, World!', 'foo' => 'bar', 'age' => 18 ]); });
App还提供了csrf功能
<form> <input type="name" name="user-name"> <input type="email" name="user-email"> <?= set_csrf() ?> </form>
现在在处理器中验证csrf令牌
<?php require(__DIR__ . '/vendor/autoload.php'); use PhpWeekend\Router; use PhpWeekend\App; Router::get('/', function() { if (App::is_csrf_valid()) { // CSRF token validated } });
反馈
如果您有任何反馈,请通过erdumadnan@gmail.com联系我们