The Inflector class changes words from singular to plural or vice versa, and it also changes cases of words as well.
To install this package
$ composer require originphp/inflector
To convert words to their singular or plural form
use Origin\Inflector\Inflector;
$singular = Inflector::singular('apples'); // apple
$plural = Inflector::plural('apple'); // apples
The Inflector comes with a some standard rules which cover most words and is a good starting point for a project, however occasionally you might need to add a custom rule.
In your bootstrap/configuration
use Origin\Inflector\Inflector;
// regex or string
Inflector::rules('singular',[
'/(quiz)zes$/i' => '\\1'
]);
// regex or string
Inflector::rules('plural',[
'/(quiz)$/i' => '\1zes'
]);
// string only
Inflector::rules('uncountable',['sheep']);
// string only
Inflector::rules('irregular',[
'child' => 'children'
]);
Singular and plural rules can be both strings or regex expressions
use Origin\Inflector\Inflector;
Inflector::rules('singular',['fezzes'=>'fez']);
Inflector::rules('plural',['fez'=>'fezzes']);
To change cases of words
use Origin\Inflector\Inflector;
// change underscored words
$studyCaps = Inflector::studlyCaps('big_tree') ; // BigTree
$camelCase = Inflector::camelCase('big_tree') ; // bigTree
$human = Inflector::human('big_tree'); // Big Tree
// Change studly capped words
$underscored = Inflector::underscored('BigTree'); // big_tree
The Inflector also has these two methods which OriginPHP also uses to do its magic.
// converts class name into into table name (plural underscored)
$tableName = Inflector::tableName('BigTree'); // big_trees
// converts table names (plural underscored) into a class name
$className = Inflector::className('big_trees'); // BigTree