SlideShare une entreprise Scribd logo
1  sur  50
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

Contenu connexe

En vedette (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
 

Similaire à Symfony CMF: un nuovo paradigma per la gestione dei contenuti

Howtobuildyourownframework
HowtobuildyourownframeworkHowtobuildyourownframework
Howtobuildyourownframework
hazzaz
 

Similaire à 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
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

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

Notes de l'éditeur

  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