PHP - Livello di accesso ai dati

1

Attualmente sto rivedendo un codice base e ho notato che la maggior parte delle chiamate (insieme alle connessioni DB) sono solo sepolte negli script PHP. Avrei dato per scontato che, come altri linguaggi, avrebbero sviluppato una sorta di livello di accesso ai dati (come avrei fatto in .Net o Java) per tutte le comunicazioni al DB (o implementato MVC, ecc.). Questo è ancora un modello comune in PHP o esistono metodologie / schemi alternativi per questa tecnologia? Sto solo cercando di capire perché i sottotitoli l'avrebbero sviluppata in questo modo.

Qualsiasi intuizione / informazione su come gli sviluppatori esperti progettano un accesso ai dati di approccio in PHP sarebbe molto apprezzato.

    
posta scarpacci 17.10.2012 - 16:42
fonte

3 risposte

7

È abbastanza comune nei progetti PHP avere un qualche tipo di astrazione dati o livello di accesso ai dati. Semplicemente grazie a DRY Principles e alla gestione degli errori più pulita. I programmatori esperti non amano ripetere se stessi più e più volte e separano il più possibile la logica del dominio dalla manipolazione dei dati.

Ci sono molti ottimi Framework e componenti là fuori per aiutare con l'astrazione dei dati o anche con l'Object Relational Mapping, vedi questo Posta su SO.

Potresti provare un sacco di altri revisori di codice precedenti:

(da: link )

    
risposta data 17.10.2012 - 17:39
fonte
1

È ancora molto comune. Per favore non inventare la ruota: qui ci sono due grandi librerie che puoi usare:

Componente Db di Zend Framework :

DBAL componente

di Doctrine

Il PDO è un bel livello di astrazione, ma è più basso di questi altri due. Consiglierei Zend Db su Doctrine DBAL, a meno che tu non voglia un ORM, quindi consiglio vivamente il percorso DBAL / ORM di Doctrine.

    
risposta data 17.10.2012 - 18:20
fonte
1

Non ho lavorato a lungo in un progetto PHP.

Ma ricordo alcuni livelli di astrazione dei dati per PHP:

Oltre a questi, i framework PHP offrono helpers e livelli di dati (ad esempio libreria del database CodeIgniter ).

    
risposta data 17.10.2012 - 18:11
fonte

Leggi altre domande sui tag