SlideShare a Scribd company logo
Symfony CMF
un nuovo paradigma per la gestione dei contenuti
Symfony CMF
   buon
un nuovo paradigma per la gestione dei contenuti
Symfony CMF
   buon
un nuovo paradigma per la gestione dei contenuti
         approccio
?
http://phpday.it       #phpday
CMS are awesome!


http://phpday.it                  #phpday
No REALLY!
            CMSes are awesome!


http://phpday.it                 #phpday
CMSes are awesome if
           you are an end user!
                Click click

http://phpday.it              #phpday
CMSes are awesome if
           you are a sales guy!
                 Brand

http://phpday.it              #phpday
CMSes sucks if you are a
                developer!
        CMS first, framework second


http://phpday.it                #phpday
CMSes nightmares
       • no clean separation of configuration, logic and content
       • no clean deployment and staging concept
       • inconsistent cache layers
       • lots of legacy baggage
       • NIH (not invented here) syndrom

http://phpday.it                                           #phpday
Do we also suffer from
                 NIH?
          •   Based ourselves as much on standard tools and specs

          •   Deliver value within a reasonable time




http://phpday.it                                                    #phpday
CMF = Content
      Management Framework
          • In other words: its a toolbox to create your
              own custom CMS
          • Not a one size fits all, but increase code
              sharing
          • Imagine Diem, Sympal, Apostrophe all build
              on the same content foundation


http://phpday.it                                        #phpday
Mission

          • The Symfony CMF project makes it easier
              for developers to add CMS functionality to
              applications built with the Symfony2 PHP
              framework. Key development principles for
              the provided set of bundles are scalability,
              usability, documentation and testing


http://phpday.it                                        #phpday
Contents




http://phpday.it              #phpday
Contents




http://phpday.it              #phpday
i18n




http://phpday.it          #phpday
Versioning




http://phpday.it                #phpday
Relational DB




http://phpday.it                   #phpday
Architecture




                   content repository | Jackrabbit



http://phpday.it                                     #phpday
Content Repository
          • A content repository is a generic
              application data “super store.”
          • Can handle both small and large-scale data
              interactions
          • Is expected to manipulate and store
              structured and unstructured content that
              vary dynamically

http://phpday.it                                     #phpday
JSR170 aka JCR1
                   JSR283 aka JCR2

          • how data are stored within the repository
              is identified and structured from the point
              of view of the client




http://phpday.it                                       #phpday
Workspaces

          • Multiple workspaces, each with its own
              name and root node
          • Is similar to a Unix file system structure
          • Each workspace is independent

http://phpday.it                                        #phpday
Nodes

          • Are identified by the path where are stored
           • ex. id: “/my/path/under/water/fish”
          • Can be created, deleted, modified, copied...

http://phpday.it                                    #phpday
Properties

          • Typed attribute:
             •     STRING, URI, BOOLEAN, LONG, DOUBLE,
                   DECIMAL, BINARY, DATE, NAME, PATH,
                   WEAKREFERENCE REFERENCE

             •     jcr:created, jcr:mimeType




http://phpday.it                                         #phpday
Nodes

          • Are typed using namespaced names
           • nt:file, nt:folder...
           • nt:unstructured

http://phpday.it                               #phpday
Node Mixins

                   • A mixin node type can be assigned to a
                     node during that node's lifetime


                   • mix:referenceable
                    • jcr:uuid

http://phpday.it                                         #phpday
Node Mixins
             • mix:versionable
              • jcr:versionHistory
              • jcr:predecessors
              • jcr:baseVersion
              • jcr:isCheckedOut
              • jcr:mergeFailed
http://phpday.it                     #phpday
Content repository
              Java implementation




http://phpday.it                    #phpday
Architecture



                         phpcr | Jackalope

                   content repository | Jackrabbit



http://phpday.it                                     #phpday
PHPCR
          •   Aims to provide a standard API that can be
              used by any PHP content management system
              to interface with any content repository.
          •   Several Implementations
              •    Jackalope on Jackrabbit
              •    Jackalope on Doctrine DBAL
              •    Midgard2 PHPCR

