slo_nik, мне кажется это на отдельный вопрос по хорошим парктикам тянет... я слабоват...
но я бы сделал лучше 4 метода: getMenuTop(), getMenuRight(),
если следовать информационному эксперту из SOLID,
как мне кажется так понятней: Catalog::getMenuRight()
чем запись Catalog::getMenu(Catalog::LOCATE_RIGHT )
Иван, по ПЫХЕ:
- пробегитесь по функциям PHP при работе со строками и масcивами... потренирутесь
- изучите ООП в PHP, базовые вещи... затем изучите шаблон MVC (он во всех движках, почти во всех фреймах)
- где-то тут вы уже должны разобраться с нормальными формами в SQL БД
- расчехлите фреймворк (Yii2 или Laravel) и сделайте любое из тестовых по ссылке выше...
- углубитесь в возможности фрейма, который выбрали
....
- далее оттачивайте уже архитектуру приложений в рамках фреймворка (сервисный слой, DDD, тестирваоние и прочее)
- стройте REST, если из фронота -- пробуйте совместить с React или Vue
JhaoDa, да-да... я догадывался что не все так просто и уже написал кммоент (но стер зачем-то), что возможно в Laravel что-то реализуется по-другому, но предположил, что прийдет ларавельщик и подскажет....
больше не буду лезть дальше, чем могу помочь, не прав