Come scrivere un commento leggibile quando dobbiamo trattare con gli ID?

1

Come scrivere un commento leggibile quando dobbiamo trattare con gli ID?

Spiegherò questo con l'esempio.

+---------------+-----------------+
| permission_id | permission_name |
+---------------+-----------------+
|             1 | Add Category    |
|             2 | Delete Category |
|             3 | Add Product     |
+---------------+-----------------+

E c'è una tabella che mantengo che memorizzerà quali permessi ha ogni utente. Durante la registrazione di un utente, ho salvato tutte le autorizzazioni sull'array Session.

Quindi array di sessione come

$_SESSION['permissions'] = array(1,2); // This user has Add Category & Delete Category permissions.

Il mio codice è come,

function delete_category(){
    if(in_array('2')){

        //Code
    }
    else{
        // Sorry You have no permission to do this task.
    }
}

Ho un problema nella riga 2, che è if(in_array('2')) perché anche io e altri non abbiamo idea di cosa sia questo 2. Voglio dire che dobbiamo controllare il database per trovarlo.

È un codice non leggibile, ho questo problema non solo in questo caso. Ci sono molti posti in cui ho questo problema.

Come scrivere codice leggibile quando questo tipo di situazione?

    
posta I am the Most Stupid Person 11.08.2017 - 08:04
fonte

1 risposta

12

Non dovresti usare l'ID di interi direttamente nella logica. Dovresti definire costanti (o enumerazioni o qualsiasi cosa sia appropriata per la tua lingua) corrispondenti agli id e quindi usare i nomi. Per es.

Permissions.AddCategory = 1
Permissions.DeleteCategory = 2
Permissions.AddProduct = 4

...

if(in_array(Permissions.DeleteCategory)){

...

Questo è molto più facile da leggere, scrivere e capire. Non hai nemmeno bisogno dei commenti, dal momento che il codice stesso spiega cosa succede.

    
risposta data 11.08.2017 - 09:16
fonte