slimmy / framework
Requires
- php: >=5.3.10
- illuminate/validation: 4.1.*
- itsgoingd/slim-facades: 1.0
- rakit/slimmy: 0.*
This package is auto-updated.
Last update: 2019-02-20 19:42:22 UTC
README
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);