AlikDex: уникальность здесь, кажется, не нужна. Формулировка у автора, конечно, ужасно двусмысленная, но мне кажется, если в первом слове две буквы "А", например, во втором слове эту букву можно использовать 0, 1 или 2 раза, но не больше.
preg_match всегда нужно проверять строгим сравнением. Это правило хорошего кода, неважно, каким бы простым он ни был.
Особенно в данном случае, когда человек явно не очень знаком с регулярками - он что-то в ней поменяет и никогда не узнает, что регулярка стала нерабочей, а не просто не совпадает с искомой строкой.
Это не мой вопрос и фразу "Если я в дочерних классах создаю новый конструктор, то он перекрывает конструктор базового класса." сложно прочесть "как не вызывать конструктор родителя".
Всё-равно это опасно - то, что вы указываете в начале директории, легко обходится при помощи "../". Не уверен насчет расширения, но думаю, что и от него можно избавиться.
Мне кажется, это всё-таки скорее кривой код был. Что такое "многочисленные инсерты"? Параллельные запросы или запросы в цикле или множественная вставка одним запросом?