http://phpday.it                                     #phpday
PHPCR


          • PHPCR has been submitted to JCR
          • http://phpcr.github.com/


http://phpday.it                              #phpday
http://phpday.it   #phpday
Architecture

                       doctrine | phpcr-odm

                         phpcr | Jackalope

                   content repository | Jackrabbit



http://phpday.it                                     #phpday
PHPCR-ODM

          • Sits on top of jackalope
          • Works like MongoDB or CouchDB ODM,
              but also includes a tree/graph, versioning
              and ACL API



http://phpday.it                                           #phpday
PHPCR-ODM




http://phpday.it               #phpday
Document Class




http://phpday.it                    #phpday
Repository Class




http://phpday.it                      #phpday
CRUD




http://phpday.it          #phpday
Traversal




http://phpday.it               #phpday
Versioning




http://phpday.it                #phpday
Not all data fits well in
                       PHPCR/JCR

          •   For example aggregation is better done in an
              RDBMS

          •   Store web store product description in PHPCR/
              JCR

          •   Store web store inventory and orders in RDBMS




http://phpday.it                                              #phpday
Architecture
                    Sf2 | doctrinePHPCRBundle

                       doctrine | phpcr-odm

                         phpcr | Jackalope

                   content repository | Jackrabbit



http://phpday.it                                     #phpday
DoctrinePHPCRBundle




          • Document Manager available in the DIC


http://phpday.it                                    #phpday
DEMO


http://phpday.it          #phpday
Roadmap

          •   PHPCR-ODM: @Child, @Children, @Parent,
              @ReferenceOne, @ReferenceMany, ...

          •   Make AdminBundle compatible

          •   Create frontend Bundles




http://phpday.it                                       #phpday
Eating your own dog food




          • Ideato is rebuilding its site on top of CMF


http://phpday.it                                      #phpday
Many companies are
                   committed to the effort




http://phpday.it                             #phpday
Symfony CMF Camp
                    Cesena, 29-30 of July
                     http://www.unsito.com/c4




http://phpday.it                                #phpday
Resources

          •   irc://freenode/#symfony-cmf

          •   http://cmf.symfony.com/

          •   https://github.com/symfony-cmf/symfony-cmf/wiki

          •   http://jcp.org/en/jsr/detail?id=283

          •   http://jcp.org/en/jsr/detail?id=333



http://phpday.it                                            #phpday
Thanks!

                           http://joind.in/3023


                   Michele Orselli   Manuel Baldassarri
                     mo@ideato.it       mb@ideato.it



http://phpday.it                                          #phpday

More Related Content

Viewers also liked (17)

Dada hareketi
Dada hareketiDada hareketi
Dada hareketi
 
Biology unit 1 cell (reparado)
Biology unit 1 cell (reparado)Biology unit 1 cell (reparado)
Biology unit 1 cell (reparado)
 
Automazione quotidiana in php
Automazione quotidiana in phpAutomazione quotidiana in php
Automazione quotidiana in php
 
Lymphatic system mine
Lymphatic system mineLymphatic system mine
Lymphatic system mine
 
From * to Symfony2
From * to Symfony2From * to Symfony2
From * to Symfony2
 
4to 4 excretion
4to 4 excretion4to 4 excretion
4to 4 excretion
 
Symfony2 security layer
Symfony2 security layerSymfony2 security layer
Symfony2 security layer
 
Transport in cells 3rd
Transport in cells 3rdTransport in cells 3rd
Transport in cells 3rd
 
Heredity
HeredityHeredity
Heredity
 
Dada hareketi
Dada hareketiDada hareketi
Dada hareketi
 
Un CMS in 25min con Symfony CMF
Un CMS in 25min con Symfony CMFUn CMS in 25min con Symfony CMF
Un CMS in 25min con Symfony CMF
 
Nervous system and coordination brian & friends para 4to
Nervous system and coordination brian & friends para 4toNervous system and coordination brian & friends para 4to
Nervous system and coordination brian & friends para 4to
 
Umutsecondlife
UmutsecondlifeUmutsecondlife
Umutsecondlife
 
Ant vs Phing
Ant vs PhingAnt vs Phing
Ant vs Phing
 
Skin homeostasis
Skin homeostasisSkin homeostasis
Skin homeostasis
 
Endocrine system mine for 4th
Endocrine system mine for 4thEndocrine system mine for 4th
Endocrine system mine for 4th
 
Daftar kata tahun 1 kvkv
Daftar kata tahun 1 kvkvDaftar kata tahun 1 kvkv
Daftar kata tahun 1 kvkv
 

Similar to Symfony CMF: un nuovo paradigma per la gestione dei contenuti

Howtobuildyourownframework
HowtobuildyourownframeworkHowtobuildyourownframework
Howtobuildyourownframework
hazzaz
 

Similar to Symfony CMF: un nuovo paradigma per la gestione dei contenuti (20)

Organinzing Your PHP Projects (2010 Memphis PHP)
Organinzing Your PHP Projects (2010 Memphis PHP)Organinzing Your PHP Projects (2010 Memphis PHP)
Organinzing Your PHP Projects (2010 Memphis PHP)
 
Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)
 
Decoupling Content Management with Create.js and PHPCR
Decoupling Content Management with Create.js and PHPCRDecoupling Content Management with Create.js and PHPCR
Decoupling Content Management with Create.js and PHPCR
 
Howtobuildyourownframework
HowtobuildyourownframeworkHowtobuildyourownframework
Howtobuildyourownframework
 
Decoupling Content Management
Decoupling Content ManagementDecoupling Content Management
Decoupling Content Management
 
Unleashing Creative Freedom with MODX (2015-07-21 @ PHP FRL)
Unleashing Creative Freedom with MODX (2015-07-21 @ PHP FRL)Unleashing Creative Freedom with MODX (2015-07-21 @ PHP FRL)
Unleashing Creative Freedom with MODX (2015-07-21 @ PHP FRL)
 
Making the Most of Modern PHP in Drupal 7
Making the Most of Modern PHP in Drupal 7Making the Most of Modern PHP in Drupal 7
Making the Most of Modern PHP in Drupal 7
 
PHPCR e API Platform: cosa significa davvero sviluppare un CMF con Symfony
PHPCR e API Platform: cosa significa davvero sviluppare un CMF con SymfonyPHPCR e API Platform: cosa significa davvero sviluppare un CMF con Symfony
PHPCR e API Platform: cosa significa davvero sviluppare un CMF con Symfony
 
Advanced php code igniter framework
Advanced php code igniter frameworkAdvanced php code igniter framework
Advanced php code igniter framework
 
WCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoWCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and Alfresco
 
Industrialise PHP ~ ZendCon Europe 2013
Industrialise PHP ~ ZendCon Europe 2013Industrialise PHP ~ ZendCon Europe 2013
Industrialise PHP ~ ZendCon Europe 2013
 
Northeast PHP - High Performance PHP
Northeast PHP - High Performance PHPNortheast PHP - High Performance PHP
Northeast PHP - High Performance PHP
 
PHP at Yahoo!
PHP at Yahoo!PHP at Yahoo!
PHP at Yahoo!
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Php
PhpPhp
Php
 
MongoDB quickstart for Java, PHP, and Python developers
MongoDB quickstart for Java, PHP, and Python developersMongoDB quickstart for Java, PHP, and Python developers
MongoDB quickstart for Java, PHP, and Python developers
 
Php through the eyes of a hoster confoo
Php through the eyes of a hoster confooPhp through the eyes of a hoster confoo
Php through the eyes of a hoster confoo
 
Mongo DB for Java, Python and PHP Developers
Mongo DB for Java, Python and PHP DevelopersMongo DB for Java, Python and PHP Developers
Mongo DB for Java, Python and PHP Developers
 
Zend Framework MVC driven ExtJS
Zend Framework MVC driven ExtJSZend Framework MVC driven ExtJS
Zend Framework MVC driven ExtJS
 

Recently uploaded

Recently uploaded (20)

Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Server-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineServer-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at Priceline
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 

Symfony CMF: un nuovo paradigma per la gestione dei contenuti

  • 1. Symfony CMF un nuovo paradigma per la gestione dei contenuti
  • 2. Symfony CMF buon un nuovo paradigma per la gestione dei contenuti
  • 3. Symfony CMF buon un nuovo paradigma per la gestione dei contenuti approccio
  • 6. No REALLY! CMSes are awesome! http://phpday.it #phpday
  • 7. CMSes are awesome if you are an end user! Click click http://phpday.it #phpday
  • 8. CMSes are awesome if you are a sales guy! Brand http://phpday.it #phpday
  • 9. CMSes sucks if you are a developer! CMS first, framework second http://phpday.it #phpday
  • 10. CMSes nightmares • no clean separation of configuration, logic and content • no clean deployment and staging concept • inconsistent cache layers • lots of legacy baggage • NIH (not invented here) syndrom http://phpday.it #phpday
  • 11. Do we also suffer from NIH? • Based ourselves as much on standard tools and specs • Deliver value within a reasonable time http://phpday.it #phpday
  • 12. CMF = Content Management Framework • In other words: its a toolbox to create your own custom CMS • Not a one size fits all, but increase code sharing • Imagine Diem, Sympal, Apostrophe all build on the same content foundation http://phpday.it #phpday
  • 13. Mission • The Symfony CMF project makes it easier for developers to add CMS functionality to applications built with the Symfony2 PHP framework. Key development principles for the provided set of bundles are scalability, usability, documentation and testing http://phpday.it #phpday
  • 19. Architecture content repository | Jackrabbit http://phpday.it #phpday
  • 20. Content Repository • A content repository is a generic application data “super store.” • Can handle both small and large-scale data interactions • Is expected to manipulate and store structured and unstructured content that vary dynamically http://phpday.it #phpday
  • 21. JSR170 aka JCR1 JSR283 aka JCR2 • how data are stored within the repository is identified and structured from the point of view of the client http://phpday.it #phpday
  • 22. Workspaces • Multiple workspaces, each with its own name and root node • Is similar to a Unix file system structure • Each workspace is independent http://phpday.it #phpday
  • 23. Nodes • Are identified by the path where are stored • ex. id: “/my/path/under/water/fish” • Can be created, deleted, modified, copied... http://phpday.it #phpday
  • 24. Properties • Typed attribute: • STRING, URI, BOOLEAN, LONG, DOUBLE, DECIMAL, BINARY, DATE, NAME, PATH, WEAKREFERENCE REFERENCE • jcr:created, jcr:mimeType http://phpday.it #phpday
  • 25. Nodes • Are typed using namespaced names • nt:file, nt:folder... • nt:unstructured http://phpday.it #phpday
  • 26. Node Mixins • A mixin node type can be assigned to a node during that node's lifetime • mix:referenceable • jcr:uuid http://phpday.it #phpday
  • 27. Node Mixins • mix:versionable • jcr:versionHistory • jcr:predecessors • jcr:baseVersion • jcr:isCheckedOut • jcr:mergeFailed http://phpday.it #phpday
  • 28. Content repository Java implementation http://phpday.it #phpday
  • 29. Architecture phpcr | Jackalope content repository | Jackrabbit http://phpday.it #phpday
  • 30. PHPCR • Aims to provide a standard API that can be used by any PHP content management system to interface with any content repository. • Several Implementations • Jackalope on Jackrabbit • Jackalope on Doctrine DBAL • Midgard2 PHPCR http://phpday.it #phpday
  • 31. PHPCR • PHPCR has been submitted to JCR • http://phpcr.github.com/ http://phpday.it #phpday
  • 32. http://phpday.it #phpday
  • 33. Architecture doctrine | phpcr-odm phpcr | Jackalope content repository | Jackrabbit http://phpday.it #phpday
  • 34. PHPCR-ODM • Sits on top of jackalope • Works like MongoDB or CouchDB ODM, but also includes a tree/graph, versioning and ACL API http://phpday.it #phpday
  • 41. Not all data fits well in PHPCR/JCR • For example aggregation is better done in an RDBMS • Store web store product description in PHPCR/ JCR • Store web store inventory and orders in RDBMS http://phpday.it #phpday
  • 42. Architecture Sf2 | doctrinePHPCRBundle doctrine | phpcr-odm phpcr | Jackalope content repository | Jackrabbit http://phpday.it #phpday
  • 43. DoctrinePHPCRBundle • Document Manager available in the DIC http://phpday.it #phpday
  • 45. Roadmap • PHPCR-ODM: @Child, @Children, @Parent, @ReferenceOne, @ReferenceMany, ... • Make AdminBundle compatible • Create frontend Bundles http://phpday.it #phpday
  • 46. Eating your own dog food • Ideato is rebuilding its site on top of CMF http://phpday.it #phpday
  • 47. Many companies are committed to the effort http://phpday.it #phpday
  • 48. Symfony CMF Camp Cesena, 29-30 of July http://www.unsito.com/c4 http://phpday.it #phpday
  • 49. Resources • irc://freenode/#symfony-cmf • http://cmf.symfony.com/ • https://github.com/symfony-cmf/symfony-cmf/wiki • http://jcp.org/en/jsr/detail?id=283 • http://jcp.org/en/jsr/detail?id=333 http://phpday.it #phpday
  • 50. Thanks! http://joind.in/3023 Michele Orselli Manuel Baldassarri mo@ideato.it mb@ideato.it http://phpday.it #phpday

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. Chi sa cos’è Sf2/Doctrine2?\nChi ha usato Sf2/Doctrine2?\nChi ha “visto” SfCMF?\n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. 9999 conf per rendere il prodotto a misura di 10000 casi\ndeploy upgrade, conf su db difficili da replicare (velocemente) o esportare\ncache oggetti, viste, conf, diversi layer difficili da trattare quando qualcosa non va\nstrumenti vecchi codice vecchio\nlibrerie esterne ex. layer db, templating\n
  11. non stiamo ricadendo nella sindrome poichè invece di concentrarci su sviluppare un prodotto, cerchiamo di guardare agli standard e specifiche consolidate per assemblare una cassetta degli attrezzi necessari per creare valore in tempo ragionevole\n
  12. non un unico prodotto che va bene per tutti ma strumenti che permettano di “creare” un cms adhoc per ogni situazione. Strumenti piccoli che posso assemblare assieme per le esigenze specifiche.\n
  13. \n
  14. I contenuti su web sono rappresentabili come un grafo.\nNella maggior parte dei casi posso semplificare con un albero.\n
  15. Uno dei problemi che si hanno nella progettazione è che i contenuti sono organizzati in un albero, DB relazionali sono stretti\n
  16. \n
  17. Tutte queste richieste non sono facilmente realizzabili con DB relazionali, non sono nati per fare questo. Per questo si è pensato ad un database documentale a grafo\n
  18. Tutte queste richieste non sono facilmente realizzabili con DB relazionali, non sono nati per fare questo. Per questo si è pensato ad un database documentale a grafo\n
  19. \n
  20. Managing users and access control lists\n
  21. Content Repository API for Java Technology\nE’ una specifica Java per cercare di standardizzare l’interfaccia del content repository e come questo permetta di indentificare le informazioni e la loro struttura\nL1 read-only: inizializzazione sessione, lettura dei nodi e proprietà, esportazione xml, query xpath\nL2: scrittura dei contenuti, importazione da altre fonti, modifica dei datatipi\nJava Specification Requests\n\n
  22. Il cuore della specifica è l’organizzazione e il trattamento dei dati che viene chiamato Content Model\n
  23. \n
  24. single value, multivalue\n
  25. tipi di nodo: definiscono una struttura di base\ni nodi tipizzati definiscono vincoli sulla struttura dell’albero\n
  26. I mixin sono dei behaviour\n
  27. \n
  28. esistono diverse implementazioni CR noi utilizzato questo, ci sono diverse versioni tra cui versioni embedded (es in Tomcat) oppure versioni stand-alone che noi utilizziamo\n\n
  29. \n
  30. porting in PHP delle API definite nelle specifiche\ninsieme di interfacce e non l’implementazione\ndefinisce quali interfacce deve soddisfare un client per poter colloquiare con generico CR\n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n