scandio/lmvc

该软件包已被废弃且不再维护。未建议替代软件包。

LMVC 是一个易于使用且可扩展的 PHP (5.4) MVC 框架

0.4.3 2013-10-27 10:41 UTC

README

精益模型视图控制器

此项目包含一个使用简单 PHP 类编写的非常小的 MVC 框架。它不适用于生产使用,而是用于学习目的。它是在以下边界条件下开发的:

  • 仅 PHP - 没有外部 PHP 库
  • 约定优于配置
  • 没有注解或其他类似的东西
  • PSR-0 标准

目前没有关于任何内容的文档。

如何使用

如果您想尝试它,必须更改 .htaccess 文件

RewriteRule ^(.*)$ /path/to/your/index.php?app-slug=$1 [L,QSA]

控制器和操作

http:://host/base-path/controller/action/param1/param2

上面的 URL 显示了控制器 & 操作及其参数

http:://host/base-path/

是一个特殊的控制器和一个特殊的操作。在这种情况下,控制器名为 Application,操作为 index()

http:://host/base_path/xyz

这里控制器是 Xyz,操作是 index()

http:://host/base_path/xyz/do

再次,控制器是 Xyz,操作是 do()

要开发自己的控制器,请创建与控制器目录中类同名的一个文件

e.g. Accounts.php

创建一个继承自 Controller 类的类

class Accounts extends \Scandio\lmvc\framework\Controller { }

创建一个名为您想调用的操作的公共静态方法

class Accounts extends \Scandio\lmvc\framework\Controller {

    public static function index() {
        print_r('ok');
    }

}

尝试调用

http://host/base-path/accounts/

渲染视图

目前 LMVC 支持两种渲染选项。首先,标准的 HTML 渲染。其次,JSON 输出。Controller 类有两个静态方法用于此。所有需要传递到模板或 JSON 的数据都必须通过 setRenderArg() 设置。

HTML 渲染示例

class Accounts extends Controller {

    public static function index() {
        return self::render()
    }

}

此渲染已注册的视图 (模板) controller/action.html。在这种情况下 views/accounts/index.html。要将一些数据传递到模板,您可以...

class Accounts extends \Scandio\lmvc\framework\Controller {

    public static function index() {
        self::setRenderArg('name', 'John Doe');
        return self::render()
    }

}

class Accounts extends Controller {

    public static function index() {
        self::render(array('name' => 'John Doe'));
    }

}

或两者。没有特定的模板语言。它只是 PHP。每个渲染参数都可以作为局部变量访问。

<h1>Hello <?= $name ?></h1>

JSON 渲染示例

class Accounts extends \Scandio\lmvc\framework\Controller {

    public static function index() {
        self::renderJson(array('name' => 'John Doe'));
    }

}

输出如下

{"name": "John Doe"}