Fala galera, tudo tranquilo?!
Recentemente um amigo me questionou como ele poderia criar breadcrumbs no Zend Framework, e com base nessa conversa vou demonstra o quão simples é este processo.
Para quem nunca se deparou com este termo, breadcrumb é um padrão implementado pela Yahoo para indicar ao usuário onde ele se encontra no site, como podemos observar na imagem abaixo.
Após essa breve e rápida introdução, SHOW ME THE CODE!!!
Vamos utilizar o skeleton default do Zend Framework, basta acessar pelo terminal onde deseja criar o projeto e executar o seguinte comando:
|
|
Caso o Composer esteja instalado de forma global em sua máquina.
|
|
Se você estiver utilizando o ZF3 como eu, devemos instalar o componente navegation e para isso basta executar o seguinte comando:
|
|
Após o processo de instalação finalizar, vamos acessar o arquivo global.php (config/autoload/global.php). Vamos implementar nossa estrutura, nosso array será associativo.
|
|
Todo o conteúdo ficará dentro deste array, abordaremos duas maneiras de implementar o conteúdo do nosso breadcrumb, o primeiro será vinculado a uma rota configurada no sistema e o outro de forma livre. Vamos criar nosso primeiro link apontando para a rota ‘Home’ .
|
|
Devemos agora registrar nosso serviço, para isso vamos criar um array para nosso service manager e incluir nosso navigation.
|
|
Podemos agora implementar nosso componente na view, para isso vamos acessar o arquivo layout.phtml (Application/view/layout/layout.phtml) e incluir o seguinte código logo acima do componte ‘’:
|
|
Como podemos notar no código acima, foi utilizado o viewhelper navigation e informamos qual elemento desejamos (default), e para termos uma estilização conforme o breadcrumbs do framework Bootstrap utilizamos o método setUlClass para definir a classe CSS desejada.
Para acessarmos o projeto e visualizarmos as alterações, no diretório raiz do projeto execute o seguinte comando no terminal para fazermos uso do servidor embutido do PHP.
|
|
Em seu navegador favorito, acesse a seguinte URL.
|
|
E como resultado temos nosso primeiro Breadcrumb!!!
Agora que dispomos da estrutura definida, vamos simular um site map com 5 relações de links. Acesse o arquivo global.php e vamos incluir nossos links.
|
|
E como resultado obtemos o seguinte componente:
O ponto que destaco nesta implementação, é a declaração da URI ao invés de vincular ao nome de uma rota previamente configurada no sistema. Obviamente que se a URI declarada não existir em seu sistema o retorno será um belo 404.
Como podemos notar a implementação é muito simples, claro que o componente é muito robusto e dispõem de vários outros detalhes, por isso incentivo que você leia a documentação pois é rica e detalhada.
Vou dar um bônus no post e demonstrar como manipular a visibilidade dos links. Vamos criar o link ‘Não Será Exibido‘ entre os links ‘Página 04’ e ‘Página 05’.
|
|
É ridiculamente simples a implementação como podemos observar no código acima, apenas declaramos ‘visible’ => false e pronto, atualize o navegador e confira o resultado.
O componente Navigation não se restringe somente na criação de bradcrumbs, podemos construir navbar dinâmicos, porem para não delongar este poste vou encerrar por aqui.
Espero que tenha apreciado e que seja útil em seu dia a dia no desenvolvimento dos projetos, qualquer dúvida deixe nos comentários.
Ps: Ao amigo para quem construí esse post para ajudá-lo em um projeto, você está me devendo uma cerveja e espero que o post lhe ajude! 🙂
Até a próxima!