По методике:
Я начинаю изучение фреймворков с точки входа (скрипта, который вызывается при получении HTTP запроса, в случае веб фреймворка). Смотрю на возможные пути дальнейшего выполнения кода в этом входном скрипте. Затем изучаю каждый из путей выполнения, доходя до точки завершения работы этого пути (т.е. изучаю от входа к выходу, сверху вниз). Пытаюсь понять предназначение каждого из путей и участков кода, которые на этом пути встречаются. В итоге пытаюсь понять как данный фреймворк вписывается в известную мне модель работы веб технологий (HTTP и т.п.), какая часть фреймворка предназначена для устранения дублирования кода и т.п.
По софту:
Для статического анализа кода поищите по запросам «php reengineering», «php reverse engineering». Обратный инжинеринг PHP кода есть, например, в Enterprise Architect:
www.sparxsystems.com.au/platforms/php_uml.html
Для динамического анализа кода можете с помощью xdebug сделать профилирование вызова и на основе полученного файла построить граф с помощью специальной программы (например, KCacheGrind). Подробнее здесь:
xdebug.org/docs/profiler
Ещё ссылки на некоторые инструменты:
stackoverflow.com/a/4156265/925775 (мне там приглянулся PHP Call Graph)
P.S.: по софту мог где-то ошибиться, т.к. нет большого опыта в использовании описанных инструментов.