Inflector
-
class Cake\Utility\Inflector
A classe Inflector
recebe uma string e a manipula afim de suportar variações
de palavas como pluralizações ou CamelCase e normalmente é acessada
estaticamente. Exemplo:
Inflector::pluralize('example')
retorna «examples».
Você pode testar as inflexões em inflector.cakephp.org.
Resumo dos métodos de Inflexão e Suas Saídas
Resumo rápido dos métodos embutidos no Inflector e os resultados que produzem
quando fornecidos um argumento de palavra composta.
Method |
Argument |
Output |
pluralize()
|
BigApple |
BigApples |
big_apple |
big_apples |
singularize()
|
BigApples |
BigApple |
big_apples |
big_apple |
camelize()
|
big_apples |
BigApples |
big apple |
BigApple |
underscore()
|
BigApples |
big_apples |
Big Apples |
big apples |
humanize()
|
big_apples |
Big Apples |
bigApple |
BigApple |
classify()
|
big_apples |
BigApple |
big apple |
BigApple |
dasherize()
|
BigApples |
big-apples |
big apple |
big apple |
tableize()
|
BigApple |
big_apples |
Big Apple |
big apples |
variable()
|
big_apple |
bigApple |
big apples |
bigApples |
slug()
|
Big Apple |
big-apple |
BigApples |
BigApples |
Criando nomes de variáveis
-
static Cake\Utility\Inflector::variable($underscored)
Nomes de variáveis geralmente são úteis em tarefas de meta-programação que
involvem a geração de código ou rotinas baseadas em convenções:
// applePie
Inflector::variable('apple_pie');
Criando strings de URL seguras
-
static Cake\Utility\Inflector::slug($word, $replacement = '-')
slug()
converte caracteres especiais em suas versões normais e converte
os caracteres não encontrados e espaços em traços. O método slug()
espera
que a codificação seja UTF-8:
// apple-puree
Inflector::slug('apple purée');
Nota
Inflector::slug()
foi depreciado desde a versão 3.2.7. Procure usar Text::slug()
de agora em diante.
Configuração da inflexão
As convenções de nomes do CakePHP podem ser bem confortáveis. Você pode nomear sua
tabela no banco de dados como big_boxes
, seu modelo como BigBoxes
, seu
controlador como BigBoxesController
e tudo funcionará automaticamente. O CakePHP
entrelaça todos estes conceitos através da inflexão das palavras em suas formas
singulares e plurais.
Porém ocasionalmente (especialmente para os nossos amigos não Anglófonos) podem encontrar
situações onde o infletor do CakePHP (a classe que pluraliza, singulariza, transforma em
CamelCase e em nome_sublinhado) não funciona como você gostaria. Caso o CakePHP não
reconheça seu «quaisquer» ou «lápis», você pode ensiná-lo a entender seus casos especiais.
Carregando inflexões personalizadas
-
static Cake\Utility\Inflector::rules($type, $rules, $reset = false)
Define novas inflexões e transliterações para o Inflector
usar. Geralmente este método
deve ser chamado no seu config/bootstrap.php:
Inflector::rules('singular', ['/^(bil)er$/i' => '\1', '/^(inflec|contribu)tors$/i' => '\1ta']);
Inflector::rules('uninflected', ['singulars']);
Inflector::rules('irregular', ['phylum' => 'phyla']); // The key is singular form, value is plural form
As regras ditadas por este método serão agregadas aos conjuntos de inflexão definidos em Cake/Utility/Inflector
,
onde elas terão prioridade sobre as regras já declaradas por padrão. Você pode usar Inflector::reset()
para limpar todas as regras e retornar o Inflector
para seu estado original.