Richiede la struttura del framework PHP [chiuso]

0

Ho iniziato la programmazione PHP intorno al 2002, quando non c'erano molti framework in giro. Nel corso degli anni, ho sviluppato il mio framework PHP, che sembra essere completamente diverso da qualsiasi standard che ho incontrato.

Proverò a descrivere il framework che ho creato:

Fondamentalmente è un motore che costruisce un'intera web-application, convertendo i file template in file HTML. In genere un'applicazione consiste di file modello per ogni pagina diversa nell'applicazione e alcuni file CSS / JS personalizzati per elementi che non sono (ancora) nel motore. L'interazione dell'utente viene eseguita con script di standard nel framework in grado di gestire tutti i tipi di operazioni (selezionare, creare, aggiornare, visualizzare, eliminare, inviare e-mail, esportare come PDF o Excel, ecc. .). Il motore riconosce automaticamente quali script devono essere utilizzati e tutte le variabili necessarie per il funzionamento di questi script sono inviate da Javascript utilizzando Ajax, inclusi il tipo di operazione e tutti i valori dei moduli necessari. JSON o un URL per il PDF o il file Excel creato viene quindi inviato al client.

I modelli possono contenere client HTML, CSS e Javascript e SQL serveride, ma i più importanti sono tag xml personalizzati che sono interpretati da PHP e, a seconda degli attributi, convertiti in tag HTML (multipli), CSS e Javascript- codice. Esistono molte classi PHP standard differenti per tag personalizzati che possono generare elementi visivi, come pulsanti, datagrids, form, ecc. Ma i tag e gli attributi sono anche usati per database, sessioni, aggiornamenti clientide usando Ajax / jQuery, produzione di PDF, invio di e-mail, ecc. Il motore può utilizzare tutti i tipi di librerie, come l'interfaccia utente jQuery, Cordova, Bootstrap, PHPExcel, mPDF, ecc. e sa automaticamente quali file JS e CSS includere nel file emesso. Può anche memorizzare in cache l'HTML, creare l'applicazione e minimizzare JS e CSS.

In questo modo ho no classi specifiche per tutto ciò che è nell'applicazione o nel database (ad esempio Conti o Fatture). Quando il mio modello di dati cambia, devo solo aggiornare i template e no codice PHP.

Ogni framework che sto provando (es. Phalcon, CakePHP e Laravel) sembra richiedere la definizione della logica aziendale, del modello di dati e di tutte le interazioni nelle classi PHP specifiche (ad es. Fattura). Pertanto, quando un campo viene aggiunto a una tabella di database, è necessario aggiungere una proprietà alla classe corrispondente. Ovviamente, cambiano anche i modelli di visualizzazione e i controller di interazione. E per ogni tabella nel database sono necessari diversi modelli e file di controller. Penso che sia abbastanza complesso e dispendioso in termini di tempo, rispetto alla mia soluzione (alcune delle mie applicazioni utilizzano più di 100 tabelle di database diverse).

Il lato negativo del mio approccio è che il mantenimento delle classi standard nel framework richiede molto lavoro. Soprattutto perché in diverse applicazioni le stesse classi devono essere in grado di comportarsi in modo un po 'diverso, quindi ogni classe ha molte proprietà per controllare tutto questo. In questo modo il motore è diventato molto potente, ma anche abbastanza lento, complesso e difficile da mantenere. Mi rendo conto che la mia soluzione in realtà non separa il codice e il design, ma dal momento che costruisco per lo più applicazioni web di database, questo non è davvero necessario per me. Il modo in cui le cose sembrano possono essere manipolate abbastanza usando alcuni CSS personalizzati.

Quindi, dove andare da qui ora? Mi piace molto il mio framework, ma mi piacerebbe rispettare di più gli standard web per essere in grado di assumere gli sviluppatori esterni un po 'più facilmente. Ma dal momento che il mio framework è molto diverso da qualsiasi altra cosa, non ho idea di quale framework scegliere.

Le mie domande sono:

  • Cosa ne pensi del mio "motore di applicazione web" che utilizza principalmente solo i modelli? Qualcun altro lo fa?
  • Quale framework esistente potrebbe essere usato per completare la mia stessa struttura, piuttosto che interamente cambia il modo in cui lavoro ora?
posta Dylan 13.12.2015 - 13:30
fonte

1 risposta

4

PHP è un linguaggio semplice per sua natura. Ha molte librerie utili ma nessuna struttura web integrata a differenza di altre come C # e il framework ASP.NET.

Quindi è necessario utilizzare i framework:

  1. Se decidi di scrivere il tuo framework avrai bisogno di una strong comprensione del design e dei modelli strutturali. Altrimenti sarà una sfida mantenere o modificare il codice.
  2. Se usi un framework conosciuto come uno di quelli che hai citato, il framework sarà già scritto e testato da moltissimi sviluppatori.

Ricorda che PHP è stato a sua volta scritto dall'autore per aiutarlo a risolvere i suoi problemi. Questo è il modo in cui sono stati avviati molti framework. Se il tuo framework risolve un problema che altri framework non possono quindi valerne, imparerai anche a farlo, altrimenti stai reinventando la ruota.

Personalmente, quando ho iniziato a programmare per la prima volta ero anti-framework, scrivendo le mie lezioni di helper. Con le esigenze in continua evoluzione dei clienti, il mio elegante codice si è trasformato in un brutto codice per spaghetti. Ricordo che una volta il mio capo mi ha chiesto di rimuovere una casella di controllo da una pagina e quando l'ho rimossa, causava il crash della mia struttura web semicotta durante una demo. Ho imparato da questo che il modello MVC avrebbe evitato questo problema. Da allora uso framework ben noti e testati per risparmiare tempo speso da altri sviluppatori che non posso permettermi di sprecare.

Dal tuo post sembra che tu stia già affrontando problemi con la scrittura del tuo framework, cioè il compromesso, sembra che all'inizio sia facile, ma poi è difficile modificarlo. D'altra parte, altri framework sembrerebbero un sovraccarico, ma a lungo termine rendono più rigida l'applicazione.

Puoi scegliere uno qualsiasi di questi framework popolari per raggiungere il tuo compito. Il vantaggio dell'utilizzo di Modelli e proprietà è che le tue visualizzazioni saranno strongmente tipizzate, il che è molto più sicuro.

    
risposta data 13.12.2015 - 16:07
fonte

Leggi altre domande sui tag