Sviluppa un sito web usando mustache.js e PHP [chiuso]

-2

Sto pensando di creare un sito web usando mustache.js per rendere il sito Web e avere PHP come back-end. Il PHP quindi conterrà principalmente query al database e alcuni controlli SESSION.

In precedenza ho usato semplicemente PHP per rendere il frontend, ma diventa troppo disordinato.

Un esempio di ciò che sto pensando:

File HTML

<html>
    <head>
        <script>
           $.ajax{
               url: "path/to/file.php",
               ...
               success: function(response){
                   var template = $('#template').html();
                   var rendered = Mustache.render(template, response)
                   $('#template').html(rendered);
               }
           }
        </script>
    </head>
    <body>
        <p id="template">Your favourite website is {{website}}</p>
    </body>
</html>

File PHP

<?php
    function getWebsite($userid){
        $mysqli = (...);
        $stmt = $mysqli -> prepare("SELECT name FROM websites WHERE userId = ?");
        $stmt -> bind_param("i", $userId);
        $stmt -> execute();
        ...
        ...
        echo json_encode($results);
    }
?>

Questa è una buona struttura o sarà ancora disordinata? Sarà più lento?

    
posta Oskar Persson 06.05.2014 - 22:56
fonte

1 risposta

2

Hai davvero bisogno di fornire qualche informazione in più per consigliare qualsiasi consiglio, ma cercherò di rispondere in un modo generale.

Questo, in qualche modo, fornisce una separazione piuttosto logica della logica. Tuttavia ci sarà un po 'di overhead nel modo di richieste HTTP - e potenzialmente alcuni trabocchetti per quanto riguarda il debug.

I principali problemi che mi vengono in mente sono:

Richieste HTTP

Per ogni pagina ci sarà una richiesta HTTP aggiuntiva, essenzialmente una per il modello (il file .html ) e una per il contenuto (il carico di lavoro json ).

Operazioni JS

Questo introdurrà un onere positivo per quanto riguarda le operazioni lato client. Ad esempio, solo per visualizzare una "pagina" hai bisogno di fare una richiesta AJAX, analizzare la risposta JSON e il modello associato e quindi iniettare questo nel DOM. Anche se non il più pesante, probabilmente nemmeno essenziale.

Accessibilità

Se, per qualsiasi motivo, Javascript non è abilitato: i tuoi spettatori sono bloccati.

Manutenzione

Questo potrebbe non sembrare un grosso problema al momento, ma dato il tempo potrebbe benissimo diventarne uno.

Il tuo vero problema

Tuttavia, dalla lettura del tuo post sembra che tu abbia dimestichezza con PHP e l'hai già utilizzato inline in precedenza. In tal caso, utilizzare un motore di template sul lato server! C'è anche un porto di Moustache, Moustache.php ! Un altro da considerare potrebbe essere Smarty . Ce ne sono alcuni tra cui scegliere.

Ciò che sembra davvero esprimere è il desiderio di utilizzare la vista strutturata < vista . Un parente di ciò che molti framework PHP MVC ti offrono: a seconda della complessità del tuo progetto, l'utilizzo di un framework può essere una buona soluzione.

Ci sono molti framework tra cui scegliere, ma personalmente ho esperienza con Yii , Laravel e CodeIgniter . CodeIgniter è probabilmente il più semplice, ma Laravel è il mio preferito. Tuttavia, ci sono molte opzioni là fuori - e loro tutti forniscono meccanismi per separare le tue viste dal resto del resto dell'applicazione, e per quanto ne so, includono tutti i motori di template. Inoltre rendono la vita molto più semplice per quanto riguarda le operazioni del database e per la maggior parte delle altre cose finirai per scrivere lo script per.

Può essere un po 'un problema affrontare la questione all'inizio (improvvisamente devi abituarti a come il framework vuole che tu faccia cose) ma in realtà, fanno risparmiare tempo e ti aiutano a gestire la complessità - è una curva di apprendimento utile da sopportare!

    
risposta data 06.05.2014 - 23:57
fonte

Leggi altre domande sui tag