sexta-feira, 9 de abril de 2010

Inflections - CakePHP

De vez enquando temos problemas com a pluralização de palavras ou com o nome das classes do model... ou seja, problemas com os inflections.
Então fiz uma pequena aplicação para verificar a pluralização das palavras no CakePHP.

Primeiro passo: Criar o documento 'inflections_controller.php' no diretório 'app/controllers/'
A baixo segue um printscreen do fonte que você deve escrever:
obs:
linha 1: Importamos a classe Inflector.
linha 5: Assim não precisamos de um model para o controller.
linha 10: Passamos a palavra e suas variações para a view.

Agora crie o arquivo 'index.ctp 'no diretório 'app/view/inflections/'.
Abaixo segue o fonte:
Acessando a página da aplicação (no meu caso http://localhost/testes/inflections) temos o seguinte resultado:

Você pode notar que quando passamos a palavra 'imagem' para o plural, ela foi transformada para 'imagems'. Para corrigirmos este problema devemos acessar o
arquivo 'inflections.php' no diretório 'app/config/' e subistituir a linha:
$singularRules = array();
por
$singularRules = array('/(.*)ns$/i' => '\1m');
e
$pluralRules = array();
por
$pluralRules = array('/(.*)m$/i' => '\1ns');
Assim chegamos no seguinte resultado:

Um comentário:

  1. Parabéns!

    Já começou muito bem!

    Quero acompanhar sua sapiência.

    Atenciosamente,
    Sgt Seixas

    ResponderExcluir