Come dovrei connettermi al mio framework php per usare metodi scritti nel framework, in un ambiente agnostico framework?

1

La mia azienda gestisce 2 siti Web, un sito Web pubblico per i clienti e un'intranet dei dipendenti. La rete intranet è utilizzata come back-end per i dipendenti per modificare e gestire varie parti del sito Web pubblico. Entrambi sono scritti in PHP. La rete intranet è vecchia di anni ed è stata progettata utilizzando un framework interno. Abbiamo recentemente creato un nuovo sito Web pubblico e, grazie all'opportunità di "ripartire da zero" con esso, lo abbiamo progettato utilizzando un framework PHP (Kohana). Sapevamo fin dall'inizio che ci sarebbero stati problemi di implementazione nel far interagire la intranet con il sito pubblico e viceversa. Ora siamo a quel punto.

Ci sono diversi modi in cui siamo stati in grado di far funzionare le cose: per la manipolazione diretta dei dati, entrambi usano mysql, quindi il generatore di query in Kohana può manipolare gli stessi dati delle query mysqli diritte della intranet. Ma oltre a questo, quando il sito pubblico deve utilizzare determinati metodi di auditing scritti sul framework intranet, o quando la intranet deve inviare una email automatica scritta in Kohana, o utilizzare un numero qualsiasi di altri metodi e funzioni, abbiamo

1- Incluso un framework nell'altro, per avere accesso ad entrambi. I problemi con questo sono:

a. Entrambi si basano sul buffering degli oggetti per preparare l'output e sono costantemente in grado di avviare e terminare i buffer in momenti dispari.

b. I nomi delle classi in conflitto vengono caricati automaticamente

c. caricatori automatici che si sovrascrivono l'un l'altro

d. gli errori progettati per essere gestiti in un modo vengono gestiti in modo improprio dal gestore degli errori dell'altra struttura.

e. qualsiasi numero di altri problemi di incompatibilità

Ci siamo circondati di questi caso per caso, ma è stato un incubo

2- Utilizzo di un'API remota. Abbiamo scritto i metodi di webservice su ciascun server e l'altro framework fa una richiesta CURL dell'altro server. I problemi con questo sono:

a. Il lavoro aggiunto di proteggere l'API e autenticare le richieste

b. la necessità di scrivere metodi di servizio

c. Il sovraccarico di dover effettuare richieste HTTP invece di caricare file localmente

3- Utilizzo di una API locale. Simile a quanto sopra, eccetto che il framework è incluso nello stesso server, e i metodi api sono scritti in script di shell che emettono dati da leggere dallo script chiamante tramite shell_exec . Questo allevia la necessità di autenticazione, ma sembra un modo brutto e hacky di fare le cose

Non vogliamo riscrivere la intranet usando un framework adeguato. Ci vorrebbe una quantità incredibile di tempo che non abbiamo. C'è un modo migliore per farlo, o almeno un modo più "standard" o "convenzionale" per affrontare questo problema? O siamo bloccati a hackerarlo come lo siamo stati al momento?

    
posta chiliNUT 03.05.2014 - 19:32
fonte

2 risposte

1

in primo luogo per più classi con lo stesso nome, suggerirei di utilizzare gli spazi dei nomi per cancellare la classe in cui lo spazio dei nomi dovrebbe gestirlo.

la maggior parte dei gestori di errori di framework può essere sovrascritta per ottenere una gestione degli errori personalizzata, sto usando Yii e almeno lo sta supportando.

e puoi anche utilizzare le vecchie parti di lavoro del framework e includerle nel tuo nuovo framework e riutilizzare il tuo codice.

    
risposta data 01.11.2014 - 12:15
fonte
0

Suggerirei di espandere il 2. Puoi proteggere i tuoi endpoint con la whitelist IP.

Non c'è molto sovraccarico nel fare richieste HTTP. Preoccupati per altri colli di bottiglia come SQL inefficiente e I / O su file.

Avere due sistemi incompatibili comunicano tra loro richiede un'API concordata. Questo è un fatto fondamentale Sandboxing l'uno dentro l'altro ti darà lo slancio.

    
risposta data 02.10.2014 - 03:52
fonte