for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Doctrine\Inflector\Rules;
class Ruleset
{
/** @var string[] */
private $rules = [];
private $uninflected = [];
private $irregular = [];
/**
* @param string[] $rules
* @param string[] $uninflected
* @param string[] $irregular
*/
public function __construct(array $rules, array $uninflected, array $irregular)
$this->rules = $rules;
$this->uninflected = $uninflected;
$this->irregular = $irregular;
}
* @return string[]
public function getRules() : array
return $this->rules;
public function getUninflected() : array
return $this->uninflected;
public function getIrregular() : array
return $this->irregular;
* Adds custom inflection rules.
*
* $singularRuleset->addRules(['/^(inflect)or$/i' => '\1ables']);
* $pluralRuleset->addRules([
* 'rules' => ['/^(inflect)ors$/i' => '\1ables'],
* 'uninflected' => ['dontinflectme'],
* 'irregular' => ['red' => 'redlings']
* ]);
* @param mixed[] $rules
public function addRules(array $rules) : void
if ($this->isFullSyntax($rules)) {
$this->rules = $rules['rules'] ?? $this->rules;
$this->uninflected = $rules['uninflected'] ?? $this->uninflected;
$this->irregular = $rules['irregular'] ?? $this->irregular;
} else {
private function isFullSyntax(array $rules) : bool
return isset($rules['rules']) || isset($rules['irregular']) || isset($rules['uninflected']);