This document is for CakePHP's development version, which can be significantly different
from previous releases.
You may want to read
current stable release documentation instead.
La clase Inflector toma una cadena y puede manipularla para manejar variaciones de palabras como pluralización o conversión a formato camello (camelCase). Por lo general, se accede a esta clase de manera estática. Por ejemplo:
Inflector::pluralize('example')
devuelve «examples».
Puedes probar las inflecciones en línea en inflector.cakephp.org or sandbox.dereuromark.de.
Los métodos integrados en el Inflector y los resultados que generan al proporcionarles un argumento compuesto por varias palabras:
Método |
Argumento |
Resultado |
---|---|---|
|
BigApple |
BigApples |
big_apple |
big_apples |
|
|
BigApples |
BigApple |
big_apples |
big_apple |
|
|
big_apples |
BigApples |
big apple |
BigApple |
|
|
BigApples |
big_apples |
Big Apples |
big apples |
|
|
big_apples |
Big Apples |
bigApple |
BigApple |
|
|
big_apples |
BigApple |
big apple |
BigApple |
|
|
BigApples |
big-apples |
big apple |
big apple |
|
|
BigApple |
big_apples |
Big Apple |
big apples |
|
|
big_apple |
bigApple |
big apples |
bigApples |
Both pluralize
and singularize()
work on most English nouns. If you need
to support other languages, you can use Configurando las Inflecciones to
customize the rules used:
// Apples
echo Inflector::pluralize('Apple');
Nota
pluralize()
no debería ser usado en un nombre que ya está en su forma plural.
// Person
echo Inflector::singularize('People');
Nota
singularize()
no debería ser usado en un nombre que ya está en su forma singular.
Estos métodos son útiles cuando creas nombres de clases o de propiedades:
// ApplePie
Inflector::camelize('Apple_pie')
// apple_pie
Inflector::underscore('ApplePie');
Nótese que el método underscore sólo convertirá palabras en formato CamelCase. Palabras que contengan espacios serán transformadas a minúscula pero no contendrán un guión bajo.
Este método es útil cuando se quiere convertir una palabra de la forma under_scored al formato «Título» para que sea legible por un ser humano:
// Apple Pie
Inflector::humanize('apple_pie');
Cuando se genera código, o usando las convenciones de CakePHP, puedes necesitar generar inflecciones para los nombres de tabla o de clase:
// UserProfileSetting
Inflector::classify('user_profile_settings');
// user-profile-setting
Inflector::dasherize('UserProfileSetting');
// user_profile_settings
Inflector::tableize('UserProfileSetting');
Los nombres de variable son a menudo útiles cuando se hacen tareas de meta-programación que involucran generar código o hacer trabajo basado en convenciones:
// applePie
Inflector::variable('apple_pie');
Las convenciones de nomenclatura de CakePHP pueden ser muy útiles: puedes nombrar tu
tabla de base de datos como big_boxes
, tu modelo como BigBoxes
, tu controlador
como BigBoxesController
, y todo funcionará automáticamente juntos. La forma en que
CakePHP sabe cómo vincular las cosas es inflectando las palabras entre sus formas
singular y plural.
Existen ocasiones (especialmente para nuestros amigos que no hablan inglés) en las que podrías encontrarte con situaciones donde el inflector de CakePHP (la clase que pluraliza, singulariza, utiliza notación camello y subrayados) puede no funcionar como deseas. Si CakePHP no reconoce tus «Foci» o «Fish», puedes indicarle a CakePHP acerca de tus casos especiales.
Define nuevas reglas de inflexión y transliteración para que Inflector las utilice. A menudo, este método se utiliza en tu archivo 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
Las reglas suministradas se fusionarán en los conjuntos de inflexión respectivos definidos en Cake/Utility/Inflector
,
y las reglas añadidas tendrán prioridad sobre las reglas principales del núcleo. Puedes usar Inflector::reset()
para eliminar las reglas y restaurar el estado original del Inflector.