Хмм.. FFDP
PHP:
Хората гледат, да не пишат по принцип излишен код, но ти освен че правиш функция, я добавяш и към клас.
Първо се нарича метод. Сега класът Security, може да се ползва като библиотека, в него ще набуташ и други методи свързани със сигурноста. Този метод hash() съм го дал за пример, но да ти кажа абсолютно нищо нередно не виждам в него. Представи си че задаваш един салт, който да е валиден за всички хешове ... след време ако искаш да промениш салта или както казаха няколко мнения преди мене: "да смениш хеширащата функция", ще трябва да обиколиш целия код за да заменяш. Не е ли по - лесно да имаш един метод и където ти потрябва да си го викаш, той да си слага салта, там различните видове хашове (който си избереш) и т.н.
За това става дума:
PHP:
class Security {
public function hash($value) {
return md5($value);
}
}
--------------------------------
Да се включа и аз за Exception темата.
Ползвай ги:
- Когато дадено нещо върне примерно true или false, примерно:
PHP:
if(!file_exist($file)) {
throw new Exception('File does not exist');
}
include $file;
При ето такива ситуации ги ползвай.
Сега при какви да не ги ползваш.
- Примерно даден потребител си пише потребителското име и паролота, след това при несъответсвие, не е нужно да му хвърляш Exception, може да си ползваш обикновенните масиви или сессии за пренасяне на грешката до view - то.
Exception се показват единствено и само когато си във debug ситуация. Когато дадения проект се пусне публично, всичките Exception - и трябва да не се показват на потребителя, ами да се записват във някакъв Error Log и съответно на потребителя единствено може да се покаже, някаква смислена грешка, която да не реже сайта ами да е с тон със дизайна.
Така Exception - и те трябва да са максимално описващи дадения проблем, но и в същото време максимално кратки (като това вкл. на кой ред, каква грешка, пътя до там, почети всички възможни неща), за да може бързо да разбереш от къде идва проблема.
Може също да разгледаш за set_error_handler(); с нея просто хващаш всички грешки, който е възможно да ти генерира PHP при процес на разработка и ги пращаш към твоя функция, която във последствие може да ти генерира грешките от PHP във някой по хубав вид а и да ги записва във Error логове.
Друго забравих да кажа Exception не работи със Fatal Errors.