主题

    要使用主题,在控制器中指定主题名称:

    在 2.1 版更改: 2.1 之前的版本需要设置 。2.1 版本不再需要,因为View 类支持主题。

    你也可以在动作中或者在 beforeFilterbeforeRender 回调函数中设置或改变主题名称:

    主题视图文件需要放在 /app/View/Themed/ 目录中。在 Themed 目录内,使用主题名称作为名字创建目录。例如,上面代码中的主题可以在目录 中找到。

    重要的是请记住,CakePHP 接受驼峰命名的主题名称。

    除此之外,/app/View/Themed/Example/ 目录内的目录结构和 /app/View/ 是完全一样的。

    例如,Posts 控制器的 edit 动作的视图文件是/app/View/Themed/Example/Posts/edit.ctp ,布局文件则位于/app/View/Themed/Example/Layouts/ 目录内。

    如果一个视图文件不能在主题中找到,CakePHP 会在目录 中寻找。这样,你就可以创建主视图文件,然后简单地在主题目录中根据需要重写单个视图文件进行覆盖。

    为了使用新主题的 webroot,在主题中创建下面这样的目录:

    Dispatcher 将会负责在视图路径中寻找正确的主题资源。

    所有 CakePHP 内置的助件能够识别主题并会自动创建正确的路径。如同视图文件,如果一个文件不在主题目录中,它会默认为主 webroot 目录:

    提升插件和主题资源的性能

    众所周知,通过 PHP 来提供资源肯定要慢于不用 PHP 来提供这些资源。尽管核心团队采取了措施让提供插件和主题的速度尽可能快,但是可能有些情况下对性能有更高的要求。在这种情况下,建议要么使用符号链接(symlink),要么将插件/主题资源复制到app/webroot 下与 CakePHP 使用的路径匹配的目录中。