Slim Framework Cheat Sheet

slim

Recently, I worked on a project using the Slim Framework and started this reference. As I finished some layout stuff, it is now available for download (click on the image above). Feel free to use it and give some feedback 🙂

In case you didn’t know the Slim Framework yet, it’s really great for small projects and REST APIs.

Hope it helps someone 🙂

Directory Structure and CLI Cheat-Sheet – symfony 1.4

pt_BR: Muitos leitores do /webdev tem perguntado sobre as atualizações das referências rápidas (cheat-sheets) para as novas versões do framework PHP symfony.

Bem, aqui vai a primeira com a estrutura de diretório e as tarefas da linha de comando (CLI) do symfony, muito mais poderosa agora na versão 1.4 do framework.

As cheat-sheets serão atualizadas para a versão 1.4, porque esta é a versão LTS atual (com suporte de longo tempo).


en_US: Many readers of the /webdev have asked me about the updates of the cheat-sheets for new versions of the symfony framework.

Well, here’s the first one with the directory structure and tasks of the command line interface (CLI), much more powerful now in version 1.4 of the framework.

The cheat-sheets will be updated to version 1.4, because this is the current LTS version (Long Term Support).


Idiomas:

Calendário de Advento symfony: construindo a aplicação web 2.0 Jobeet em 24 dias

Jobeet

Isso mesmo! Neste ano de 2008 temos um novo calendário de advento symfony!

Novamente uma ótima oportunidade para aprender o framework symfony, agora na versão 1.2, através de uma série de tutoriais publicados todos os dias, entre o dia primeiro de dezembro e o Natal.

O objetivo é, a exemplo do askeet (publicado em 2005), termos no dia 24 a conclusão de uma aplicação web 2.0, dedicando 1 hora diária para ler os tutoriais e praticar. O nome desta aplicação é Jobeet e será um software de Job Board, ou quadro de vagas, de código aberto. Na aplicação será possível procurar por um trabalho ou propor um.

Os tutoriais, em inglês, são disponibilizados no seguinte endereço:
http://www.symfony-project.org/jobeet/1_2/en/

E, para quem não está familiarizado com o inglês, estou trabalhando nas traduções para o português e disponibilizando no site oficial em:
http://www.symfony-project.org/jobeet/1_2/pt_BR/

Aproveite! 🙂

symfony Q&A

Adicionada hoje, uma nova página ao blog, com o título symfony Q&A. Esta página é dedicada ao registro de dúvidas e respostas sobre o framework symfony, com o objetivo de compartilhar conhecimento com outros desenvolvedores, divulgar este espetacular framework aqui no Brasil e, também, para referências futuras.

Por enquanto é apenas uma lista inicial, mas estarei sempre atualizando com novos tópicos.

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 – 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