Gestione dell'array passato all'oggetto alla creazione

1

Quando creo il mio oggetto, gli passo un array di una riga dal mio database. (tutto ciò che sarà necessario nella matrice, ignorando elementi non necessari a livello di query sql)

Quando ho bisogno di accedere ad alcuni elementi dell'array dalla mia classe, mi piace

$this->row['element']

Tuttavia, man mano che continuo lo sviluppo, a volte dimentico ciò che è esattamente in questo array passato (questo non sembra buono)

Mi chiedo se il loro è un approccio professionale per affrontare questo, o sono l'unico che ha questi pensieri "mi chiedo cosa è nella matrice".

Un approccio per affrontare questo potrebbe essere che quando originariamente passiamo l'array, nel costruttore, assegniamo ogni elemento dell'array alla sua variabile, ma questa è considerata pratica professionale?

Inoltre, facendo ciò, possiamo rendere costanti quelle variabili, nel tentativo di immutabilità.

Nel complesso, sto cercando di aderire al buon artigianato del software.

Saluti.

    
posta cecilli0n 30.01.2014 - 00:42
fonte

1 risposta

1

Il modo migliore è descrivere accuratamente la struttura dei tuoi array all'interno dei commenti nel tuo codice, ma io uso var_dump () a volte che ho dimenticato. Scaricherà un elenco dettagliato di ogni elemento all'interno di un array o di un oggetto (nome, tipo, chiave, valore, ecc.) Inclusi array profondamente annidati. Utilizzo PHP da più di 10 anni, quindi questo genere di cose è per me una seconda natura (PHP non aveva realmente i debugger o l'IDE di fascia alta di così, quindi eri bloccato a scavare manualmente attraverso i vars)

E sì, è giusto assegnare manualmente un nome agli elementi all'interno delle proprietà dell'array quando si costruisce un oggetto di classe. Questa è una pratica comune nei file di configurazione. Ad esempio, una classe di configurazione può avere il database $ property e quindi impostare $ this- > database ['user'], $ this- > database ['pass'], ecc. All'interno del costruttore.

    
risposta data 31.01.2014 - 08:23
fonte

Leggi altre domande sui tag