webdernargor/ratricat

PHP MVC 开发模板

1.0.6 2024-09-26 17:13 UTC

This package is auto-updated.

Last update: 2024-09-27 13:22:29 UTC


README

Material Bread logo

Ratricat 是一个用 PHP 语言编写的轻量级框架。它使用 MVC+路由架构。模型、控制器、视图和路由连接到 mysql pdo 数据库。

如何安装

  • 安装 composer
  • 安装 PHP 和 MySql,建议使用 Xampp
  • 安装 Ratricat 项目
    composer create-project webdernargor/ratricat <project-name>

文档

文档正在准备中,将很快提供。

基本用法

  • 在 routes 文件夹中创建 .php 路由文件
<?php
addRoute('get',  '/profile',  'profile',  'App\Controllers\HomeController@index');
or
addRoute('get',  '/',  'home',  function(){
echo "home page";
});
  • 在 middlewares 文件夹中创建 .php 中间件文件
<?php
namespace App\Middlewares;

class LoginMiddleware
{
    public function handle()
    {
        if(!isset($_SESSION['user'])){
            header('Location: /login');
            exit;
        }
    }
}

在路由中使用中间件

<?php
addRouteMiddleware('get','/profile','App\Middlewares\LoginMiddleware@handle');
or
addRouteMiddleware('get','/profile',  function(){
echo "home page";
});
  • 在 app/Controllers/.php 中创建控制器 php 文件
<?php

namespace App\Controllers;

use App\Models\User;

class HomeController
{
    protected $user;

    public function __construct()
    {
        global $app;
        $this->user = new User($app->db);
    }

    public function index()
    {
        $users = $this->user->all();
        return VIEW('home', ['users' => $users]);
    }
}
  • 在 app/Models/.php 中创建模型 php 文件
<?php

namespace App\Models;
use PDO;

class User
{
    protected $pdo;

    public function __construct($pdo)
    {
        $this->pdo = $pdo;
    }

    public function all()
    {
        $stmt = $this->pdo->query("SELECT * FROM users");
        return $stmt->fetchAll(PDO::FETCH_OBJ);
    }
}
  • 在 app/Views/.blade.php 中创建 blade.php 视图文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    User list
    <ul>
        @foreach($users as $user)
        <li>{{ $user->name }}</li>
        @endforeach
    </ul>
</body>
</html>

有关如何使用 blade 引擎的更多信息,请参阅:点击

作者