一个简洁轻量级的PHP博客框架

v0.0.6 2017-09-28 20:00 UTC

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
  • email
  • url
  • digits
  • alpha

如果验证失败,kiwi将带有一个包含所有必要数据的$errors变量重定向回,用于显示信息性错误消息!

许可证

Kiwi是MIT许可证,这意味着您可以自由地修改代码并按您的方式使用它。