PHP Framework per RESTful Web Service [chiuso]

6

Sto girando in tondo con questa domanda per giorni - qual è il miglior framework PHP da utilizzare per creare un servizio Web RESTful?

Ho consultato il Web per informazioni e ho riscontrato tre fattori principali che sono importanti:

  • deve avere l'architettura REST integrata nel framework
  • deve essere un'applicazione stabile
  • deve essere completo

Può darsi che ciò che voglio non esista, ma volevo controllare con la community per vedere di aver perso qualcosa.

Attualmente i tre contendenti sono:

CodeIgniter

È un framework molto stabile con una grande comunità e molte funzionalità e 'estensioni'. Il problema è che non è RESTful. Ho trovato un controller RESTful ma ci sono alcune cose che non mi piacciono. Principalmente non sembra che utilizzi correttamente i metodi HTTP secondo la definizione di architettura RESTful. Penso che questo derivi da restrizioni nel nucleo di CodeIgniter però.

Yii

Di nuovo, sembra una grande comunità ed è stabile con molte funzionalità, ma non RESTful.

Laravel

Un framework che RESTful è pronto all'uso e ha una buona quantità di funzioni. Il problema è che questo è un framework relativamente nuovo, quindi manca di stabilità.

Altri framework che ho considerato:

Zend - da quello che ho letto, evita a meno che non scriva il software Enterprise.

Recess - RESTful, ma sembra molto inattivo e sottoutilizzato.

UPDATE:

Alla fine sono andato per Laravel. Non posso raccomandarlo abbastanza! Ho avuto una API RESTful attiva e funzionante in una settimana e anche un semplice client web. Quadro sorprendente.

    
posta Gaz_Edge 09.01.2013 - 20:20
fonte

1 risposta

11

Zend Framework è la scelta più ovvia, è il più ben progettato, maturo e stabile dei framework che elencherai e perfettamente adatto alle applicazioni RESTful. Detto questo e nonostante abbia creato numerose app con esso e non solo applicazioni "Enterprise", è notoriamente difficile imparare a farlo e potrebbe non essere la tua tazza di tè. C'è stato uno sforzo significativo per semplificarlo di recente, ma se non fossi stato uno dei primi ad adottarlo mi sarei probabilmente fermato molto lontano da esso.

CodeIgniter, un framework che ho usato ampiamente, non è davvero una buona scelta. Come hai già notato, non offre un'architettura RESTful pronta all'uso e hai perfettamente ragione nell'assumere che il design del core renda un po 'noioso qualsiasi progetto RESTful personalizzato (la mancanza di una classe di richiesta HTTP arriva a mente). Non è impossibile, lungi dall'esserlo, ma l'attrazione principale di CodeIgniter, la sua facilità d'uso, diventa molto meno attraente quando devi scrivere tonnellate di codice personalizzato per fare cose relativamente semplici che la maggior parte degli altri framework supportano immediatamente.

Che ci porta a Laravel, la più recente aggiunta all'elenco infinito di framework PHP. Devo ammettere che non l'ho usato estensivamente, ma da quello che ho visto finora la stabilità non è un problema. È un po 'idiomatico, ma fornisce REST fuori dagli schemi ed Eloquent, il suo ORM, è fantastico. Sono andato con Laravel dalla mia ultima applicazione, che ha alcuni componenti RESTful, passando dal mio consueto combo Zend Framework + Doctrine, ma questa è la mia prima applicazione non throwaway con il framework e non sono ancora al 100% a mio agio con esso.

Se ritieni che Zend Framework sia troppo per te, Laravel sembra certamente un degno contendente. Se non vuoi investire in un progetto relativamente nuovo, allora c'è un'altra opzione che hai perso nella tua ricerca, Symfony . Si trova da qualche parte tra Zend Framework e CodeIgniter quando si tratta di imparare la curva, ed è stabile come diventa. Il FOSRestBundle offre una base API REST semplice ma completa per Symfony e potrebbe essere esattamente quello che stai cercando.

Alla fine della giornata, dipende completamente da te e non è una decisione che puoi prendere alla leggera. La sua struttura impone scelte architettoniche con cui dovrai convivere finché lo usi, e per quadri relativamente maturi il più delle volte si riduce alle preferenze personali.

Buona fortuna;)

    
risposta data 09.01.2013 - 23:15
fonte

Leggi altre domande sui tag