Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    [Pillola]Prado ovvero Php.Net(1a parte)

    Attenzione: cambiamento dalla versione 1.6 alla 2.0.1

    per la versione attuale del framework i file corretti
    sono i seguenti:
    il file examples/login.php

    Codice PHP:
    <?php
    require_once('../framework/prado.php');
    pradoGetApplication('login/login.spec')->run();
    ?>
    il file examples/login/login.spec

    Codice PHP:
    <?xml version="1.0" encoding="UTF-8"?>
    <application ID="Login">
       <request default="Login" />
       <alias name="Pages" path="." />
       <using namespace="System.Web.UI.WebControls" />
       <using namespace="Pages" />
    </application>
    scusate per l'inconveniente


    Innanzitutto e' sbagliato definire prado php.net, poiche' Questa non e' l'implementazione
    per il framework di microsoft, ma bensi un framework per php5 che permette di programmare
    in maniera simile a chi programma gia' in asp.net.
    Prado e' un framework per PHP5 ,in questa pillola trattero la versione 1.6 che e' quella che ho io,
    e' probabile che esistano versioni piu' recenti della libreria.
    [infatti adesso esiste la 2.0.1 al sito http://www.xisc.com/download/ ]
    Installiamo Prado:
    scarichiamo il file l'archivio compresso e decomprimiamolo nella DocumentRoot del nostro WebServer,
    dovrebbe generarsi la nuova cartella Prado
    (per chi utilizza Wamp e' sotto Wamp/www ,Invece i linuxiani non dovrebbero aver problema a trovare la DocumentRoot
    di Apache probabilmente /var/www) ora proviamo a vedere se il nostro sistema supporta prado:
    puntiamo firefox [o chi per lui] all' indirizzo http://localhost/prado/requirements.php
    dovremo vedere qualcosa di simile
    codice:
    PRADO REQUIREMENTS CHECKER $Revision: 1.1 $  $Date: 2004/10/25 02:36:40 $
    --------------------------------------------------------------
    
    
    * phpversion > 3..........................................[ok]
    
    * phpversion > 5..........................................[ok]
    
    * SPL Module exists.......................................[ok]
    
    * SimpleXML Module exists.................................[ok]
    
    * Clone Objects check.....................................[ok]
    
    --------------------------------------------------------------
    * Fix all the blocking requirements.
    * Fix all the musthave requirements.
    * Try to fix all the shouldhave requirements.
    
    Finished!
    Perfetto! il nostro Sistema e' Prado-compatibile,ora possiamo iniziare a sviluppare qualcosa.

    volendo si puo' dare un occhiata agli esempi gia' forniti :
    ricordo che si puo' accedervi puntando il browser a http://localhost/prado
    dove e' linkata anche la documentazione.
    Iniziamo con un po di concetti (tratti direttamente dal tutorial fornito)

    Componenti:
    i componenti sono tutti quelle classi che discendono da TComponent o da un suo discendente,
    un componente si caratterizza per il fatto che ha proprieta' che lo definiscono ed eventi associati
    normalmente un componente viene definito in due file, un file .php con lo stesso nome del componente,che contiene
    la logica del componente stesso, e se la classe ha nuovi eventi o proprieta
    un file .spec in formato XML per definirle,anch' esso avra' lo stesso nome del componente.
    e gli eventi del componente, questo file e' in formato XML.

    Controlli:
    un controllo non e' nient' altro che un componente con assegnatogli un interfaccia ,ogni controllo ha
    un padre e diversi figli,tranne page che non ha padre
    i legami padre-figlio vengono stabiliti da un template, che non e' altro che una pagina Html con
    all'interno dei Tag Particolari(esattamente come in ASP.NET)
    i template avranno un estensione .tpl e si chiameranno come il componente associato.

    un componente puo' venir istaniziato direttamente nel template adottando questa sintassi:
    codice:
     <com:NomeComponente ID="MioID123_" Proprieta="..." Evento="...">
        ....contenuto....
     </com:NomeComponente>
    dove NomeComponente,MioID123_,Proprieta e Evento verranno sostituiti con i valori opportuni.
    oppure puo venir istanziato via codice, con l'apposita funzione TApplication::createComponent($NomeComponente).

    Cominciamo a sviluppare qualcosa; per iniziare direi di partire da un componente semplice,
    assemblato tanto per capire il funzionamento del framework;
    il primo esempio sara' una pagina di login, con una textbox,un bottone e una label..
    iniziamo con il sviluppare il nostro template:

    codice:
    <html>
    <head>
    <title>Log IN!</title>
    </head>
    <body>
    
    
    
    	<h3 style="display:inline;"><center><font color="#96c0dc">Login Page</font></center></h3>
    </p>
    <com:TForm ID="mioForm">
    <center>
    	<com:TPanel ID="Panel1" Style="border:1px silver solid;background-color:#ececec;width:80%;height:80px;">
    	
    
    
    		<com:TTextBox ID="miaPass" TextMode="Password" />
    		<com:TButton Text="Convalida" OnClick="convalida" />
    		<com:TLabel ID="Label1"></com:TLabel>
    	</p>
    	</com:TPanel>
    </center>
    </com:TForm>
    
    </body>
    </html>
    come potete vedere e' una semplice pagina con alcuni tag speciali che cominciano per com:
    qui troviamo TForm,TPanel,TTextbox,TButton,TLabel come potete vedere ho assegnato a ciascuno un ID per
    poter accerdervi poi via codice, se usate Javascript la procedura vi sembrera' simile;
    [da notare che il bottone richiama una funzione convalida che dopo dovremo implementare]
    creiamo quindi una directory login sotto prado/examples,salviamo con il nome prado/examples/login/login.tpl

    poi creiamo un file .spec ,ispiriamoci a quello di examples/helloworld e scriviamo:
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <application default-page="login" cache-path="">
        <alias name="Pages" path="." />
        <using namespace="System.Web.UI.WebControls" />
        <using namespace="Pages" />
    </application>
    salviamolo in prado/examples/login/login.spec
    senza entrare troppo nello specifico questo file che abbiamo appena creato non sarebbe necessario,
    visto che non abbiamo dichiarato metodi o attributi, ma in esso abbiamo messo le direttive using che
    caricano i giusti namespace.

    ora passiamo al codice php vero e proprio, creiamo il file prado/examples/login/login.php
    e scriviamoci il suddetto codice:
    Codice PHP:
    <?php
    //Creiamo una nuova classe per il nostro componente

    class login extends TPage
    {

    //implementiamo la funzione convalida
        
    function convalida($sender,$param)//$sender e $param sono due parametri che vengono passati a tutti gli eventi
        
    {
            
    //Se la Password inserita e' "pippo"
            
    if($this->mioForm->Panel1->miaPass->getText()=="pippo"){
                
    $this->mioForm->Panel1->Label1->setText("OK!");        //scrivi OK!
                
    $this->mioForm->Panel1->Label1->setForeColor("green");    //di verde
            
    }else{
                
    $this->mioForm->Panel1->Label1->setText("PassWord Errata!"); //dai un messaggio d'errore
                
    $this->mioForm->Panel1->Label1->setForeColor("red");        //rosso!
            
    }
        }
    }


    ?>
    bene! il nostro componente e' pronto! non resta altro che richiamarlo in una pagina php
    creiamo la pagina prado/examples/login.php [e scopiazziamo da helloworld],
    il codice sara':
    Codice PHP:
    <?php

    require_once(dirname(__FILE__).'/../framework/TApplication.php');
    $app=TApplication::getInstance('login/login.spec');
    $app->run();

    ?>
    vi sembra troppo complicato per una semplice operazione come questa?
    vi sembra di aver perso tempo fino ad adesso per aver letto queste righe per niente?
    vi sentite un po Guidoz?
    continuate a leggere e non ve ne pentirete..ora proviamo ad estemdere il componente, per esempio visualizzando
    la data in alto a destra, e validando il controllo in maniera tale per cui sia indispensabile inserire
    la password altrimenti si generera' un errore.

    modifichiamo quindi il tenplate
    codice:
    <html>
    <head>
    <title>Log IN!</title>
    </head>
    <body>
    <div align="right"><%= date('Y-M-d',time()) %></div>
    
    
    <h3 style="display:inline;"><center><font color="#96c0dc">Login Page</font></center></h3></p>
    <com:TForm ID="mioForm"><center>
    <com:TPanel ID="Panel1" Style="border:1px silver solid;background-color:#ececec;width:80%;height:80px;">
    
    
    
    <com:TTextBox ID="miaPass" TextMode="Password" />
    <com:TButton Text="Convalida" OnClick="convalida" />
    <com:TLabel ID="Label1"></com:TLabel>
    
    <com:TRequiredFieldValidator
          ControlToValidate="miaPass"
          ErrorMessage="Devi inserire una PassWord!" />
    </p>
    </com:TPanel></center>
    </com:TForm>
    
    </body>
    </html>
    Fatto! provate ad rieseguire il codice e noterete le differenze, il codice in neretto e' quello che ho aggiunto
    in particolar modo con <%= %> si puo' inserire un espressione php da valutare, mentre tra i short tag <% %> si puo' scrivere vario codice php direttamente all'interno del template
    e il RequiedFieldValidator evitiamo di scrivere righe e righe di codice in javascript per eseguire una funzione classica,
    bene la pillola sta' diventando un po' lunghina, se piacera' magari ci sara' una secona parte dove spieghero'
    il concetto di postback e vedremo con quale semplicita' si puo' gestire un htmlarea.
    per ora rimando alla documentazione fornita col framework,dove c'e' la descrizione di tutti i componenti,
    raccomando soprattutto la lettura del pdf che spiega molte cose.
    inoltre ho appena visto un tool (tale pm-1.0) per la creazione dei componenti alla pagina download, non ho ancora avuto occasione di provarlo, ma di certo semplifichera' un bel po la vita..

    Arrivedervelo!

  2. #2
    molto interessante e complimenti .

    Riguardo l' output generato in automatico ( js e html o xhtml ) , validatori W3 e accessibilita' WCAG , come e' messo prado ?

    Prado deve essere per forza residente anche sul server o c'e' un modo per generare pagine .php autosufficienti senza dover "sprecare" spazio ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    [supersaibal]Originariamente inviato da andr3a
    molto interessante e complimenti .

    Riguardo l' output generato in automatico ( js e html o xhtml ) , validatori W3 e accessibilita' WCAG , come e' messo prado ?

    Prado deve essere per forza residente anche sul server o c'e' un modo per generare pagine .php autosufficienti senza dover "sprecare" spazio ? [/supersaibal]
    si basa su xml, quindi credo generi una pagina xhtml, ma non sono sicuro al 100%
    (devo ancora vedere le innovazioni della versione 2.0 ), usa un template engine interno tipo smarty, che bufferizza tutto, e invia al browser dati compressi, cosi' non si perde tanto tempo.
    la versione che ho io usa un componente non standard che e' l' HtmlArea,
    quindi e' possibile generare pagine ibride,
    funzica su linux e su windows .

  4. #4
    le pagine generate rispettano il W3 e il WCAG ?

    almeno la 508 come zope ?


    .net e tutto l' ambaradan del framewokr genera porcate assolute, da quel poco che ho visto ... pagine non sempre crossbrowser, invalidabili per qualunque tipo di output W3C e soprattutto inaccessibili ... siccome penso che l' unico modo sia conoscere questi standards e scriversi i timplates ( e le procedure ) a mano, vorrei sapere se Prado puo' smentire questa mia convinzione oppure no
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    [supersaibal]Originariamente inviato da andr3a
    le pagine generate rispettano il W3 e il WCAG ?

    almeno la 508 come zope ?


    .net e tutto l' ambaradan del framewokr genera porcate assolute, da quel poco che ho visto ... pagine non sempre crossbrowser, invalidabili per qualunque tipo di output W3C e soprattutto inaccessibili ... siccome penso che l' unico modo sia conoscere questi standards e scriversi i timplates ( e le procedure ) a mano, vorrei sapere se Prado puo' smentire questa mia convinzione oppure no [/supersaibal]
    halt!, la versione 2.0 del framework .net e di VS 2005 permette di scrivere pagine standard HTML 4.01 e XHTML

    prado non c' entra assolutamente nulla con microsoft, e da quel che ho provato si puo' generare pagine validabili, ma
    e' anche possibile utilizzare componenti JS che rendono la pagina non validata, insomma spetta al programmatore usare la testa..

  6. #6
    [supersaibal]Originariamente inviato da kentaromiura
    halt!, la versione 2.0 del framework .net e di VS 2005 permette di scrivere pagine standard HTML 4.01 e XHTML
    [/supersaibal]
    vorrei un esempio navigabile di pagina validabile fatta in VS 2005




    [supersaibal]Originariamente inviato da kentaromiura
    prado non c' entra assolutamente nulla con microsoft, e da quel che ho provato si puo' generare pagine validabili, ma
    e' anche possibile utilizzare componenti JS che rendono la pagina non validata, insomma spetta al programmatore usare la testa.. [/supersaibal]
    JS con il W3 non c'entra niente, casomai con il WAI ( WCAG ) ... ma a prescindere che non c'entra niente con M$, ovviamente, e' Prado in grado di fare , oltre che XHTML, pagine accessibili ???

    Ti spiego il perche' del mio dubbio, il WAI andrebbe rispettato per legge da tutte le P.A. ( pubbliche amministrazioni ) e siccome usare un framework per sviluppare sitarelli ridicoli mi sembra eccessivo per peso e prestazioni generali, mi domando se valga veramente la pena sviluppare sotto questo tipo di piattaforme, che per progetti consistenti ( tipo quelli per le P.A. , ad esempio ) sarebbero una manna dal cielo .

    Ma penso, anzi sono sicuro, che gli standards di accessibilita' vengano tranquillamente messi da parte a favore di una logicistica autogenerante semplice e "snella"
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    [supersaibal]Originariamente inviato da andr3a
    vorrei un esempio navigabile di pagina validabile fatta in VS 2005
    [/supersaibal]
    con VS 2005 basta settare il TargetSchema su Html 4.01 oppure su XHTML e ottieni pagine solo per quello schema, l'intellisense si adatta e ti suggerisce solo funzioni e proprietà incorporate in quel tipo di schema-

    per prado, purtroppo esistono componenti che rendono la pagina non validabile, come ad esempio il Validator di cui sopra,
    ma e' possibile crearsi i propri componenti, in quelli l'Html lo controlli tu e quindi e' possibile generare pagine validate xhtml o w3c ecc, naturalmente e' vero anche il contrario;
    sono d' accordo con te che la possibilità di avere la validazione w3c e' importante, ma avere la possibilità di poter usare qualcosa di "Non Standard", non e' una pecca, anzi
    naturalmente dipende dal programmatore valutare tutti i casi e prendere la miglior soluzione possibile, evitando tutti i componenti non standard, controllero sul loro forum per vedere meglio se ne parlano..

  8. #8
    il fatto e' che si parla tanto di buttare via dreamweaver e frontpage quando questi mega frameworks non e' che fanno poi cosi' tanto di diverso
    ( nel caso dell' output ma un po' anche nel caso della programmazione vera e propria )

    a meno che uno i components non se li crea, come hai detto giustamente ... quelli di default sono modificabili, spero :master:
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    [supersaibal]Originariamente inviato da andr3a
    il fatto e' che si parla tanto di buttare via dreamweaver e frontpage quando questi mega frameworks non e' che fanno poi cosi' tanto di diverso
    ( nel caso dell' output ma un po' anche nel caso della programmazione vera e propria )

    a meno che uno i components non se li crea, come hai detto giustamente ... quelli di default sono modificabili, spero :master: [/supersaibal]
    certo, hai tutto il codice sorgente del FrameWork
    e funziona tutto secondo la logica descritta sopra..
    comunque,per rispondere a una tua domanda sopra, credo
    sia possibile allegare solo i componenti realmente utilizzati dalla nostra applicazione, esempio, se non usi l'htmlarea puoi cancellare tranquillamente tutti i file di essa,(che per altro essendo un componente esterno e' su una directory a parte)
    inoltre credo ci sia una lista dei componenti standard, devo
    solo trovare il tempo per controllare dove..


    comunque il nuovo Vs ha fatto passi da gigante in questo senso..
    addirittura in un webcast di microsoft, un programmatore loro, che mostrava la beta di vs ha detto per far vedere come l'intellisense si adattava allo schema,
    "si puo selezionare uno schema standard come html 4.01 o xhtml,oppure e' possibile selezionare uno schema di un browser non standard ,ad esempio ie 3

  10. #10
    Ciao, bello bello bello!

    Prado merita veramente di essere conosciuto, secondo me sarà il framework di riferimento quando PHP5 prenderà piede
    per favore NIENTE PVT TECNICI da sconosciuti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.