Ciao,
stò cercando di modificare alcune cose in un mio script.
In pratica cerco un modo migliore di programmare l sito e una maggiore separazione tra php ed html.

Fino ad ora ho sempre fatto cosi:

Pagina form.html:
codice:
				
<form id="form" name="$nomeform" method="post" action="$pagina_go_form?option=$optionform&action=$actionform$form_id_to_update" enctype="multipart/form-data">
	<label classe="classe">Label</label>
	<input class="classe" name="titolo_pagina" id="titolo_pagina" value="$value_titolo_pagina" type="text" title="Titolo pagina" />


	<label classe="classe">Corpo della pagina</label>
	<textarea class="class" id="corpo_pagina" name="corpo_pagina" title="Corpo pagina">$value_corpo_pagina</textarea>

...
Le variabili che vedete annidate nel codice html vengono convertite nel rispettivo valore per cui non preoccupatevi di quello.

Questa pagina viene inclusa nel sito tramite la funzione get_template(f'orm.html'); nella pagina php.

Adesso, vorrei evitare di rendere fisso il form nel template e ho creato delle funzioni che creano il form direttamente nella pagina php, cosa che ho visto fare a molti programmatori.

funzioni.php
Codice PHP:
function setForm($array)
{
    global 
$config;
    
    
$numargs func_num_args();
    
$input '';
    
    while(list(
$key,$value) = each($array))
    {
        
$input .= "$key=\"$value\" ";
    }
    
    
$input '<form ' $input '>';
    
$arg func_get_args();
    for(
$n 1$n $numargs$n++)
    {
        
$input .= $arg[$n];    
    }
    
    
$input .= '</form>';
    
    return 
$input
}

function 
setTextInput($array)
{
    global 
$config;
    
    
$input '';
    while(list(
$key,$value) = each($array))
    {
        
$input .= "$key=\"$value\" ";
    }
    
    
$input '<input ' $input '/>';
    return 
$input;

Queste funzioni vengono adoperate in questo modo

form.php
Codice PHP:
echo setForm
(
    array(
'name'=>'nomeform','method'=>'post','action'=>'form.php'),
    
    
# campo input con label
    
setLabel
    
(
        
'valoreid','classlabel',
        
setTextInput
        
(
            array(
'type'=>'text','class'=>'classe','name'=>'nome','value'=>'valore',
                
'title'=>'titolo','ddv-required'=>'true','id'=>'valoreid')
        )
        ,
'valorelabel: '
    
),
    
    
# campo input con label
    
setLabel
    
(
        
'valorid','classlbel',
        
setTextInput
        
(
            array(
'type'=>'text','class'=>'classe','name'=>'nome','value'=>'valore',
                
'title'=>'titolo','ddv-required'=>'true','id'=>'valorid')
        )
        ,
'valorlabel: '
    
),
    
    
# campo input con label
    
setLabel
    
(
        
'valorid','classlbel',
        
setTextInput
        
(
            array(
'type'=>'text','class'=>'classe','name'=>'nome','value'=>'valore',
                
'title'=>'titolo','ddv-required'=>'true','id'=>'valorid')
        )
        ,
'valorlabel: '
    
),
    
    
'<input type="submit" value="Invia"'
); 
La mia domanda è:
Secondo il parere di persone più esperte, questo modo di fare migliora o peggiora lo script?

Considerando che il form non deve poter essere modificato dal template, ma deve essere uguale anche se si cambia template al sito è corretto usare questo tipo di funzioni o un semplice echo del form pronto sarebbe stato meglio?
Inoltre dato che alcuni dati che adesso vedete serviti alle funzioni saranno dinamici e che con dei cicli si possono creare dei form più grandi e completi, ritenete questa soluzione valida?

Grazie