2010-08-15 4 views
1

Ok, encore une fois, ma question est une sorte de question de bonnes pratiques/techniques, donc je suppose qu'il y aura plusieurs façons de gérer cela. Donc, dans quelle mesure dois-je tenir compte du traitement des erreurs? À titre d'exemple, disons que je havee une fonction de base dans mon modèle qui récupère un enregistrement des clients à savoirComment dois-je gérer les erreurs dans l'application Codeigniter

function get_customer($customer_id) { 

    $this->where('id',$customer_id); 
    $query = $this->db->get('customers'); 

    return $query->result(); 

} 

Dois-je mettre quelque chose pour vérifier si le paramètre de customer_id $, existe et est le type correct? ou cela dépend-il de la logique de l'application? Par exemple, dans certains cas, cette fonction ne sera jamais appelée à moins que $ customer_id ne soit défini et que cela puisse être vérifié dans le contrôleur, mais est-ce la meilleure pratique d'inclure également la vérification d'erreur ici?

Aussi, devrais-je utiliser quelque chose comme try/catch et jeter une exception ou peut-il être aussi simple que si ($ customer_id! = '') Etc?

Répondre

1

Vous utilisez la fonction ci-dessus à partir d'un contrôleur droit? Le meilleur endroit pour s'assurer que la variable $customer_id est du type correct et contient ce que vous attendez, vous devez le vérifier depuis le contrôleur avant de l'envoyer au modèle. Le contrôleur vous met dans une position pour montrer l'erreur en redirigeant ou quoi que ce soit.

+0

ce qui serait une autre façon de dire que la vérification d'erreur est toujours censée être faite seulement comme nécessaire? par exemple. si la variable peut être supposée être du bon type, elle peut provenir d'un champ select, nous n'avons pas besoin de le vérifier? Mais même dans ce cas, si nous devons vérifier que cela a été fait dans le contrôleur, cela créerait certainement beaucoup de code redondant. Lean controller/fat model - les fans ne seraient pas d'accord avec votre solution alors ... ou? (demandant parce que je ne sais pas à ce sujet moi-même) –

+0

deux choses, juste parce que les données POST proviennent d'une boîte