Morphos is open for additions and improvements.
Addition a new language is simple: create the class inheriting one of basic classes and realize implement methods.
Here is a list of basic abstract classes and their methods:
Class for names inflection.
public function isMutable($name, $gender)- Checks, whether there are rules for this name.public function getCases($name, $gender)- Generates all cases of a name.public function getCase($name, $form, $gender)- Generates one case of a name.
Class for general inflection.
public function isMutable($word, $animate = false);- Checks, whether there are rules for this word.public function getCases($word, $animate = false);- Generates all cases of a word.public function getCase($word, $form, $animate = false);- Generates one case of a word.
Class for numerals generation.
public function getCases($number)- Generates all cases for a number.public function getCase($number, $case)- Generates one case for a number.
Class for spelling out money amounts.
public function spell($value, $currency)- Spells money amount in natural language.
Class for spelling out date intervals and time units.
public function spellUnit($count, $unit)- Spells time unit in natural language.public function spellInterval(DateInterval $interval)- Spells date interval in natural language.
Morphos distributed with a string helper that supports multibyte encodings. Class is morphos\S.
It has following static methods:
S::setEncoding($enc)- Sets encoding for using in all functions. By default, utf-8 is used.S::length($string)- Calculates count of characters in string.S::slice($string, $start, $end = null)- Slices string like "[:]" in python.S::lower($string)- Convert to lower case.S::upper($string)- Convert to upper case.S::name($string)- Convert to name case. (ex: Thomas Lewis)S::countChars($string, array $chars)- Count of any of chars.S::findLastPositionForOneOfChars($string, array $chars)- Finds last position for one of chars.S::indexOf($string, $substring, $caseSensetive = false, $startOffset = 0)- Finds first position of substring in a string.