Стефан дает хорошие предложения. По сути, если вы понимаете пакет Seaside-Core в Seaside 3.x, вы понимаете, как все сходится:
- Материал Canvas - это специфическая реализация WARenderer из категории Seaside-Core-Rendering
- Все компоненты Session / Application являются специфической реализацией WARequestHandler из категории Seaside-Core-RequestHandling
- Компонент / Задача - это реализация WAPainter из категории Seaside-Core-Presenters
Существует действительно два подхода к изучению фреймворка. Либо начните с одной из конкретных вещей, которые вас интересуют (например, WAComponent), и продолжайте свой путь до суперклассов. Затем повторите с каждым из других классов, упомянутых Стефаном.
Я бы предложил другой путь: начиная с трех наборов абстрактных классов, которые я упомянул в Session-Core. Рассматривая их вместе (в сочетании с классами HTTP и Document), вы получите представление об общих концепциях и о том, как они объединяются, образуя структуру. Вы можете посмотреть на каждую из конкретных реализаций по мере необходимости, чтобы связать общие концепции с фактической реализацией.
Подклассы WAServerAdaptor образуют отправную точку обработки запроса в Seaside, где запрос от определенной веб-среды преобразуется в запрос Seaside и отправляется соответствующему обработчику. Обратные вызовы также очень важны и находятся в Seaside-Core-Callbacks.
Если вы понимаете все в Seaside-Core, вы в основном понимаете, как работает фреймворк на высоком уровне. Получив широкое понимание основных основных концепций, вы можете приступить к глубокому пониманию каждой области, которая вас интересует, более подробно изучив конкретные реализации. Но имейте в виду, что все в Seaside-Core предназначено, чтобы быть подклассами и соединенными вместе, чтобы расширить структуру.