Inflector
-
class
Cake\Utility\
Inflector
La classe Inflector prend une chaîne de caractères et peut la manipuler pour
gérer les variations de mot comme les mises au pluriel ou les mises en Camel et
est normalement accessible statiquement. Exemple:
Inflector::pluralize('example')
retourne « examples ».
Vous pouvez essayer les inflexions en ligne sur
inflector.cakephp.org.
Résumé des Méthodes d’Inflector et de leurs Sorties
Petit résumé des méthodes intégrées à l’Inflector et des résultats produits
lorsque vous passez plusieurs mots en argument:
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 |
Créer des Noms de Variable
-
static
Cake\Utility\Inflector::
variable
($underscored)
Les noms de variable sont souvent utiles quand vous faîtes des tâches
meta-programming qui impliquent la génération de code ou des opérations basées sur les conventions:
// applePie
Inflector::variable('apple_pie');
Créer des Chaînes d’URL Safe
-
static
Cake\Utility\Inflector::
slug
($word, $replacement = '-')
Slug convertit les caractères spéciaux en version latins et convertit les
caractères ne correspondant pas et les espaces en tirets. La méthode slug
s’attend à un encodage UTF-8:
// apple-puree
Inflector::slug('apple purée');
Note
Inflector::slug()
est dépréciée depuis la version 3.2.7. Utilisez
Text::slug()
à la place.
Configuration d’Inflexion
Les conventions de nommage de CakePHP peuvent être très sympas - vous pouvez
nommer votre table de base de données big\_boxes
, votre model BigBoxes
,
votre controller BigBoxesController
, et tout fonctionnera automatiquement.
CakePHP connaît la façon dont les choses sont liées grâce à l”inflexion des
mots entre leurs formes singulière et plurielle.
Il existe des cas (spécialement pour nos amis non-anglais) où l’inflector de
CakePHP (la classe qui pluralise, singularise, met en camelCase et en
underscore) ne fonctionnera pas comme vous le souhaitez. Si CakePHP ne
reconnaîtra pas votre Foci ou Fish, vous pouvez dire à CakePHP vos cas
spécifiques.
Charger les Inflexions Personnalisées
-
static
Cake\Utility\Inflector::
rules
($type, $rules, $reset = false)
Définit une nouvelle inflexion et des règles de transliteration que Inflector va
utiliser. Souvent, cette méthode est utilisée dans votre
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
Les règles fournies vont être fusionnées dans l’ensemble d’inflexion défini dans
Cake/Utility/Inflector
, avec les règles ajoutées qui supplantent les règles
du coeur. Vous pouvez utiliser Inflector::reset()
pour nettoyer les règles
et restaurer l’état d’Inflector originel.