sexta-feira, 15 de junho de 2012

Slide da Symfony Live Paris 2012

Acompanhando a hash tag #symfony_live no twitter, eu encontrei um link para os slides de algumas apresentações que apareceram na conferência. Esta daqui eu acho bem interessante e útil. Ela é sobre configuração do seus bundles. Como fazer, estruturar e validar. Muitas vezes agente se pergunta onde colocar as configurações do nossos bundles, ou como fazer configurações nos mesmos moldes dos bundles mais conhecidos que utilizamos. Aqui mostra como isto é feito.
Vocês vão notar que a apresentação não tem muito texto explicativo, a pessoa que ia apresentando ia falando tudo lá na hora. Mas dá para ter uma noção, ou pelo menos o início para buscar mais informação.

Em um outro momento eu posso escrever um POST explicando como criar essas configurações para seu Bundle.

sábado, 26 de maio de 2012

Conferência sobre Symfony no Brazil

Este post é para divulgar a sfcon, que é uma conferência voltada para o framework Symfony, que acontecerá do dia 23/06/2012 na cidade de Belo Horizonte, Minas Gerais.
Esta é uma grande oportunidade, para quem trabalha com Symfony encontrar outras pessoas que trabalham com esse framework, para poder dividir suas experiências, aprender coisas novas, trocar informações e aumentar a rede de contatos.
 A comunidade Symfony precisa crescer no Brasil, devemos conseguir mais adeptos. Torcemos para que a conferência seja um sucesso.

terça-feira, 8 de maio de 2012

Documentação offline do Symfony 2

Para quem gosta de ter a documentação em seu próprio computador, para não ficar sempre dependendo da internet, a documentação do Symfony 2 já está disponível para download em PDF no próprio site oficial, neste link, onde está título "Offline Documentation".

Por enquanto só tem em inglês e italiano.

domingo, 15 de abril de 2012

Trabalhando com datas no Symfony 2

Normalmente no Symfony 2 usamos o Doctrine 2 para fazer o mapeamento objeto relacional.
O Doctrine 2 usa o objeto DateTime do php, com isso temos que trabalhar com esse objeto quando queremos usar data no Symfony 2.
Qualquer dúvida sobre métodos dessa classe, pode ser tirada olhando na documentação no próprio site do php aqui.

No próximo post colocarei mas algumas informações sobre o uso de datas neste framework.

domingo, 11 de março de 2012

Como filtrar dados do Entity ChoiceField em um formulário

Se você tem um formulário de uma entidade que tem relação com outra entidade, e a pessoa escolherá o objeto na tela através de um select, checkboxes ou radio buttons, você pode usar o tipo Entity na hora de criar o formulário, mas aparecerá todos os registros da tabela.


Caso deseje filtrar esses resultados, pode-se usar a opção class e query_builder do tipo Entity. Vamos ao exemplo:
Temos uma Entidade Produtos e queremos que somente apareça no select os produtos ativos. Então vamos a criação do campo no formulário:

$builder
    ->add('produto', 'entity', array(
        'class' => 'AplicativoPrincipalBundle:Produto',
 'query_builder' => function(ProdutoRepository $er) {
     return $er->findAllAtivosQueryBuilder();
        },
    ))

A opção class diz qual é a classe da entidade. Já a opção query_builder é onde você cria uma função anônima que retorna o queryBuider gerado pela função do seu repositório.
No repositório ProdutoRepository terá que ter a função findAllAtivosQueryBuilder, que irá retornar um queryBuilder como no exemplo abaixo:

public function findAllAtivosQueryBuilder()
{
    return $this->createQueryBuilder('p')
        ->where('p.ativo = :ativo')
        ->setParameter('ativo', '1')
     ->orderBy('p.nome', 'ASC');
}

Então na hora de gerar seu formulário o framework usará essa função para fazer a consulta. Com isso na sua tela, aparecerá somente os produtos ativos para serem escolhidos.

sexta-feira, 2 de março de 2012

Como adicionar o campo CSRF token ao formulário sem usar a função form_rest

Se você tem um forulário onde não quer que todos os campos sejam exibidos, mas precisa que o campo CSRF aparece pois sua validação está dando erro sem ela. Aqui está uma solução.
Se usar:
    {{ form_rest(form) }}

Todos os campos que você não queria que estivessem, lá vão apararecer. Uma solução seria adicionar a página esse campo "_token" do formulário:
    {{ form_widget(form._token) }}

Com isso o CSRF aparecerá no seu formulário, os campos indesejados não aparecerão e sua validação funcionará normalmente.

sábado, 25 de fevereiro de 2012

Como desabilitar o CSRF de um formulário

Se você tem um formulário na sua aplicação em Symfony 2, e por algum motivo não quer que o teste CSRF  seja feito, não se desespere, é bem fácil.

Na classe de formulário, no seu método "getDefaultOptions", adicione ao array o índice "csrf_protection" com o valor false, como no exemplo abaixo:

  
public function getDefaultOptions(array $options)
{
    return array(
        'csrf_protection' => false,
    );
}

Com isso na hora da validação essa verificação não será feita.

Obs.: Pra quem não sabe o que é CSRF, é só clicar aqui