Pratica di codifica PHP [chiusa]

2

Sono un programmatore PHP autodidatta. Poiché non ho una formazione formale in PHP, spesso trovo che il mio stile di codifica sia molto diverso dal codice di esempio che trovo su Internet. Ho lentamente iniziato ad adattare alcune delle pratiche più comuni che trovo. Tuttavia, prima di cambiare le mie abitudini, cerco di trovare una buona ragione per usare il nuovo stile. Solo non vedo molte ragioni per cambiare la mia abitudine se non è effettivamente vantaggiosa.

Vedo un sacco di persone scrivere codice PHP come:

<h1><?php echo $cTitle; ?></h1>
<div><?php print $cContent; ?></div>

Mentre generalmente scrivo:

<?php
    echo "<h1>", $cTitle, "</h1>";
    print("<div>" . $cContent . "</div>");

Quello che sto vedendo è che le persone stanno comunemente entrando ed escono da PHP, mentre userò semplicemente PHP per stampare / echo il contenuto html insieme alle variabili PHP.

C'è una differenza misurabile tra questi due metodi? C'è una buona ragione per cambiare i miei modi?

    
posta DragonYen 03.04.2014 - 18:50
fonte

3 risposte

4

Non sono un fan affatto di incorporare PHP all'interno di HTML (come il tuo primo esempio). Questo rende solo un enorme casino di cose e rende difficile separare il codice dal display. Alcuni sistemi sono configurati per utilizzare PHP come motore di template, quindi non è possibile evitarlo all'interno delle viste. Ma nei sistemi che costruisco da zero, non faccio mai il primo e non faccio molto il secondo dei tuoi esempi, preferendo usare i template.

Quindi in sostanza, no, non andare a cambiare. Ricorda, una grossa parte del codice PHP che vedi online deriva da tutorial molto vecchi che risalivano ai giorni in cui un file php = una pagina o da persone che avevano imparato PHP da detti tutorial.

    
risposta data 03.04.2014 - 19:02
fonte
2

Il motivo per cui molti esempi di template HTML sono probabilmente dovuti a un flusso di lavoro basato sull'apparenza.

vale a dire. Si inizia codificando una pagina HTML che "sembra giusta" quindi aggiungere gli elementi php successivi in seguito.

Funziona bene se si segue anche un pattern Model View Controller classico - in pratica si esegue tutta la logica aziendale in php prima di richiamare il modello che dovrebbe avere un codice php minimo consistente principalmente nella semplice sostituzione dei valori precedentemente calcolati.

    
risposta data 04.04.2014 - 03:16
fonte
0

I template sono sempre di merda alla fine, sono tutti HTML che viene modificato per funzionare nel sistema:

<h1><?php echo $cTitle; ?></h1>
echo "<h1>", $cTitle, "</h1>";
print("<div>" . $cContent . "</div>");
<h1>{{cTitle}}</h1>
<h1 data-content="cTitle"></h1>

eccetera eccetera.

Alla fine qualcosa deve essere identificato come il luogo in cui dovresti mettere il contenuto. Niente da fare al riguardo. Quindi cosa è meglio? Nessuno di loro, è una questione di dettagli e una questione di gusti e dipende dal tuo progetto. Penso che i template siano una delle più vecchie discussioni attive tra gli sviluppatori di php senza alcuna risposta.

C'è un'altra ragione per cui non esiste una soluzione, è la separazione delle preoccupazioni. La vista (se usi MVC o qualcosa del genere) è il punto in cui definisci quale contenuto può arrivare da qualche parte. Questo perché, ad esempio, il controller non lo sa. C'è anche una ragione per questo: Il controller ha una scelta, vi darà un semplice esempio ora, ma nel mondo reale ci potrebbe essere un HTML e una vista XML:

//HTML:
<h1><?=$cTitle;?></h1>

//XML:
<xml>
  <title><?=$cTitle;?></title>
</xml>

Quindi, devi farlo da qualche parte. Non ci sono altre opzioni reali disponibili. Se davvero non vuoi i modelli con i tag, puoi dividere il livello di visualizzazione in 2 livelli separati che potrebbero dare, ad esempio:

//template (a new layer below the view)
<h1>This is a demo title</h1>

//view code
$this->h1($cTitle);

Quindi potresti usare qualcosa come uno stile jQuery per trovare i tag giusti per assegnare il contenuto. In questo modo è possibile utilizzare un design HTML statico e riempire gli spazi vuoti anche se si interromperà ancora quando qualcuno cambia il formato del modello.

Quindi, alla fine, sì, abbiamo ancora bisogno di qualche tipo di tag all'interno dei modelli per rendere le cose davvero funzionali.

Non molto pertinente come risposta ma informativo: quando lavori con molti sviluppatori ci sono sempre preferenze sui template. Alla fine abbiamo deciso di andare per PHP nei template con lo sviluppatore lasciando scegliere il loro modo preferito. Se fanno eco o incorporano i tag php non fa molta differenza. Chiunque abbia una buona conoscenza di PHP può leggerli entrambi. Quindi c'è un po 'di libertà ma è chiaro quali opzioni scegliere. Alla fine non fa molta differenza con gli sviluppatori esperti finché il lavoro viene svolto bene e strutturato.

    
risposta data 04.04.2014 - 00:53
fonte

Leggi altre domande sui tag