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.”