Ciao. Mi rivolgo a voi per un problema OOP (sul PHP nn ce n'è molti che lavorano con le GUI...). Per voi invece è pane quotidiano.
Nelle classi per PHP-GTK mi viene eseguita solo la prima operazione matematica, le successive no!!
ESEMPIO Per spiegare il problema che mi affligge:
class.php
Codice PHP:
<?
//SUPERCLASSE
class Geo{
var $dt;//da specificare nella classe
var $Ht;//da specificare nella classe
var $Hm;//da specificare nella classe
var $Ho;//passata in argomento al costruttore
var $L; //passata in argomento al costruttore
var $lb;//passata in argomento al costruttore
var $dl;//passata in argomento al costruttore
var $nm;//passata in argomento al costruttore
function Geo($Ho,$L,$lb,$dl,$nm){
$dt = $L/2-$lb-$nm*$dl;//questa viene elaborata
$Ht = $Ho-0.10*$dt;//questa no
$Hm = $Ht+0.10*$L/2;//questa no
$this->Ho = $Ho;
$this->L = $L;
$this->lb = $lb;
$this->dl = $dl;
$this->nm = $nm;
$this->dt = $dt;
$this->Ht = $Ht;
$this->Hm = $Hm;
}
function stampa(){
echo "Dati Input"."\n";
echo $this->Ho."\n";
echo $this->L."\n";
echo $this->lb."\n";
echo $this->dl."\n";
echo $this->nm."\n";
echo "Elaborazioni"."\n";
echo $this->dt."\n";
echo $this->Ht."\n";
echo $this->Hm."\n";
}
};//END GEO
?>
operazione.php
Codice PHP:
<?
if (!class_exists('gtk')) {
if (strtoupper(substr(PHP_OS, 0,3) == 'WIN'))
dl('php_gtk.dll');
else
dl('php_gtk.so');
}
require_once('class.php');
//*****INTERFACCIA*****
//WINDOW
$window = &new GtkWindow();
$window->connect('destroy', 'destroy');
$window->set_title("Directory");
//VBOX
$vbox = &new GtkVBox();
//SERIE ENTRY & BUTTON
$Ho0 = &new GtkEntry();
$Ho0->set_text(87);
$Ho0->set_max_length(10);
$Ho0->set_usize(35,0);
$Ho0->show();
$vbox->pack_start($Ho0,true,true,5);
$L0 = &new GtkEntry();
$L0->set_text(2000);
$L0->set_max_length(10);
$L0->set_usize(35,0);
$L0->show();
$vbox->pack_start($L0,true,true,5);
$lb0 = &new GtkEntry();
$lb0->set_text(855);
$lb0->set_max_length(10);
$lb0->set_usize(35,0);
$lb0->show();
$vbox->pack_start($lb0,true,true,5);
$dl0 = &new GtkEntry();
$dl0->set_text(100);
$dl0->set_max_length(10);
$dl0->set_usize(35,0);
$dl0->show();
$vbox->pack_start($dl0,true,true,5);
$nm0 = &new GtkEntry();
$nm0->set_text(1);
$nm0->set_max_length(10);
$nm0->set_usize(35,0);
$nm0->show();
$vbox->pack_start($nm0,true,true,5);
$button = &new GtkButton("Click");
$button->connect('clicked','calcola');
$button->set_usize(105,0);
$button->show();
$vbox->pack_start($button,true,true,0);
$button = &new GtkButton("Exit");
$button->connect('clicked','destroy');
$button->set_usize(105,0);
$button->show();
$vbox->pack_start($button,true,true,0);
//ADD VBOX
$window->add($vbox);
$vbox->show();
//show_all
$window->show();
//END WINDOW & INTERFACCIA
//*****GESTIONE EVENTI*****
function destroy(){
print "Quit Directory";
Gtk::main_quit();
}
function calcola(){
global $L0;
global $Ho0;
global $lb0;
global $dl0;
global $nm0;
$L = $L0->get_text();
$Ho = $Ho0->get_text();
$lb = $lb0->get_text();
$dl = $dl0->get_text();
$nm = $nm0->get_text();
$istanza = &new Geo($Ho,$L,$lb,$dl,$nm);
$istanza->stampa();
$L0 ->set_text($L); //resetta l'ultima variabile dichiarazione di $L
$Ho0 ->set_text($Ho);
$lb0 ->set_text($lb);
$dl0 ->set_text($dl);
$nm0 ->set_text($nm);
}
//avvia il loop principale
gtk::main();
?>
Ma xkè ogn volta che converto uno script già completo e funzionate da PHP Server a PHP-GTK mi imbatto in mille problemi???
Possibile che PHP-GTK gestisca tutto in modo assolutamente opposto a PHP lato Server?
E' un problema solo del PHP-GTK che nn è ancora ottimizzato per la OOP?Sbaglio io qualcosa? In C++ si incontra un tal problema? Prima o poi dovrò passare a qualche linguaggio classico, magari proprio C++, così almeno c'è maggiore documentazione!