del.icio.us symfony

Empolgante notícia, no blog do symfony, confirmando que a nova versão da fantástica aplicação web 2.0 para social bookmarking del.icio.us, originalmente desenvolvida por Joshua Schachter e adquirida pela Yahoo!, está sendo desenvolvida com o framework symfony:

“What you might not know is that the next version of Delicious is built with symfony. Of course, Yahoo! extended and modified symfony to fit their needs, but what’s great is that they could actually do it, and that they will contribute their modifications back to the community in the form of plugins and bug fixes.”

O preview da nova versão já está há algumas semanas online para usuários convidados e screen shots podem ser visualizados na TechCrunch.

[Update - 01/02/2008] screen shots disponíveis em meu photoset no flickr.

Dica: Pesquisas case-insensitive com a classe Criteria

Para realizarmos uma pesquisa no banco de dados sem distinção entre letras maiúsculas e minúsculas (resultado usualmente obtido através das funções upper ou lower no SQL), com a classe Criteria, basta passarmos o parâmetro true para o método setIgnoreCase:

$c = new Criteria();
$c->add(AutorPeer::NOME_AUTOR, strtr($this->filters['autor'], '*', '%'), Criteria::LIKE);
$c->setIgnoreCase(true);
...

Uma dica simples, mas que pode poupar algum tempo de pesquisa na documentação ;)

Referência:

Symfony Cheat-Sheet – Database Schema

model2.gif

Referência sobre as opções de configuração do arquivo schema.yml, utilizado para realizar o mapeamento objeto-relacional (gerar as classes do modelo com o comando $ symfony propel-build-model ) no symfony.

Idiomas:

  • English – [PDF]
  • Português – em breve

Referências:

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

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

Symfony Cheat-Sheet – Validação no Servidor

servervalidation.gif

Referência rápida sobre a validação dos dados de um form no servidor, utilizando o framework symfony, incluindo:

  • as modificações necessárias para o processo de validação (criação do arquivo de validação no formato YAML dentro no diretório validate do módulo, alterações no controller e view)
  • validadores disponíveis
  • helpers para validação
  • como repopular facilmente um form, ativando a configuração fillin no arquivo de validação YAML.

Idiomas disponíveis: