Arquivo da categoria ‘yaml’

Notas sobre o generator.yml (admin generator)

Maio 16, 2007

Fato sabido que criar seções administrativas em sites é algo desestimulante mas felizmente o symfony nos exime deste fardo.

A criação de uma interface de administração é bem simples e parecida com a geração de um scaffold onde antes (1) cria-se uma aplicação para que seja (2) associado ao “admin” do projeto.
Um vídeo gravado pelos desenvolvedores do symfony demonstra este processo.

Percorrendo os diretórios gerados, resolvi ver como funcionam algumas das diretivas do arquivo generator.yml. Por si só, não há muito o que fazer mas depois de analisar alguns dos muitos exemplos disponíveis notei algumas características interessantes (leia nos comentários):

generator.yml:

generator:
  class:
    sfPropelAdminGenerator
    param:
      model_class:
        MailGroup
          theme:
            default
              fields:
              name:           { name: Nome } ## Mudando o nome de exibicao para esse campo

      ## Criado um metodo getUserName() em lib/model/BaseMailGroup.php      user_name:      { name: Usuário }

      created_at:     { name: Criação }

 list:   title:          Grupos de Envio   layout:         tabular   peer_method:    doSelectJoinUser ## Agrega os resultados das chaves estrangeiras   display:        [=name, created_at, user_name] ## Exibir esses campos   object_actions: ## Icones para edicao e remocao     _edit:        ~     _delete:      ~   max_per_page:   5 ## Paginacao (=alegria)

   ## Exibe uma "janelinha" para aplicacao de   ## filtos na tela principal da listagem   filters:        [name, created_at, user_id]

No exemplo mostrado, apenas a seção de listagem ( list ) foi configurada mas é possível incluir outras como edit.

“Existem várias maneiras de customização mais ou menos complexas, cada caso deve ser pensado de modo que não inviabilize uma futura manutenção de seu projeto depois de meses já em produção.”

Árduo.. mas produtivo

Maio 8, 2007

Depois de navegar em alguns sites sobre como é o aprendizado do symfony, notei que assusta muita gente. Pois bem, mãos a obra e fui tentar criar o primeiro projeto.

Inicialmente, baseei-me no sf_sandbox sendo essa minha única referência comentada e realmente, funciona perfeitamente se seguidos os passos descritos na seção “Meu Primeiro Projeto“. Muito fácil… copiar e colar não ensina nada, que tal um aplicativo de “tarefas a fazer”?

Saindo do grande vazio, criei um novo projeto com o comando:

symfony init-project todo_list

Ótimo! O symfony criou como que por mágica toda a estrutura de diretórios e suas bibliotecas, conhecendo um pouco a estrutura do Propel, achei que o projeto precisaria de uma definição de quais tabelas iriam participar do aplicativo. Passeando pelo diretório config/ do sf_sandbox reparei no arquivo “schema.yml” (arquivo Yaml) e justamente nele encontra-se essa parte da configuração.

Antes disso, vamos a algo importante: o arquivo database.yml contém a configuração do seu banco e como o padrão é o MySQL, lembre-se de escrever nele seu nome de usuário, senha e nome do banco de dados.

A seguir, criei o seguinte:

propel:  autor:    _attributes: { phpName: Autor }    id:    nome:        varchar(255)    email:       varchar(255)    created_at:

  tarefa:    _attributes: { phpName: Tarefa }    id:    autor_id:    titulo:      varchar(255)    conteudo:    longvarchar    created_at:

Então os seguintes comandos são executados:

symfony propel-build-modelsymfony propel-build-sqlsymfony propel-insert-sql

Isso fez com que o symfony gerasse o SQL relativo a criação das tabelas, arquivos de classes e populasse o banco de dados local com as meta informações.

Temos já o esqueleto pronto, já podemos criar “apps” para nosso projeto.