Ho intenzione di costruire una soluzione chiavi in mano per un mercato verticale e vorrei offrire entrambe le opzioni: software come servizio e dare loro la possibilità di ospitare l'applicazione da soli. In altre parole, sto mirando ad avere opzioni di implementazione simili a quelle di Joel FogBugz.Django o CodeIgniter per applicazione Web chiavi in mano
Sono un programmatore Python e potrei sorvolare il progetto con Django. Ci sono diversi motivi per cui preferisco PHP:
1) Installazione di Django, e la configurazione presuppone che si abbia accesso a una shell (il mio target non è il tipo di programmatore). Sebbene potessi offrire il servizio di installazione, ma non sui loro server.
2) Django viene eseguito solo su host specifici che devono prestare particolare attenzione per attivarlo. Installando mod_python/mod_wsgi e molto probabilmente la minoranza dei miei potenziali clienti avrebbe accesso root o anche un cpanel.
3) L'utilizzo di PHP significherebbe che potrei eseguirlo sul server esistente. Non avrei bisogno di spostarli su un server abilitato a Django e non ci sono tempi di inattività per le loro e-mail, mentre gli aggiornamenti DNS.
D'altra parte, ho pochissima esperienza con PHP. Smarty come linguaggio dei template sembra carino e funziona in modo simile ai template di Django. Tuttavia, non offre l'ereditarietà dei template, tranne che in un modo molto logico in cui non desidero utilizzarli in quanto potrebbe rompere l'applicazione se il designer li mette in disordine. Cosa ne pensi? Grazie in anticipo!
Certo, PHP sarà più facile da installare rispetto a un'applicazione Python ma si sta aprendo un'intera scatola di worm riguardo le configurazioni del server web (Apache, IIS, altri?), Versioni PHP (PHP4 e obsolete, buggy PHP5) con l'utente che in realtà ottiene il server che serve il tuo PHP. Allora hai il database ... –
Sembra lo stesso problema che affligge WordPress ... – GloryFish
Non hai bisogno di Smarty se stai usando CodeIgniter, vero? Separa già la vista dal controller. E include un meccanismo di memorizzazione nella cache. –