2017 © Pedro Peláez
 

library inflector

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

image

icanboogie/inflector

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  • Friday, September 29, 2017
  • by olvlvl
  • Repository
  • 7 Watchers
  • 175 Stars
  • 323,135 Installations
  • PHP
  • 63 Dependents
  • 0 Suggesters
  • 16 Forks
  • 4 Open issues
  • 14 Versions
  • 8 % Grown

The README.md

Inflector

Release Code Quality Code Coverage Packagist, (*1)

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., (*2)

Inflections are currently available for the following languages:, (*3)

  • English (en)
  • French (fr)
  • Norwegian Bokmal (nb)
  • Portuguese (pt)
  • Spanish (es)
  • Turkish (tr)

Usage

These are some examples of the inflector with the en locale (default)., (*4)

<?php

use ICanBoogie\Inflector;

$inflector = Inflector::get(Inflector::DEFAULT_LOCALE);
# or
$inflector = Inflector::get('en');
# or
$inflector = Inflector::get();

# pluralize

$inflector->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., (*5)

<?php

namespace ICanBoogie;

echo pluralize('child');                             // "children"
echo pluralize('genou', 'fr');                       // "genoux"
echo singularize('lærere', 'nb');                    // "lærer"
echo pluralize('üçgen', 'tr');                       // "üçgenler"

Acknowledgements

Most of the code and documentation was adapted from Ruby On Rails's Inflector and David Celis' inflections., (*6)

Significant differences:, (*7)

  • Better support of accentuated characters.
  • The Ruby module separator :: as been replaced by the PHP namespace separator \.
  • The plural of "octopus" is "octopuses" (not "octopi"), the plural of "virus" is "viruses" (not viri) and the pural of "cow" is "cows" (not "kine").
  • The following methods have been removed: tableize, classify, demodulize, constantize, deconstantize and foreign_key. They can be easily implemented in specific inflectors.
  • Added the hyphenate method, which is a combination of underscore and dasherize.
  • One specifies true rather than false to camelize() to downcase the first letter of the camel cased string.

Getting started

Inflector expects to work in UTF-8, which is the default encoding character set starting PHP 5.6, for older versions please use mb_internal_encoding() as follows:, (*8)

<?php

namespace ICanBoogie;

// …

mb_internal_encoding('UTF-8');

titleize("été_aux_âmes_inouïes"); // Été Aux Âmes Inouïes

Requirement

The package requires PHP 7.1 or later., (*9)

Installation

The recommended way to install this package is through Composer:, (*10)

$ composer require icanboogie/inflector

Documentation

The package is documented as part of the ICanBoogie framework documentation. The documentation for the package is generated with the make doc command. The documentation is generated in the build/docs directory using ApiGen. The package directory can later by cleaned with the make clean command., (*11)

Testing

The test suite is run with the make test command. Composer is automatically installed as well as all the dependencies required to run the suite. It is recommended to run make test in the test container created with make test-container., (*12)

The package is continuously tested with GitHub Actions., (*13)

License

icanboogie/inflector is licensed under the New BSD License - See the LICENSE file for details., (*14)

The Versions

29/09 2017

dev-master

9999999-dev http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

29/09 2017

dev-travis-php53

dev-travis-php53 http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

30/06 2017

v1.4.4

1.4.4.0 http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

24/04 2017

v1.4.3

1.4.3.0 http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

15/12 2016

v1.4.2

1.4.2.0 http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

02/07 2016

v1.4.1

1.4.1.0 http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

03/11 2015

v1.4.0

1.4.0.0 http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

03/11 2015

dev-spanish_update

dev-spanish_update http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

18/08 2015

dev-filtering_titleize

dev-filtering_titleize http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

18/08 2015

v1.3.3

1.3.3.0 http://icanboogie.org/

Multilingual inflector that transforms words from singular to plural, underscore to camel case, and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.4
  • ext-mbstring *

 

multilingual inflect underscore singularize pluralize hyphenate camelize

16/09 2014

v1.3.2

1.3.2.0 http://icanboogie.org/

The Inflector transforms words from singular to plural, underscore to camel case, titelize words and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.0

 

inflect underscore singularize pluralize hyphenate camelize

11/09 2014

v1.3.0

1.3.0.0 http://icanboogie.org/

The Inflector transforms words from singular to plural, underscore to camel case, titelize words and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.0

 

inflect underscore singularize pluralize hyphenate camelize

03/01 2014

v1.2.0

1.2.0.0 http://icanboogie.org/

The Inflector transforms words from singular to plural, underscore to camel case, titelize words and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.0

 

inflect underscore singularize pluralize hyphenate camelize

14/03 2013

v1.0.0

1.0.0.0 http://icanboogie.org/

The Inflector transforms words from singular to plural, underscore to camel case, titelize words and more.

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.0

 

inflect underscore singularize pluralize hyphenate camelize