scandio / lmvc
该软件包已被废弃且不再维护。未建议替代软件包。
LMVC 是一个易于使用且可扩展的 PHP (5.4) MVC 框架
0.4.3
2013-10-27 10:41 UTC
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2021-09-06 06:07: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"}