Я сделал это прежде с PHP и базой данных MySQL. У меня была функция перестановок, которая сначала гарантирует, что количество необходимых кодов - $n, подробно $l, с количеством символов, $c - смогло быть созданным прежде, чем запустить процесс поколения.
Затем я сохранил бы каждый новый код к базе данных и позволил бы ему сказать мне через ошибки УНИКАЛЬНОГО КЛЮЧА, что была коллизия (дубликат). Тогда продолжайте идти, пока я не сделал количество $n успешно созданных кодов. Вы могли, конечно, сделать это в памяти, но я хотел сохранить коды для использования в слиянии MS Word. Так же... тогда я экспортировал их как файл CSV.
Внутренняя обработка ошибок компонентов MVC фреймворка может перехватывать только исключения, но не ошибки PHP.
Для помощи в отладке во время разработки вы можете использовать стандарт:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 'on');
Также, если вы используете новый автозагрузчик, включенный в 1.8, используйте:
Zend_Loader_Autoloader::getInstance()->suppressNotFoundWarnings(false);
Чтобы разрешить выдачу неудачных операторов include / require.