hongyukeji / plugin-theme
一个有观点的主题系统,其中甚至视图都可以是类,一切都可以作为插件。
Requires
- php: >=5.3.0
- hongyukeji/plugin-package: ^1.1
This package is auto-updated.
Last update: 2024-09-08 16:45:58 UTC
README
一个滥用面向对象编程(OOP)来为您提供一直梦寐以求的功能的主题系统。
要使此功能正常工作,您需要 PHP 5.4。您可以通过 Composer 和 Packagist 来安装它。
多么混乱!
Hongyukeji\PluginTheme 在 Hongyukeji\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关联的值。即使使用
null
,fallback也会通过func_num_args()激活,因此它仍然可以工作。抛出: \OutOfBoundsException - 如果未设置值且没有可用的fallback
-
$pm->setParam($key, $value)
- string $key - 值的键
- mixed $value - 值
设置参数
-
$pm->setParams($array)
- array $array - 要设置的参数数组
接受一个数组并将每个参数插入其中。不会删除以前的参数。
视图
Builder返回的视图通常是扩展\Hongyukeji\PluginTheme\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。
链式调用