ciao.
Volevo sapere come creare in un sol colpo 2 oggetti, uno php e l'altro javascript esattamente identici.
Non vorrei tanto discutere il perche e il percome, ma ho necessità di fare questo. Siccome la soluzione che ho trovato mi reca sempre qualche perplessità, proprio a livello di buon codice...volevo chiedere se ci sono soluzioni piu adatte o se puo bastare il mio lavoro.
Supponete di dover gestire un albero tipo esplora risorse , avremo un nodo principale, nel mio caso network, delle cartelle, nel mio caso connection e dei file, nel mio caso session.
Le relazioni tra essi sono network <1---*> connection<1-------*>
mi sono quindi creato le tre classi sia in js che in php : Network, Connection, Session , ognuna con i suoi attributi e metodi.
Ora in un sol colpo vado a creare questo oggettone chiamato Network. Il fatto e' che ho inserito il javascript nel php poiche sono costretto a ottenere alcune informazioni strettamente da php. E' per questo che non vengono creati separatamente, tutti gli attributi vengono settati con valori restituiti da chiamate php a un demone C. Questo a noi non interessa piu di fatto, solo che ci dobbiamo rassegnare a valorizzare le variabili javascript che diventeranno attributi dell'oggetto js con i risultati di alcune funzioni php che interrogano il demone.
Passiamo ora al codice :
Codice PHP:
//creo connessioni che poi aggiungero' alla network
<?php
$conn1 = new Connection();
$conn1->setId('0011');
$conn2 = new Connection();
$conn2->setId(6545);
$conn3 = new Connection();
$conn3->setId(7887);
//creo l'oggetto network e aggiungo le connessioni
$net = new Network();
$net->addConnection($conn1);
$net->addConnection($conn2);
$net->addConnection($conn3);
$totConn= $net->countConn();
$connections = $net->getConnections();
?>
<script language="javascript">
//QUESTA E' LA COSA CHE VORREI SAPERE
//qui creo parallelamente la network javscript
network = new Network();
network.addConnection('1');
network.addConnection('2');
network.addConnection('3');
</script>
<?php
for($i=0;$i<$totConn->size();$i++){
$conn = $connections->elementAt($i);
$id_conn = $conn->getId();
?>
<script language="javascript">
connection= new Connections();
//ANCHE QUESTO NON MI CONVINCE
// setto ID dell'oggetto js connection passandogli valori presi da php
connection->setId('<?php echo $id_conn; ?>');
</script>
<?php
Ho stretto al minimo il codice perche rischierei di farvi confusione , ho anche omesso le chiamate al demone C# poiche inutili al mio scopo. Ho quindi creato prima delle connessioni valorizzandone l'attributo id all'inizio e ho saltato il ramo sessioni, tanto la cosa e' ricorsiva. Analizzimo dunque solo il codice Network <-> Connection
Potete dirmi se e' ammissibile una tale scelta di codice o se ci sono altri metodi.