Flourish PHP Unframework

fGrammar

static class, v1.0.0b15

Provides english word inflection, notation conversion, grammar helpers and internationlization support

Changes:
1.0.0b15Added length checking to ensure blank strings are not being passed to various methods 6/20/11
1.0.0b14Fixed a bug in singularization that would affect words containing the substring mice or lice 2/24/11
1.0.0b13Fixed the pluralization of video 8/10/10
1.0.0b12Updated singularize() and pluralize() to be able to handle underscore_CamelCase 8/6/10
1.0.0b11Fixed custom camelCase to underscore_notation rules 6/23/10
1.0.0b10Removed e flag from preg_replace() calls 6/8/10
1.0.0b9Fixed a bug with camelize() and human-friendly strings 6/8/10
1.0.0b8Added the stem() method 5/27/10
1.0.0b7Added the $return_error parameter to pluralize() and singularize() 3/30/10
1.0.0b6Added missing compose() method 3/3/10
1.0.0b5Fixed reset() to properly reset the singularization and pluralization rules 10/28/09
1.0.0b4Added caching for various methods - provided significant performance boost to ORM 6/15/09
1.0.0b3Changed replacement values in preg_replace() calls to be properly escaped 6/11/09
1.0.0b2Fixed a bug where some words would lose capitalization with pluralize() and singularize() 1/25/09
1.0.0bThe initial implementation 9/25/07

Static Methods

::addCamelUnderscoreRule() public

Adds a custom camelCase to underscore_notation and underscore_notation to camelCase rule

Signature

void addCamelUnderscoreRule( string $camel_case, string $underscore_notation )

Parameters

string $camel_case The lower camelCase version of the string
string $underscore_notation The underscore_notation version of the string

::addHumanizeRule() public

Adds a custom mapping of a non-humanized string to a humanized string for humanize()

Signature

void addHumanizeRule( string $non_humanized_string, string $humanized_string )

Parameters

string $non_humanized_string The non-humanized string
string $humanized_string The humanized string

::addSingularPluralRule() public

Adds a custom singular to plural and plural to singular rule for pluralize() and singularize()

Signature

void addSingularPluralRule( string $singular, string $plural )

Parameters

string $singular The singular version of the noun
string $plural The plural version of the noun

::camelize() public

Converts an underscore_notation, human-friendly or camelCase string to camelCase

Signature

string camelize( string $string, boolean $upper )

Parameters

string $string The string to convert
boolean $upper If the camel case should be UpperCamelCase

Returns

The converted string

::compose() protected

Composes text using fText if loaded

Signature

string compose( string $message, mixed $component [, ... ] )

Parameters

string $message The message to compose
mixed $component [, ... ] A string or number to insert into the message

Returns

The composed and possible translated message

::humanize() public

Makes an underscore_notation, camelCase, or human-friendly string into a human-friendly string

Signature

string humanize( string $string )

Parameters

string $string The string to humanize

Returns

The converted string

::inflectOnQuantity() public

Returns the singular or plural form of the word or based on the quantity specified

Signature

string inflectOnQuantity( mixed $quantity, string $singular_form, string $plural_form=NULL, boolean $use_words_for_single_digits=FALSE )

Parameters

mixed $quantity The quantity (integer) or an array of objects to count
string $singular_form The string to be returned for when $quantity = 1
string $plural_form The string to be returned for when $quantity != 1, use %d to place the quantity in the string
boolean $use_words_for_single_digits If the numbers 0 to 9 should be written out as words

::joinArray() public

Returns the passed terms joined together using rule 2 from Strunk & White's 'The Elements of Style'

Signature

string joinArray( array $strings, string $type )

Parameters

array $strings An array of strings to be joined together
string $type The type of join to perform, 'and' or 'or'

Returns

The terms joined together

::pluralize() public

Returns the plural version of a singular noun

Signature

string pluralize( string $singular_noun, boolean $return_error=FALSE )

Parameters

string $singular_noun The singular noun to pluralize
boolean $return_error If this is TRUE and the noun can't be pluralized, FALSE will be returned instead

Returns

The pluralized noun

::registerJoinArrayCallback() public

Allows replacing the joinArray() function with a user defined function

This would be most useful for changing joinArray() to work with languages other than English.

Signature

void registerJoinArrayCallback( callback $callback )

Parameters

callback $callback The function to replace joinArray() with - should accept the same parameters and return the same type

::reset() internal public

Please note: this method is public, however it is primarily intended for internal use by Flourish and will normally not be useful in site/application code

Resets the configuration of the class

Signature

void reset( )

::singularize() public

Returns the singular version of a plural noun

Signature

string singularize( string $plural_noun, boolean $return_error=FALSE )

Parameters

string $plural_noun The plural noun to singularize
boolean $return_error If this is TRUE and the noun can't be pluralized, FALSE will be returned instead

Returns

The singularized noun

::stem() public

Uses the Porter Stemming algorithm to create the stem of a word, which is useful for searching

See http://tartarus.org/~martin/PorterStemmer/ for details about the algorithm.

Signature

string stem( string $word )

Parameters

string $word The word to get the stem of

Returns

The stem of the word

::underscorize() public

Converts a camelCase, human-friendly or underscore_notation string to underscore_notation

Signature

string underscorize( string $string )

Parameters

string $string The string to convert

Returns

The converted string