A (better) way to structure your content

PFCongres 2013 Uncon - 14 september 2013

Willem-Jan Zijderveld

PHP Developer at Beeldspraak


Twitter: @willemjanz




This is my very first talk, please be gentle

What's this talk about

PHP Content Repository

  • Why would I need PHPCR
  • What is PHPCR
  • Who is using it
  • When to use it
  • When not to use it

Why would I need PHPCR

  • CMS data isn't always structured
  • NoSQL isn't always a fit, but has similarities
  • Makes it easy to switch storage engines
  • A lot of build-in features

What is PHPCR

  • Ported from JCR-283 for TYPO3/Flow3
    • Removed JAVA overhead
    • Added PHP specifics
    • Some naming changed
    • PHPCR Utils
  • Tree of nodes

What is PHPCR


  • Nodes have a name and a type
  • A node has a path
  • Nodes can have named properties with values

What is PHPCR


Can be compared with branches in a VCS or with a filesystem

Who is using it

  • Jackalope (Jackrabbit/Doctrine-DBAL)
    • Symfony CMF
    • ServerGrove KnowledgeBase
    • TYPO3
    • Vespolina and Sylius
  • Midgard2

When to use it

  • Hierarchical data
  • With compound data; like attachments or translations
  • When you need versioning
  • When in need of FullText search

When not to use it

  • Strict structured data
  • Aggregation