大锤/mvc

Sledgehammer MVC模块:提供模型视图控制器架构

18.08.0 2018-07-27 15:25 UTC

This package is auto-updated.

Last update: 2024-08-27 14:32:13 UTC


README

MVC即模型视图控制器

模型

这些是您自己编写的类。如果您需要数据库持久化模型,请查看Sledgehammer ORM模块。

视图

"视图"是由组件组成的。

每个组件都有一个"render"函数,它将输出直接发送到浏览器(回声),并且没有返回值。

Component->getHeaders()

组件有一个可选的getHeaders()函数,它在render()之前调用,并将信息传递给组件层次结构中更高的组件。这可以添加"HTTP头部",追加样式表和其他必须注入到<head>的配置。

'http' 这是一个与header()一起发送的数组。'meta' 这是一个作为标签添加到中的数组。'css' 这是一个作为添加到中的url数组。'link' 这是一个作为添加到中的标签数组。'title' 这是设置到中的<title>

控制器

Sledgehammer没有路由类,所有请求都由Website的子类处理,但通过使用Folder类实现模块化。

映射示例

"/about.html" URL映射到MyWebsite->about()。如果没有找到公开的about方法,则调用file()方法。默认情况下,file()返回一个渲染404错误的组件。

"/blog/author.html"映射到MyWebsite->blog_folder()。如果没有找到公开的blog方法,则调用folder()方法。

blog_folder()可以直接返回一个组件,也可以创建一个Folder对象来处理"blog/"文件夹内的所有请求。URL中的"author.html"部分映射到MyBlogFolder->author()。如果没有找到公开的about方法,则调用MyBlogFolder上的file()方法。

范围

网站

处理请求的全过程。

发送到浏览器 保存到磁盘

HtmlDocument

处理getHeaders()的值,在doctype模板中。

安装

将mvc文件夹放置在与Sledgehammer核心文件夹相同的文件夹中。

要为MVC项目生成脚手架,请运行

php sledgehammer/utils/empty_project.php

Twitter Bootstrap

约束了来自http://twitter.github.com/bootstrap/的所有css和javascript,并添加了Sledgehammer\View类。

$pagination = new Pagination(5, 1);

变为

<div class="pagination">
	<ul>
		<li class="disabled"><a href="#">«</a></li>
		<li class="active"><a href="?page=1">1</a></li>
		<li><a href="?page=2">2</a></li>
		<li><a href="?page=3">3</a></li>
		<li><a href="?page=4">4</a></li>
		<li><a href="?page=5">»</a></li>
	</ul>
<div>