Symfony Cheat-Sheet – Modelo

model1.gif

Iniciando a série das três referências sobre a camada de modelo do symfony, esta primeira traz uma visão geral do ORM no framework, com informações dos arquivos de configuração da conexão com o banco de dados, as classes geradas que representam o modelo, o arquivo schema (YAML e XML) utilizado para gerar as classes, transações, …

Nas próximas referências que estarei postando sobre o modelo, será apresentada uma abordagem detalhada dos seguintes tópicos:

  • criteria
  • schema

Idiomas:

  • English – [PDF]
  • Português

Lançada API do Built With

A API do Built With está disponível através de um web service que fornece, em formato XML, as mesmas informações proporcionadas pelas pesquisas no site.

O Built With é uma ferramenta online que exibe as tecnologias utilizadas por um determinado site, incluindo:

  • padrões (XHTML, CSS, Conditional Comments, …)
  • widgets (snap preview)
  • informações sobre o servidor (sistema operacional – ex: *nix, servidor web – ex: apache)
  • CDNs (Amazon S3, Limelight)
  • encoding (UTF-8)
  • análise, estatísticas de acesso (Google, Nielsen)
  • JavaScript (bibliotecas, defer)
  • funcionalidade de agregação (RSS)
  • frameworks (PHP)
  • serviços de pagamento (PayPal)

Removendo bordas pontilhadas no Firefox

Ao utilizarmos a técnica de image replacement, aplicando valores negativos na propriedade CSS text-indent, o Firefox adiciona uma borda pontilhada envolvendo toda a região iniciando no link até a margem esquerda da tela, como no exemplo abaixo:

Borda pontilhada no Firefox

Para retirar a borda, basta alterar a propriedade CSS outline do link para none:

a{
outline: none;
}

E voilà!

Validação client-side de forms com o symfony

Através de plugins do symfony é possível aproveitar o sistema de validação no servidor do framework para a validação client-side.

Os plugins abaixo utilizam os arquivos de validação YAML já existentes para construir as regras de validação, evitando reescrever código de validação em JavaScript.

  • sfPokaYokePlugin: Filtro que adiciona validação de formulários client-side com base no arquivo action.yml existente. É possível exibir erros inline no evento on blur e listar os erros encontrados no form no evento on submit. A definição (classes e ids) dos elementos que exibirão os erros e também os eventos que exibirão os erros inline e global são configurados no arquivos app.yml
  • sfYzClientSideValidationPlugin: Validador client-side que utiliza AJAX para validar forms através do sistema de validação do symfony.
  • sfFormValidationPlugin: Pode-se customizar os erros com uma função nomeada ‘my_field_error‘ que pode ser escrita tanto em PHP como em JavaScript.

Os seguintes validadores estão implementados para os plugins sfPokaYoke e sfFormValidation:

  1. sfStringValidator
  2. sfNumberValidator
  3. sfRegexValidator
  4. sfEmailValidator
  5. sfCompareValidator

DRY – Partials, Components, Slots e Component Slots do symfony

view11.gif

Um dos princípios do symfony é o DRY (Don’t Repeat Yourself ou “Não se repita”). Para nos ajudar com esta tarefa, o framework disponibiliza quatro helpers que podem ser utilizados conforme a necessidade.

Esta segunda cheat-sheet sobre a camada de visão (View) do symfony, trata justamente destes helpers para trabalhar com:

  • Partials: include_partial()
  • Components: include_component()
  • Slots: include_slot()
  • Component Slots: include_component_slot()

Idiomas disponíveis:

  • English – PDF
  • Português – em breve

Symfony Cheat-Sheet – View

view22.gif

Esta primeira cheat-sheet da camada de visão (view) do symfony, aborda sobre:

  • localização dos templates na estrutura de diretórios do symfony
  • helpers padrão do symfony carregados automaticamente
  • definição de helpers não padrão
  • como chamar helpers fora dos templates (em actions, por exemplo)
  • estrutura default do layout global
  • configurações de layout (definindo e removendo layouts através de actions e do arquivo de configuração view.yml)
  • atalhos para o request, os parâmetros do request, os objetos sfUser, sfView, sfContext, …
  • como disponibilizar variáveis das actions para os templates
  • como substituir templates
  • convenções para nomear os templates

Idiomas disponíveis:

  • English – PDF
  • Português – em breve