jakobjohansson / kiwi
一个简洁轻量级的PHP博客框架
Requires
- php: ^7.0
This package is not auto-updated.
Last update: 2024-09-25 02:52:46 UTC
README
kiwi是一个简洁轻量级的PHP博客框架。
文档
Kiwi可以通过Composer安装
composer create-project jakobjohansson/kiwi
配置
包内包含一个.env.example
文件,应将其重命名为.env
并从版本控制中排除。这是一个简单的环境文件,包含数据库设置、用户设置以及其他通用应用设置字段。没有这个文件,Kiwi将无法运行。
完成此操作后,您应前往/migrate路由来迁移默认的SQL表。
路由
可以在app/routes.php
文件中设置自定义路由,将路由指向控制器和目标方法
<?php /* * Routes file. * You can create your own custom routes in here, at the end of this file. */ $router->get('', 'PageController/index'); $router->get('post/{id}', 'PageController/show');
控制器
所有控制器位于app/Controllers
目录中。以下是一个包含以下方法的示例控制器:
<?php /** * Render the main page. * * @return void */ public function index() { View::render('index', ['posts' => Post::all()]); } /** * Render a specific post page. * * @param Post $post * * @return void */ public function show(Post $post) { if (!$post) { throw new HttpException("That post doesn't exist."); } View::render('post', ['post' => $post]); }
注意show方法中的类型提示Post参数。当你在路由中提供通配符时,它将自动注入!
中间件
您可以通过在控制器中创建一个middleware()
方法来应用自定义中间件。它将在指向控制器的每个请求上运行。
视图
如上例所示,可以通过在控制器方法中使用View::render($viewpath, $arrayOfData)
来请求视图。视图路径相对于app/Views
文件夹,并在末尾添加一个后缀.view.php
,这意味着你只需输入文件名即可。
模板
Kiwi支持类似于Laravel Blade的模板。
<div class="content"> @foreach ($posts as $post) <h3 class="subtitle is-4"> <a href="/post/{{$post->id}}"> {{$post->title}} </a> </h3> <div class="content"> {{nl2br($post->body)}} </div> <footer> <small>Written {{$post->created_at}}.</small> </footer> @endforeach </div>
撰写本文时,以下指令受到支持
- if / elseif / else语句
- echo表达式
- foreach循环
- 包含
验证
使用kiwi进行验证相对简单。只需使用Input
类访问表单字段,该类以字段名作为第一个参数,以规则数组作为第二个参数。
<?php $post->title = Input::field( 'title', [ 'required' => 'The title is required.', 'min:3' => 'The title needs to be atleast 3 characters long.', ] ); $post->save();
支持的规则可以在Rule
类中找到。撰写本文时,以下规则受到支持:
- min
- max
- required
- url
- digits
- alpha
如果验证失败,kiwi将带有一个包含所有必要数据的$errors
变量重定向回,用于显示信息性错误消息!
许可证
Kiwi是MIT许可证,这意味着您可以自由地修改代码并按您的方式使用它。