%PDF- %PDF-
Direktori : /home/silvzytp/calling_code/vendor/laravel/framework/src/Illuminate/Support/ |
Current File : //home/silvzytp/calling_code/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php |
<?php namespace Illuminate\Support; use Doctrine\Inflector\InflectorFactory; class Pluralizer { /** * The cached inflector instance. * * @var static */ protected static $inflector; /** * The language that should be used by the inflector. * * @var string */ protected static $language = 'english'; /** * Uncountable non-nouns word forms. * * Contains words supported by Doctrine/Inflector/Rules/English/Uninflected.php * * @var string[] */ public static $uncountable = [ 'cattle', 'kin', 'recommended', 'related', ]; /** * Get the plural form of an English word. * * @param string $value * @param int|array|\Countable $count * @return string */ public static function plural($value, $count = 2) { if (is_countable($count)) { $count = count($count); } if ((int) abs($count) === 1 || static::uncountable($value) || preg_match('/^(.*)[A-Za-z0-9\x{0080}-\x{FFFF}]$/u', $value) == 0) { return $value; } $plural = static::inflector()->pluralize($value); return static::matchCase($plural, $value); } /** * Get the singular form of an English word. * * @param string $value * @return string */ public static function singular($value) { $singular = static::inflector()->singularize($value); return static::matchCase($singular, $value); } /** * Determine if the given value is uncountable. * * @param string $value * @return bool */ protected static function uncountable($value) { return in_array(strtolower($value), static::$uncountable); } /** * Attempt to match the case on two strings. * * @param string $value * @param string $comparison * @return string */ protected static function matchCase($value, $comparison) { $functions = ['mb_strtolower', 'mb_strtoupper', 'ucfirst', 'ucwords']; foreach ($functions as $function) { if ($function($comparison) === $comparison) { return $function($value); } } return $value; } /** * Get the inflector instance. * * @return \Doctrine\Inflector\Inflector */ public static function inflector() { if (is_null(static::$inflector)) { static::$inflector = InflectorFactory::createForLanguage(static::$language)->build(); } return static::$inflector; } /** * Specify the language that should be used by the inflector. * * @param string $language * @return void */ public static function useLanguage(string $language) { static::$language = $language; static::$inflector = null; } }