hongyukeji/plugin-theme

一个有观点的主题系统,其中甚至视图都可以是类,一切都可以作为插件。

v1.3.0 2019-10-08 04:42 UTC

This package is auto-updated.

Last update: 2024-09-08 16:45:58 UTC


README

一个滥用面向对象编程(OOP)来为您提供一直梦寐以求的功能的主题系统。

要使此功能正常工作,您需要 PHP 5.4。您可以通过 ComposerPackagist 来安装它。

多么混乱!

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()

    返回视图的类型,可以是layoutpartial

  • $view->getView()

    返回视图的名称。

  • $view->getParamManager()

    返回本地参数管理器。

  • $view->build()

    构建并缓存HTML。返回HTML。

  • $view->doBuild()

    构建HTML并将其存储在变量中。每次调用时都会重新构建HTML。

    链式调用