Come non mischiare HTML con PHP?

4

Ho creato un'applicazione in EXTJS, ma il mio architetto tecnico e project manager dicono che non vogliamo file di grandi dimensioni, quindi abbiamo rimosso EXTJS e realizzato in codice PHP e JavaScript orientato agli oggetti, mescolando HTML con PHP.

Ma non voglio mescolare HTML e PHP a causa della cattiva struttura di codifica e della cattiva pratica di codifica.

Che cosa dovrei fare?

    
posta WebDev 25.03.2011 - 09:27
fonte

5 risposte

2

Devi sempre mescolare HTML e PHP. Altrimenti, come recupererai i dati dinamici?

Ecco come lo faccio. Supponiamo che questo sia il file index.php:

<?php
  include_once('some.file.php'); // Here you have general functions, classes etc. 
  $result = getSomeResult();
?>

<html>
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js?ver=1.4.3"type="text/javascript"></script>
  <script src="js/some_js_script.js"  type="text/javascript"></script>
</head>
<body>
  Let's output some data gotten from PHP: <br />
  <? echo $result;?>
</body>
</html>

Ora, supponiamo che i dati del risultato siano una casella di testo con un pulsante. Facendo clic su questo pulsante, si attiva una chiamata JSON o EXTJS. Questa chiamata caricherà altri dati in base ai parametri che hai passato. Chiamiamo questo file java.js:

jQuery('#button').click(function(){
        jQuery.post("http://yoursite.com/include/jquery.php", { var1: 'some value', var2 : 'some more value'},
        function(data)
        {
            jQuery('#text_box').html("new content: " + data);
        },"json");  
});

E come dice Evan, carica le librerie da Google piuttosto che dal server locale. Ciò velocizzerà i tempi di caricamento.

Dovresti anche dare un'occhiata a Wordpress se hai bisogno di usare un CMS / templates.

    
risposta data 25.03.2011 - 11:33
fonte
3

Sembra che tu stia cercando motori di template , che ti consente di avere PHP e HTML, essendo in grado di modificarne uno senza modificarne un altro.

    
risposta data 25.03.2011 - 10:28
fonte
1

Potresti creare il php separatamente e solo require xxxxx.php e inserire il codice HTML solo con alcune chiamate di funzione qua e là

<html>
<head>....</head>
<body>
  some text<hr>
  <? callPosts(); ?>
  <hr>more text
</body>
</html>

In realtà non è male combinare un po 'di PHP, specialmente su siti più semplici. Puoi controllare NOLOH , è abbastanza leggero. Quindi non si scherza con l'HTML e probabilmente possono ancora ottenere il risultato desiderato.

    
risposta data 25.03.2011 - 09:41
fonte
1

Utilizza l'API Google Libraries per caricare ExtJS

Non hai bisogno di ospitare librerie come ExtJS o jQuery perché Google farà al caso tuo.

Il vantaggio di questo sono:

  • Molti siti usano questo servizio così, quando la tua pagina richiede la libreria, è probabile che sia già presente nella webcache sul computer client

  • Poiché la libreria è ospitata su un dominio diverso da quello su cui si trova il tuo sito, il browser assegnerà un altro spazio di download aggiuntivo (IE ha un massimo di 2 slot per dominio se ricordo). Ciò significa che non si ottiene praticamente nessuna prestazione degradata durante i carichi di pagina (tranne l'utilizzo della larghezza di banda generale) quando si utilizzano librerie come ExtJS e jQuery.

  • Non hai più bisogno di ospitare la libreria sui tuoi server (che sconfigge l'argomento degli architetti)

Le probabilità sono ... se il tuo responsabile tecnico è preoccupato per la dimensione aggiuntiva di extjs probabilmente non sa molto sull'ottimizzazione del sito Web per le prestazioni poiché l'utilizzo di librerie di Google per ospitare API comuni per lo sviluppo web è piuttosto comune . A questo punto, qualsiasi architetto competente di webapp dovrebbe saperlo.

Aggiornamento:

Per indicazioni su come utilizzare l'API, leggi prima questo .

    
risposta data 25.03.2011 - 10:03
fonte
0

ExtJS, jQuery, codice Javascript ecc. dovrebbero essere nei loro file. Quello che faccio è creare HTML con un pacchetto di modelli come Smarty. I dati vengono passati tra PHP ed ExtJS tramite classe ajax inviando i dati normalmente in formato JSON (anche se puoi usare XML se vuoi).

    
risposta data 25.03.2011 - 10:30
fonte

Leggi altre domande sui tag