foolz / theme
一个有观点的主题系统,甚至视图也可以是类,一切都可以是插件。
Requires
- php: >=5.3.0
- foolz/package: dev-master
Requires (Dev)
- foolz/cache: dev-master
This package is auto-updated.
Last update: 2024-09-21 06:13:05 UTC
README
一个利用面向对象编程(OOP)来实现你一直梦寐以求的功能的主题系统。
你需要PHP 5.4才能使用此系统。您可以通过 Composer 和 Packagist 来安装。
多么混乱!
Foolz\Theme 在Foolz\Plugin之上工作。这意味着它具有对插件式功能的内置支持,您可以根据需要使用或忽略。我们使用它来允许重新设计界面和链接钩子。
我们创建了自有的主题系统,因为其他主题系统不过是一些视图管理器,庞大且原始。
本软件包旨在使用多层次方法来处理主题,您可以在系统中上下移动并最后直接与主题交互来构建组件。结构如下
- 加载器
- 主题
- 构建器 -> 全局参数管理器
- 视图 -> 本地参数管理器
从视图可以向上冒泡到加载器,获取全局参数,进入其他部分,并在视图中构建它们。
其他功能
- 子主题:您不必复制整个主题目录,可以扩展另一个主题并回退到其文件。您还可以无限扩展扩展主题。
- 资产管理器:动态编译LESS文件。
类
主题
主题对象抽象了主题的内容。这些将由加载器返回,您可以选择使用哪个。
-
$theme->createBuilder()
返回一个新的构建器。它用于创建HTML。
-
$theme->getAssetManager()
返回资产管理器。它用于加载和编辑用户将下载的包的内容,如样式表和图像。
构建器
构建器用于创建HTML。它将工作分为布局和部分,并提供全局参数管理器。
-
$builder->getTheme()
返回生成此构建器对象的主题。
-
$builder->getParamManager()
返回用于保存视图参数的参数管理器。
-
$builder->createLayout($view)
- string $view - 带下划线的布局名称
设置布局并返回视图对象。
-
$builder->createPartial($name, $view)
- string $name - 部分的给定名称
- string $view - 带下划线的布局名称
设置具有给定 $name 的部分,并返回视图对象。
-
$builder->getLayout()
返回当前设置的布局。
-
$builder->getPartial($name)
- string $name - 部分的给定名称
返回给定名称的部分。
-
$builder->build()
使用给定参数构建整个HTML。
参数管理器
参数管理器用于一致地存储主题中使用的变量。构建器有一个全局的,每个视图都有一个本地的。
-
$pm->reset()
将对象重置到其原始状态。
-
$pm->getParams()
返回参数数组。
-
$pm->getParam($key, $fallback = undefined)
- string $key - 值的键
- mixed $fallback
返回存储与 $key 的值。回退通过 func_num_args() 激活,因此即使在使用
null
时也能正常工作。抛出: \OutOfBoundsException - 如果未设置值且没有回退可用
-
$pm->setParam($key, $value)
- string $key - 值的键
- mixed $value - 值
设置参数
-
$pm->setParams($array)
- 数组 $array - 要设置的参数数组
接收一个数组,插入每个参数。不会删除之前的参数。
视图
Builder 返回的视图通常是一个扩展 \Foolz\Theme\View 的自定义对象。
还有一系列快捷方式可以跳转到上述级别(getBuilder, getBuilderParamManager, getTheme, getAssetManager)
必须重写 toString()
方法(不是 __toString()
魔法方法)以输出 HTML。此函数应输出 HTML 或返回一个字符串。
-
$view->toString()
当需要生成 HTML 时被调用。它应包含经典的 HTML 构建逻辑。可以使用
$this
。不需要手动输出缓冲。 -
$view->getType()
返回视图类型,可以是
layout
或partial
。 -
$view->getView()
返回视图的名称。
-
$view->getParamManager()
返回本地参数管理器。
-
$view->build()
构建并缓存 HTML。返回 HTML。
-
$view->doBuild()
构建 HTML 并将其存储在一个变量中。每次调用都会重新构建 HTML。
链式操作