Cita: Es más limpio a mi parecer la segunda opción ya que así no tienes que contaminar la clase cForm con tareas que no son de la clase (recuerda principio de polimorfismo).
Si veo lo que me dices de contaminar la clase cForm pero me dejas un poco contrariado con la coletilla del polimorfismo ya que es en la primera opción donde precisamente estoy haciendo polimorfismo (o eso creo), mientras que en la segunda simplemente estoy enlazando los campos y la "configuración" del campo la hago por fuera del formulario.
Vuelvo a poner el código de la primera opción con unos pequeños cambios.
Código PHP:
Class cForm
{
private $Campos = array();
public function CrearCampo ($Tipo, $Nombre)
{
$this->Campos[$Nombre] = new $Tipo ($Nombre);
}
public function DarValorCampo ($Nombre, $Valor)
{
$this->Campos[$Nombre]->SetValor = $Valor;
}
}
$Form = new cForm ("MiFormulario");
$Form->CrearCampo ("Textarea", "MiTextarea");
$Form->DarValorCampo ("MiTextarea", "BlaBlaBla")
Cita: También puedes tener un método init() y heredar la clase y así en el método init de las subclases crear y atar los elementos que necesites.
Esto se escapa a mis conocimientos actuales
, ¿me puedes pasar alguna referencia o poner algún ejemplo?
Gracias!