I have a class that has a list of valid keys, and an array of values. When a value is added to the array it's key is first checked against the list of valid keys (this is to prevent injection issues we have been having later on in the project).

  class parent{
    private $validkeys = 'title,color,name';
    private $values = array();
  }
That class is inherited by other classes that mostly just have an expanded list of valid keys. I would like to be able to update the valid key list without having to craft a constructor for child objects. I would rather not give each child class the constructor,

  __construct()
  {
    $this->validkeys.= ',setting,...';
    parent::__construct();
  }

since most child classes have no need of a unique constructor.

I thought of defining a protected extended valid keys variable in the parent that the child could set that the parent constructor would combine with the valid keys.

class parent{
  private $validkeys = 'title,color,name';
  private $values = array();
  protected $extendedkeys;
  __construct(){
    $this->validkeys .= $this->extendedkeys;
  }
}

But the children may become parents for further child classes. And if the sub-child classes use the $extendedkeys variable it will overwrite the intermediate class's version.

Is there any way to tack on extra additional data by the child classes without creating a constructor. I am not wedded to strings as a means, it just needs to be able to hold a string value.

Thanks

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to