Inflector

    • class Inflector
    • The Inflector class takes a string and can manipulate it to handle wordvariations such as pluralizations or camelizing and is normally accessedstatically. Example:Inflector::pluralize('example') returns “examples”.

    Quick summary of the Inflector built-in methods and the results they outputwhen provided a multi-word argument:

    Creating Plural & Singular Forms

    • static Cake\Utility\Inflector::singularize($singular)
    • Both pluralize and singularize() work on most English nouns. If you needto support other languages, you can use tocustomize the rules used:

    Note

    pluralize() may not always correctly convert a noun that is already in its plural form.

    1. // Person
    2. echo Inflector::singularize('People');

    singularize() may not always correctly convert a noun that is already in its singular form.

    • static Cake\Utility\Inflector::camelize($underscored)
    • static Cake\Utility\Inflector::underscore($camelCase)
    • These methods are useful when creating class names, or property names:

    It should be noted that underscore will only convert camelCase formatted words.Words that contains spaces will be lower-cased, but will not contain anunderscore.

    Creating Human Readable Forms

    • static Cake\Utility\Inflector::humanize($underscored)
    • This method is useful when converting underscored forms into “Title Case” formsfor human readable values:
    1. // Apple Pie
    2. Inflector::humanize('apple_pie');
    • static Cake\Utility\Inflector::classify($underscored)
    • static Cake\Utility\Inflector::tableize($camelCase)
    • When generating code, or using CakePHP’s conventions you may need to inflecttable names or class names:

    Creating Variable Names

    • static Cake\Utility\Inflector::variable($underscored)
    • Variable names are often useful when doing meta-programming tasks that involvegenerating code or doing work based on conventions:
    1. // applePie
    2. Inflector::variable('apple_pie');
    • static Cake\Utility\Inflector::slug($word, $replacement = '-')
    • Slug converts special characters into latin versions and converting unmatchedcharacters and spaces to dashes. The slug method expects UTF-8 encoding:

    Note

    Inflection Configuration

    CakePHP’s naming conventions can be really nice - you can name your databasetable bigboxes, your model BigBoxes, your controllerBigBoxesController, and everything just works together automatically. Theway CakePHP knows how to tie things together is by _inflecting the wordsbetween their singular and plural forms.

    There are occasions (especially for our non-English speaking friends) where youmay run into situations where CakePHP’s inflector (the class that pluralizes,singularizes, camelCases, and under_scores) might not work as you’d like. IfCakePHP won’t recognize your Foci or Fish, you can tell CakePHP about yourspecial cases.

    • static Cake\Utility\Inflector::rules($type, $rules, $reset = false)
    • Define new inflection and transliteration rules for Inflector to use. Often,this method is used in your config/bootstrap.php:
    1. Inflector::rules('singular', ['/^(bil)er$/i' => '\1', '/^(inflec|contribu)tors$/i' => '\1ta']);
    2. Inflector::rules('uninflected', ['singulars']);

    The supplied rules will be merged into the respective inflection sets defined inCake/Utility/Inflector, with the added rules taking precedence over the corerules. You can use to clear rules and restore theoriginal Inflector state.