Как построить грамотную архитектуру проектов и организовать код?
Вообще-то фреймворки - это именно и конкретно варианты организации архитектуры кода. 
Достаточно популярные и проработанные, чтобы порог вхождения и все такое.
Внезапно!
Можно почитать Макконелла - Соверешнный код.
Но применительно к предметной области автора (js/php) очень сложно что-то говорить про архитектуру.
Сегмент PHP - это обычно не сильно сложные задачи. В плане lifecycle - не очень.

Обычно архитектура (А) это совокупность практик. Растешь. Практикуешься. Набиваешь шишки. Но самое
ценно в архитектуре - это не то как ты классы по пакетам разложил, а какие ты вопросы бизнесу задавал.
Насколько они точные? Насколько ни к месту? Какие получил ответы? Как их понял? И какой ценой применил?
И какой эффект получил. Нет толку от А. которая написана в ящик стола. Или которая - просто фетишизирует
фреймворк. Или которая безумно дорога в реализации. Или которая так сложная что команда ее 
на поняла, разочаровалась и просто разбежалась. 

А. это - как хорошее вино. Подается вовремя к столу. И за нужные деньги.