foolz/theme

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

dev-master 2015-01-22 01:40 UTC

This package is auto-updated.

Last update: 2024-09-21 06:13:05 UTC


README

一个利用面向对象编程(OOP)来实现你一直梦寐以求的功能的主题系统。

你需要PHP 5.4才能使用此系统。您可以通过 ComposerPackagist 来安装。

多么混乱!

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

    返回视图类型,可以是 layoutpartial

  • $view->getView()

    返回视图的名称。

  • $view->getParamManager()

    返回本地参数管理器。

  • $view->build()

    构建并缓存 HTML。返回 HTML。

  • $view->doBuild()

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

    链式操作