Come trovare le classi che usano determinate tabelle DB

2

Problema:
Mi viene chiesto di preparare un documento in cui sono elencate tutte le nostre tabelle DB e dovrei elencare tutti i controller che utilizzano queste tabelle DB per la lettura e un altro elenco per i controllori che eseguono operazioni di scrittura.

Esempio:

     +------------------------------------------+------------+
     |            DB table                      | tbl_Orders |
     +------------------------------------------+------------+
     |Controllers that perform read operations  |    ??      |
     +------------------------------------------+------------+
     |Controllers that perform write operations |    ??      |
     +------------------------------------------+------------+

Stiamo provando a scrivere della documentazione per un sistema legacy creato utilizzando il framework Zend. Il codice è sparso ovunque. C'è un codice nei controller, nei modelli e persino nelle viste.
L'applicazione utilizza PROPEL come un ORM.

Ciò che rende questo veramente difficile è che il Controller non stia chiamando direttamente la tabella, ma potrebbe creare un'istanza di una classe del modello che chiama quella tabella.

C'è un modo educato per affrontare questo pazzo compito?

Nota:

La ricerca del nome della tabella non fornirà una soluzione perché se un modello usa quella tabella non saprei quale controller sta usando quel modello.

    
posta Songo 12.09.2013 - 11:02
fonte

1 risposta

1

Penso che avrai bisogno di un approccio di ricerca a più livelli.

Il primo turno è quello ovvio che chiami nella tua domanda. In particolare, cerca i nomi delle tabelle all'interno del codice stesso.

Il secondo round è dove diventa più difficile. Dovrai conoscere i nomi delle funzioni che hai trovato dal primo round di ricerca. Quindi cerca tutte le aree in cui vengono chiamate tali funzioni.

Combina i risultati del secondo set di risposte con il primo set e dovresti essere in grado di identificare tutte le tue aree di interesse.

    
risposta data 12.09.2013 - 15:09
fonte

Leggi altre domande sui tag