This document is for CakePHP's development version, which can be significantly different
from previous releases.
You may want to read
current stable release documentation instead.
Temas no CakePHP são simplesmente plugins que focam em prover arquivos de template.
Veja a seção em Criando seus próprios complementos.
Você pode tirar vantagem de temas, deixando fácil a troca da aparência da dua página rapidamente.
Além de arquivos de templates, eles também podem provers helpers e “cells”
se o seu tema assim requerer. Quando usado cells
e helpes
no seu tema,
você precisará continuar usando a sintaxe plugin.
Para usar temas, defina o tema na action do seu controller ou no método
beforeRender()
:
class ExamplesController extends AppController
{
// Para o CakePHP antes da versão 3.1
public $theme = 'Modern';
public function beforeRender(\Cake\Event\Event $event)
{
$this->viewBuilder()->setTheme('Modern');
// Para o cakePHP antes da versão 3.5
$this->viewBuilder()->theme('Modern');
}
}
Os arquivos de tempalte do tema precisam estar dentro de um plugin com o mesmo nome. Por exemplo, o tema acima seria encontrado em plugins/Modern/src/Template. É importante lembrar que o CakePHP espera o nome do plugin/tema em PascalCase. Além de que, a estrutura da pasta dentro da pasta plugins/Modern/src/Template é exatamente o mesmo que templates/.
Por exemplo, o arquivo de exibição para uma action de edição de um controller
de posts residiria
em plugins/Modern/templates/Posts/edit.php. Os arquivos de layout residiriam em
plugins/Modern/templates/layout/. Você pode fornecer modelos personalizados
para plugins com um tema também. Se você tiver um plugin chamado “Cms”, que
contenha um TagsController
, o tema moderno poderia fornecer
plugins/Modern/templates/plugin/Cms/Tags/edit.php para substituir o template
da edição no plugin.
Se um arquivo de exibição não puder ser encontrado no tema, o CakePHP tentará localizar a visualização arquivo na pasta templates/. Desta forma, você pode criar arquivos de template mestre e simplesmente substituí-los caso a caso na pasta do seu tema.
Como os temas são plugins CakePHP padrão, eles podem incluir qualquer asset
necessário em seu diretório webroot. Isso permite uma fácil embalagem e
distribuição de temas. Enquanto estiver em desenvolvimento, requisições de assets
do tema serão
manipuladas por: php:class:\Cake\Routing\Dispatcher. Para melhorar o desempenho
para ambientes de produção, é recomendável que você Aprimorar a performance de sua aplicação.
Todos os ajudantes internos do CakePHP estão cientes de temas e criará o Corrija os caminhos automaticamente. Como arquivos de template, se um arquivo não estiver na pasta do tema, será padrão para a pasta webroot principal:
// Em um tema com o nome 'purple_cupcake'
$this->Html->css('main.css');
// crie os diretórios como
/purple_cupcake/css/main.css
// e crie o link como
plugins/PurpleCupcake/webroot/css/main.css