Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ICanBoogie/Inflector
A multilingual inflector that transforms words from singular to plural, underscore to camel case, and formats strings in various ways.
https://github.com/ICanBoogie/Inflector
camelcase inflector pluralization underscore
Last synced: 3 months ago
JSON representation
A multilingual inflector that transforms words from singular to plural, underscore to camel case, and formats strings in various ways.
- Host: GitHub
- URL: https://github.com/ICanBoogie/Inflector
- Owner: ICanBoogie
- License: other
- Created: 2013-03-13T14:56:46.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2023-03-12T18:43:04.000Z (over 1 year ago)
- Last Synced: 2024-05-22T08:44:14.101Z (6 months ago)
- Topics: camelcase, inflector, pluralization, underscore
- Language: PHP
- Homepage:
- Size: 143 KB
- Stars: 214
- Watchers: 6
- Forks: 22
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Inflector
[![Release](https://img.shields.io/packagist/v/ICanBoogie/Inflector.svg)](https://packagist.org/packages/icanboogie/inflector)
[![Code Quality](https://img.shields.io/scrutinizer/g/ICanBoogie/Inflector/master.svg)](https://scrutinizer-ci.com/g/ICanBoogie/Inflector)
[![Code Coverage](https://img.shields.io/coveralls/ICanBoogie/Inflector/master.svg)](https://coveralls.io/r/ICanBoogie/Inflector)
[![Packagist](https://img.shields.io/packagist/dm/icanboogie/inflector.svg?maxAge=2592000)](https://packagist.org/packages/icanboogie/inflector)A multilingual inflector that transforms words from singular to plural, underscore to camel case, and formats strings in
various ways. Inflections are localized, the default english inflections for pluralization, singularization, and
uncountable words are kept in [lib/Inflections/en.php](lib/Inflections/en.php).Inflections are currently available for the following languages:
- English (`en`)
- French (`fr`)
- Norwegian Bokmal (`nb`)
- Portuguese (`pt`)
- Spanish (`es`)
- Turkish (`tr`)#### Installation
```bash
composer require icanboogie/inflector
```## Usage
These are some examples of the inflector with the `en` locale (default).
```php
pluralize('post'); // "posts"
$inflector->pluralize('child'); // "children"
$inflector->pluralize('sheep'); // "sheep"
$inflector->pluralize('words'); // "words"
$inflector->pluralize('CamelChild'); // "CamelChildren"# singularize
$inflector->singularize('posts'); // "post"
$inflector->singularize('children'); // "child"
$inflector->singularize('sheep'); // "sheep"
$inflector->singularize('word'); // "word"
$inflector->singularize('CamelChildren'); // "CamelChild"# camelize
$inflector->camelize('active_model', Inflector::UPCASE_FIRST_LETTER);
# or
$inflector->camelize('active_model');
// 'ActiveModel'$inflector->camelize('active_model', Inflector::DOWNCASE_FIRST_LETTER);
// 'activeModel'$inflector->camelize('active_model/errors');
// 'ActiveModel\Errors'$inflector->camelize('active_model/errors', Inflector::DOWNCASE_FIRST_LETTER);
// 'activeModel\Errors'# underscore
$inflector->underscore('ActiveModel'); // 'active_model'
$inflector->underscore('ActiveModel\Errors'); // 'active_model/errors'
$inflector->underscore('Less Active Phrase'); // 'less_active_phrase'
$inflector->underscore('Number 1 Test'); // 'number_1_test'
$inflector->underscore('Johnny5 Still Alive'); // 'johnny5_still_alive'
$inflector->underscore('Lots of Spaces'); // 'lots_of_spaces'# humanize
$inflector->humanize('employee_salary'); // "Employee salary"
$inflector->humanize('author_id'); // "Author"# titleize
$inflector->titleize('man from the boondocks'); // "Man From The Boondocks"
$inflector->titleize('x-men: the last stand'); // "X Men: The Last Stand"
$inflector->titleize('TheManWithoutAPast'); // "The Man Without A Past"
$inflector->titleize('raiders_of_the_lost_ark'); // "Raiders Of The Lost Ark"# ordinal
$inflector->ordinal(1); // "st"
$inflector->ordinal(2); // "nd"
$inflector->ordinal(1002); // "nd"
$inflector->ordinal(1003); // "rd"
$inflector->ordinal(-11); // "th"
$inflector->ordinal(-1021); // "st"# ordinalize
$inflector->ordinalize(1); // "1st"
$inflector->ordinalize(2); // "2nd"
$inflector->ordinalize(1002); // "1002nd"
$inflector->ordinalize(1003); // "1003rd"
$inflector->ordinalize(-11); // "-11th"
$inflector->ordinalize(-1021); // "-1021st"# uncountable
$inflector->is_uncountable("advice"); // true
$inflector->is_uncountable("weather"); // true
$inflector->is_uncountable("cat"); // false
```Helpers makes it easy to use default locale inflections.
```php