families = $families; } /** * Generator method to iterate over the familes * * @return iterable */ public function get_family() { foreach ($this->families as $family) { yield $family; } } /** * Adds a new rule to a family member * * @param Rule $rule - an active rule to add to its family * @return void */ public function add_rule_to_member(Rule $rule) { $key = strtolower($rule->family); if (array_key_exists($key, $this->families)) { $this->families[$key]->add_rule($rule); } } }