Многое не нужно придумывать и писать заново. Ведь многое уже придумано за вас. Нужно всего лишь скопировать и внедрить это в систему. Для этого я использую Composer. Он сохранит часы, а может и дни вашей работы. Подобрать нужный вам пакет вы сможете на сайте https://packagist.org/
MODx