Gerando Breadcrumbs no Zend Framework

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.

breadcrumbs exemplo

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  ‘<?= $this->content ?>’:

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!!!

demonstracao home

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:

demonstracao full

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.

Até a próxima 🙂

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 🙂

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *