slimmy/framework

此包已被废弃,不再维护。未建议替换包。

v0.0.10 2014-09-11 05:41 UTC

This package is auto-updated.

Last update: 2019-02-20 19:42:22 UTC


README

Slimmy (mini) Framework

slimmy-framework

基于 Slim 微型框架 的轻量级 (H)MVC 框架,结合 illuminate/database Laravel 的模型和 Twig 模板引擎 的视图。

这是以简单的 (H)MVC 架构创建 Slim 项目的便捷方式。

印尼语? 这里可以看到印尼语的 README

特性

  • 强大 的 Eloquent ORM 用于模型。
  • 美观 的 Twig 模板引擎用于视图。
  • 简单 的模块化系统。
  • 优秀 的 Laravel 验证器。

安装

首先,确保您的机器上已安装 composer,然后按照以下步骤操作

  • 打开终端或 cmd(在 Windows 中)

  • 转到您的项目基本目录(例如:XAMPP 中的 htdocs 或 WAMP 中的 www)

  • 运行以下 composer 命令

    composer create-project slimmy/framework yourprojectdirname --prefer-dist

安装完成后,在浏览器中打开 localhost/yourprojectdirname/public

基本指南

控制器

控制器是包含应用中一些动作/方法的类,这些动作/方法可以通过路由调用。控制器文件位于 app/controllers

例如,您想创建一些管理用户的动作

<?php
// app/controllers/UserController.php

class UserController extends BaseController {

    public function pageManageUsers() {
        // some statements to create page manage users
    }
    
    public function addUser()
    {
        // some statements to add new user
    }
    
}

您可以在路由文件中通过以下方式调用这些动作

// public/index.php

// call action UserController->pageManageUser 
// when user landing on [site]/index.php/user/manage
$app->get("/user/manage", "UserController:pageManageUsers");

// call action UserController->addUser 
// when user post something to [site]/index.php/user/add
$app->post("/user/add", "UserController:addUser");

模型

模型是设计用于简化与数据库中表格交互的 PHP 类。模型文件位于 app/models 目录。要使模型工作,您必须在 app/configs/database.php 文件上创建至少一个数据库连接。

例如,您的数据库中有一个 users 表,所以用户模型文件可能看起来像这样

<?php 
// app/models/User.php

use Illuminate\Database\Eloquent\Model;

class User extends Model {

    protected $table = 'users';

}

此框架使用 Eloquent Laravel 进行模型,因此您可以在此处阅读有关使用 Eloquent 的完整文档 此处

视图

视图基本上是包含 HTML、css 或 js 代码的文件,这些代码被渲染为网页。默认情况下,视图文件位于 app/views 目录。此框架使用 twig 作为视图,因此您应使用 .twig 作为扩展名。

在控制器中渲染视图

<?php
// app/controllers/UserController.php

// example rendering 'app/views/manage-users.twig' via controller
class UserController extends BaseController {

    public function pageManageUsers() {
        $data = array(
            // variables you want to creates in view
        );
        $this->app->render("manage-users.twig", $data);
    }

}

在路由中通过 Closure 渲染视图

// public/index.php

// example rendering 'app/views/manage-users.twig' via Route Closure
$app->get("/users/manage", function() use ($app) {
    $data = array(
        // variables you want to creates in view
    );
    $app->render("manage-users.twig", $data);

});

有关 twig 语法文档,您可以在 twig 官方网站上找到它 此处

与模块一起工作

模块基本上是一个包含自己的控制器模型视图文件的目录。当您想要与您的开发团队分配任务时,可以使用模块。例如,团队A专注于用户模块,团队B专注于帖子模块等。此外,它还可以简化将您的一部分slimmy应用程序迁移到另一个slimmy应用程序的过程。

默认情况下,模块位于app/modules

模块目录结构

基本上,模块结构可能看起来像这样

yourmodule
    |- controllers
    |   |- YourModuleController.php
    |
    |- models
    |   |- YourModuleModel.php
    |
    |- views
    |   |- your-module-view.twig
    |
    |- migrators
    |   |- YourModuleMigrator.php

从路由调用模块控制器操作/方法

// public/index.php

$app->get("/your-route", "@YourModuleName/YourModuleController:methodName");

渲染模块视图

渲染模块视图略有不同,因为模块中的视图有其自己的命名空间。因此,您应该以@[ModuleName]/[viewpath/viewname.twig]的格式调用这些视图。

例如,如果您想在User模块中渲染form-edit-user.twig

$this->app->render("@User/form-edit-user.twig", $data);

更多来自官方文档