Instantly share code, notes, and snippets.

@bdunogier /kernel_structure.md Secret
Last active Nov 28, 2016

Embed
What would you like to do?

Packages

ezplatform

eZ Platform's base distribution. Pretty much the current ezsystems/ezplatform. With:

  • Symfony
  • A repository (ezplatform-repository)
  • The REST API (ezplatform-rest-server)
  • The tools to build a website based on ezplatform (ezplatform-site)
  • A storage engine (ezplatform-storage-engine-legacy)
  • A search engine (ezplatform-search-engine-solr, or the legacy one included in the legacy storage engine)
  • An installer ?

ezplatform-site

Used to implement sites based on eZ Platform.

Depends on symfony, ezplatform-repository, contextual-configuration Does it depend on ezplatform-rest-server ? It has to in order to extend it (why does it extend it again ?)

  • siteaccess matching
  • view controllers, with view configuration and view API (dep ?)
  • Twig toolset (ez_xxx functions)

ezplatform-ui

Back-office for eZ Platform, site and repository (?).

Depends on... what ? It doesn't really depend on the REST API, it depends on the client having access to a REST API It doesn't really depend on ezplatform-site either, except maybe for Symfony

ezplatform-repository

eZ Platform Repository API, SPI, services...

ezplatform-storage-engine-legacy

Legacy storage engine implementation.

Depends on ezplatform-repository

ezplatform-search-engine-solr

Solr storage engine implementation for ezplatform-repository

Depends on ezplatform-repository

ezplatform-rest-server

eZ Platform REST server.

Depends on ezplatform-repository

contextual-configuration

The ConfigResolver and SiteAccess.

Candidate: ezplatform-installer

Installation subsystem.

Candidate: value-something-viewer

The component that provides ContentView like mechanics. Needs a name. This mechanic's main edge is that it allows very easy customization of predefined controllers. It's clearly meant for solution provides, not sites provides.

Used by:

  • ezplatform-site for ContentView
  • ez-support-tools for SystemInfoView

Candidate: image-fieldtype

Not kidding. It is complicated enough.

Candidate: ezplatform-http-cache

Cache clearing stuff, User Context Subscriber, REST HTTP caching, Views caching, Purgers, etc...

Questions

  • Where does IO go ?
  • Installer ? Separate package ? Part of ezplatform-site ?

Breakdown of ezpublish-kernel

  • eZ/Bundle/EzPublishCoreBundle
    • Assetic/: Assetic stuff ? Nope, that's from the config resolver
    • Cache/: HTTP cache purger. Repo ? Or is HTTP cache purging (and therefore slots) a site responsibility ? Or REST, if the calls are initiated there ? Or repo ?
    • Composer/: Composer script handler. Installer.
    • Console/: --siteaccess support for console. ContextualConfig, BUT it involves a custom Application class, that app/console needs to use. Indicates that this option requires a low level change. It sounds okay, but needs documentation.
    • Controller/PageController: ? Probably deprecated.
    • EventListener/
    • Fieldtype/: FieldType related services. PageService is probably deprecated (see about bundle from studio team). Html5 converter belongs together with RichText
    • Fragment/: SiteAccess handling in Fragments (rendering strategies)
    • Imagine/: Image Variation handling. Used by site and rest-server. And Image FieldType. And IO... ? Could almost be an image-fieldtype package...
    • Matcher/: Deprecated
    • Router/: siteaccess and urlalias routing. Both to site.
    • SignalSlot: Slot -> Event conversion. site ?
    • SiteAccess: ContextualConfig
    • View: Just SiteAccess awareness for a couple View related items (some deprecated maybe ?)
  • eZ/Publish/Core/MVC
    • ConfigResolverInterface: ContextualConfig
    • RepositoryAwareInterface: RepositoryBundle ?
    • Cache/HTTP: HTTP cache purging (slots), UserContextSubscriber, Cache purge clients. http-cache package, or site... ?
    • Configuration: ContextualConfig
    • Controller: Mostly site. ContentView controller and stuff (or view package), plus security.
    • Event
      • ContentCacheClearEvent: Smart HTTP cache clearing (deprecated by AR ?)
      • APIContentExceptionEvent: Probably site. Higher level exception handling for the repo, connected to ContentView.
      • InteractiveLoginEvent: Security, site.
      • PostSiteAccessMatchEvent: ContextualConfig
      • PreContentViewEvent: site
      • RouteReferenceGenerationEvent: site
      • ScopeChangeEvent: ContextualConfig
      • SignalEvent: site (slot => signal conversion)
    • EventListener
      • SiteAccessMatchListener: ContextualConfig
      • LanguageSwitchListener: site
    • FieldType: ???
    • File: wtf is that ?
    • Locale: site
    • Matcher: site, or view package
    • Routing: site
    • Security: site
    • SiteAccess: ContextualConfig
    • Templating: site
    • View: site, or view package
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment