SlideShare ist ein Scribd-Unternehmen logo
1 von 35
System Settings API
 A look at a draft API for storing System
                 Settings
There’s CODE!
There’s CODE!

• That’s gold right?
There’s CODE!

• That’s gold right?
• project as it stands now:
There’s CODE!

• That’s gold right?
• project as it stands now:
 • http://github.com/tizzo/system_settings
There’s CODE!

• That’s gold right?
• project as it stands now:
 • http://github.com/tizzo/system_settings
 • mainly an alternative backend for
    variable_set and variable_get
The Mission
The Mission

• Expand on the great work on exportables
  by getting the system (or something
  similar)
The Mission

• Expand on the great work on exportables
  by getting the system (or something
  similar)
• Make everything exportable by default
The Mission

• Expand on the great work on exportables
  by getting the system (or something
  similar)
• Make everything exportable by default
• Provide Drupal with a robust way to
  identify and replicate features
Hierarchy
Hierarchy

• Settings can be specified in
Hierarchy

• Settings can be specified in
 • hooks
Hierarchy

• Settings can be specified in
 • hooks
 • overridden in the database
Hierarchy

• Settings can be specified in
 • hooks
 • overridden in the database
 • overridden again by alter_hooks
Hierarchy

• Settings can be specified in
 • hooks
 • overridden in the database
 • overridden again by alter_hooks
 • finally overridden in settings.php
Features
Features

• Everything exportable and overrideable
Features

• Everything exportable and overrideable
• Pluggable storage backend
Features

• Everything exportable and overrideable
• Pluggable storage backend
• Change management
Features

• Everything exportable and overrideable
• Pluggable storage backend
• Change management
• Rich settings metadata
Metadata
Metadata
• Metadata is stored so that settings can be
  related to one another
Metadata
• Metadata is stored so that settings can be
  related to one another
• We can identify all settings related to a
  content type or to a given module
Metadata
• Metadata is stored so that settings can be
  related to one another
• We can identify all settings related to a
  content type or to a given module
• Settings no longer build up in the database
  (settings no longer associated can be
  purged)
Metadata
Metadata



• Metadata can be specified simply by
  defining the unique key of the each entry
  (either simple or compex)
Metadata Structure                          node



                               entities

                                            view




                                          commerce


                               modules

                                           views




          commerce_something              commerce


                               groups

                                           views




                                value
Metadata Structure                                     node




• A single setting is
                                             entities

                                                          view




  atomic structured                                     commerce


  data and self                              modules

                                                         views

  contained
                        commerce_something              commerce


                                             groups

                                                         views




                                              value
Metadata Structure                                     node




• A single setting is
                                             entities

                                                          view




  atomic structured                                     commerce


  data and self                              modules

                                                         views

  contained
• Contains all of its
                        commerce_something              commerce


                                             groups


  relations and its                                      views




  value
                                              value
Metadata: An Individual
      Relation
                           node




                           type




               relation    story




                          requires



                          required
                             by
Metadata: An Individual
      Relation
                                            node



• Each relation has a                       type

  unique key (simple or
  complex) and an               relation    story




  arbitrary set of additional              requires


  data                                     required
                                              by
Change Monitoring
Change Monitoring
• Each time the cache is rebuilt a version of
  each setting stored during the last cache
  build is compared to the version generated
  now
Change Monitoring
• Each time the cache is rebuilt a version of
  each setting stored during the last cache
  build is compared to the version generated
  now
• If a change is detected (whether because of
  code or database) callbacks can be
  triggered to respond to the change

Weitere ähnliche Inhalte

Ähnlich wie System settings api

Mike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEFMike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEF
ukdpe
 
Migration Manager Workshop Leucir Marin Sep 2012
Migration Manager Workshop  Leucir Marin Sep 2012Migration Manager Workshop  Leucir Marin Sep 2012
Migration Manager Workshop Leucir Marin Sep 2012
alipaiva
 
Taming Information Chaos in SharePoint 2010
Taming Information Chaos in SharePoint 2010Taming Information Chaos in SharePoint 2010
Taming Information Chaos in SharePoint 2010
Eric Shupps
 

Ähnlich wie System settings api (20)

Refactoring to SOLID Code
Refactoring to SOLID CodeRefactoring to SOLID Code
Refactoring to SOLID Code
 
Configuration and Build Management of Product Line Development with Perforce
Configuration and Build Management of Product Line Development with Perforce  Configuration and Build Management of Product Line Development with Perforce
Configuration and Build Management of Product Line Development with Perforce
 
Basic concepts and terminology for the Requirements Management application
Basic concepts and terminology for the Requirements Management applicationBasic concepts and terminology for the Requirements Management application
Basic concepts and terminology for the Requirements Management application
 
CoreData
CoreDataCoreData
CoreData
 
Uml2
Uml2Uml2
Uml2
 
Mike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEFMike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEF
 
Migration Manager Workshop Leucir Marin Sep 2012
Migration Manager Workshop  Leucir Marin Sep 2012Migration Manager Workshop  Leucir Marin Sep 2012
Migration Manager Workshop Leucir Marin Sep 2012
 
Taming Information Chaos in SharePoint 2010
Taming Information Chaos in SharePoint 2010Taming Information Chaos in SharePoint 2010
Taming Information Chaos in SharePoint 2010
 
Component level design
Component   level designComponent   level design
Component level design
 
Salesforce Training Institute & Courses Pune | SFDC Training PCMC
Salesforce Training Institute & Courses Pune | SFDC Training PCMCSalesforce Training Institute & Courses Pune | SFDC Training PCMC
Salesforce Training Institute & Courses Pune | SFDC Training PCMC
 
E-Commerce Applications Development
E-Commerce Applications Development E-Commerce Applications Development
E-Commerce Applications Development
 
Managed metadata in SharePoint 2010
Managed metadata in SharePoint 2010Managed metadata in SharePoint 2010
Managed metadata in SharePoint 2010
 
Uml3
Uml3Uml3
Uml3
 
Common Data Service – A Business Database!
Common Data Service – A Business Database!Common Data Service – A Business Database!
Common Data Service – A Business Database!
 
Knockout Introduction
Knockout IntroductionKnockout Introduction
Knockout Introduction
 
MVVM with WPF
MVVM with WPFMVVM with WPF
MVVM with WPF
 
Zend_Tool: Practical use and Extending
Zend_Tool: Practical use and ExtendingZend_Tool: Practical use and Extending
Zend_Tool: Practical use and Extending
 
Mcv design patterns
Mcv design patternsMcv design patterns
Mcv design patterns
 
Oracle PIM: Phantasmal Item Descriptions in your Organization
Oracle PIM: Phantasmal Item Descriptions in your OrganizationOracle PIM: Phantasmal Item Descriptions in your Organization
Oracle PIM: Phantasmal Item Descriptions in your Organization
 
Salesforce talk
Salesforce talkSalesforce talk
Salesforce talk
 

System settings api

Hinweis der Redaktion