Mark Gerald

Martins

Web Developer


Meu blog

Seja bem vindo ao meu blog! Aqui trato assuntos ligados ao desenvolvimento web, php, mysql, frameworks, ide´s, e-commerce, cms´s, seo e muito mais!

Criando Bundle e Configurando Rota no Symfony 2

Janeiro 22, 2015mark0 Comentário

symfony2Este é meu primeiro tutorial do Symfony 2. Queria fazer um começando do Zero, mas o Candido Souza, no site Tableless.com.br fez um para iniciantes, perfeito, portanto, antes de qualquer coisa, dá uma conferida no POST “Iniciando com Symfony 2” dele.

Seguindo com este post do Candido Souza, vamos criar nosso primeiro Bundle, utilizando a poderosa linha de comando do symfony, e vamos também configurar a rota “/”(barra) para mostrar o conteúdo desde Bundle.

Mas o que é “Bundle” afinal? Vamos utilizar a definição do próprio site do Symfony:

Desde a mais pequena peça até o próprio núcleo completo, tudo no Symfony 2.0 é apresentado como um “bundle” (ou plug-in na linguagem Symfony). Cada bundle destina-se à adicionar uma funcionalidade ao framework, é claro, e cada bundle pode também ser reutilizado em outro projeto ou compartilhado com a comunidade.

 

Em qualquer caso, o sistema de bundles permite mudar tudo dentro do Symfony, incluindo o próprio núcleo. Utilizando a interface contracts do sistema entre as peças, o comportamento do framework pode ser alterado à vontade, sem a necessidade de reconfiguração completa.

Entendido isto, vamos colocar as “mãos na massa”!

Vamos ao console, na pasta de sua instalação do Symony. Para geração do bundle, digite:

Após o enter, a seguinte tela é apresentada:

symfony2-1

 

Vamos criar nosso Bundle, com o seguinte Namespace: Teste/CatalogoBundle.  Digite o nome informado, e dê enter.

No próximo passo a seguinte informação nos é exibida:

symfony2-2

Está sendo informado qual será o nome do “Bundle”. Você pode alterá-lo, bastando digitar algo na linha informada. Caso queira confirmar, dê “enter” sem digitar nada(faça isso).

Na próxima linha, será pedido a confirmação do diretório do Bundle, dê enter também, pois vamos utilizar o padrão:

symfony2-3

Nesta linha seguinte, será solicitado qual o formato de configuração será utilizado. Vamos utilizar neste caso, “yml“. Digite e dê enter:

symfony2-4

Na próxima linha, será perguntado se deseja criar toda a estrutura de diretórios do Bundle, digite “yes” e prossiga.

symfony2-5

Agora é necessário confirmar a criação do Bundle, bastando teclar “enter”:

symfony2-6

Neste ponto, ele pede sua confirmação se quer que ele atualize o “Kernel”. No caso, trata-se do arquivo “AppKernel.php” que se encontra na pasta “app” do Symfony. Este arquivo é o responsável, por “registrar” os Bundles existentes. Sem este “registro” o bundle não funcionará. Apenas dê enter para prosseguir:

symfony2-7

A próxima linha, pede a confirmação se você quer alterar a “rota”. Que se encontra no arquivo “routing.yml”, que se encontra na pasta de instalção do Symfony em “app/config”. Apenas dê enter.

symfony2-8

Se tudo ocorrer bem, a seguinte mensagem será exibida:

symfony2-9

Ao verificar sua pasta “src”, a seguinte estrutura será apresentada:

symfony2-10

Na estrutura acima, temos um controller padrão já criado, dentro da pasta “Controller”, chamado DefaultController. Ao abrir o arquivo temos o seguinte conteúdo:

Analisando o código vemos que um parâmetro $name é passado a indexAction, método que aciona a rota principal do controller. Este parâmetro é informado a view, e conforme o que lhe é passado é exibido o resultado na view.

Mas como este parâmetro é passado? Via rota, no caso um arquivo yml(lembra que escolhemos a configuração por yml acima?). Na estrutura acima, acesse a pasta “Resources/config”. Dentro dela há um arquivo chamado “routing.yml”, detalhado a seguir:

A primeira linha, é o nome dado a rota(para ser utilizado posteriormente). A segunda linha, trata-se do “path” ou caminha dessa rota, e segunda linha, define um controller padrão, no caso o DefaultController e a action index.

Portanto, se seu virtualhost estiver configurado e acessar sua aplicação com “http://seu-host-do-symfony-qualquer/hello/QualquerCoisa” a rota irá exibir o resultado. No meu caso, a url de teste utilizada foi “http://sf.localhost/hello/Mark”.  Neste caso, o resultado no browser é o seguinte:

symfony2-11

O arquivo da view, encontra-se em “Resources/views/Default/” chamado index.html.twig e pode ser alterado.

Alterando a Rota

Vamos alterar a rota deste controller, para ser reponsável pela rota “/” ou raiz da nossa aplicação. Para isto, vamos alterar o arquivo index da view informado acima. Vamos apagar seu conteúdo e colocar apenas “Hello Word!”, atualmente o seu conteúdo é “Hello {{name}}”.

Após alterar o arquivo da view, vamos alterar a rota, indo ao arquivo “routing.yml” presente em “Resources/config”. Vamos alterar a rota, deixando-a estática:

Após alterar a rota, temos de alterar o controller “DefaulController”, removendo o parâmetro “$name”, deixando o código desta maneira:

Desta maneira, ao acessar nossa aplicação com o host configurado, por exemplo: “http://sf.localhost/” A tela exibida trará apenas a mensagem “Hello World”.

Próximo Post

Nos próximos dias, vamos avançar, criando nosso banco de dados(MySQL) para trabalhar com doctrine, criação de entidades, crud generator e rotas por “annotations”. Até mais!

 

Share Button

Deixe um comentário