CakePHP - Exibir Elementos
Certas partes das páginas da web são repetidas em várias páginas da web, mas em locais diferentes. O CakePHP pode nos ajudar a reutilizar essas partes repetidas. Essas peças reutilizáveis são chamadasElements - help box, extra menu, etc. Um elemento é basicamente um mini-view. Também podemos passar variáveis em elementos.
Cake\View\View::element(string $elementPath, array $data, array $options =[]
Existem três argumentos para a função acima, como segue -
O primeiro argumento é o nome do arquivo de modelo no /src/Template/element/ pasta.
O segundo argumento é a matriz de dados a serem disponibilizados para a visualização renderizada.
O terceiro argumento é para a matriz de opções. por exemplo, cache.
Dos 3 argumentos, o primeiro é obrigatório, enquanto os restantes são opcionais.
Exemplo
Crie um arquivo de elemento em src/Template/element diretório chamado helloworld.php. Copie o código a seguir nesse arquivo.
src / Template / element / helloworld.php
<p>Hello World</p>
Crie uma pasta Elems em src/Template e sob esse diretório crie um Viewarquivo chamado index.php. Copie o código a seguir nesse arquivo.
src / Template / Elems / index.php
Element Example: <?php echo $this->element('helloworld'); ?>
Faça alterações no config/routes.php arquivo conforme mostrado no programa a seguir.
config / routes.php
<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
$builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
'httpOnly' => true,
]));
$builder->applyMiddleware('csrf');
$builder->connect('/element-example',['controller'=>'Elems','action'=>'index']);
$builder->fallbacks();
});
Criar um ElemsController.php arquivo em src/Controller/ElemsController.php. Copie o seguinte código no arquivo do controlador.
src / Controller / ElemsController.php
<?php
namespace App\Controller;
use App\Controller\AppController;
class ElemsController extends AppController{
public function index(){
}
}
?>
Execute o exemplo acima visitando a seguinte URL http: // localhost / cakephp4 / element-example
Resultado
Após a execução, o URL acima fornecerá a seguinte saída.