0
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 al...
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 ...
The Mission

• Expand on the great work on exportables
  by getting the system (or something
  similar)
• Make everything ...
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
 • final...
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...
Metadata
• Metadata is stored so that settings can be
  related to one another
• We can identify all settings related to a...
Metadata
Metadata



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



                               entities

                             ...
Metadata Structure                                     node




• A single setting is
                                    ...
Metadata Structure                                     node




• A single setting is
                                    ...
Metadata: An Individual
      Relation
                           node




                           type




           ...
Metadata: An Individual
      Relation
                                            node



• Each relation has a          ...
Change Monitoring
Change Monitoring
• Each time the cache is rebuilt a version of
  each setting stored during the last cache
  build is com...
Change Monitoring
• Each time the cache is rebuilt a version of
  each setting stored during the last cache
  build is com...
Upcoming SlideShare
Loading in...5
×

System settings api

286

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
286
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide


























  • Transcript of "System settings api"

    1. 1. System Settings API A look at a draft API for storing System Settings
    2. 2. There’s CODE!
    3. 3. There’s CODE! • That’s gold right?
    4. 4. There’s CODE! • That’s gold right? • project as it stands now:
    5. 5. There’s CODE! • That’s gold right? • project as it stands now: • http://github.com/tizzo/system_settings
    6. 6. 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
    7. 7. The Mission
    8. 8. The Mission • Expand on the great work on exportables by getting the system (or something similar)
    9. 9. The Mission • Expand on the great work on exportables by getting the system (or something similar) • Make everything exportable by default
    10. 10. 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
    11. 11. Hierarchy
    12. 12. Hierarchy • Settings can be specified in
    13. 13. Hierarchy • Settings can be specified in • hooks
    14. 14. Hierarchy • Settings can be specified in • hooks • overridden in the database
    15. 15. Hierarchy • Settings can be specified in • hooks • overridden in the database • overridden again by alter_hooks
    16. 16. Hierarchy • Settings can be specified in • hooks • overridden in the database • overridden again by alter_hooks • finally overridden in settings.php
    17. 17. Features
    18. 18. Features • Everything exportable and overrideable
    19. 19. Features • Everything exportable and overrideable • Pluggable storage backend
    20. 20. Features • Everything exportable and overrideable • Pluggable storage backend • Change management
    21. 21. Features • Everything exportable and overrideable • Pluggable storage backend • Change management • Rich settings metadata
    22. 22. Metadata
    23. 23. Metadata • Metadata is stored so that settings can be related to one another
    24. 24. 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
    25. 25. 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)
    26. 26. Metadata
    27. 27. Metadata • Metadata can be specified simply by defining the unique key of the each entry (either simple or compex)
    28. 28. Metadata Structure node entities view commerce modules views commerce_something commerce groups views value
    29. 29. Metadata Structure node • A single setting is entities view atomic structured commerce data and self modules views contained commerce_something commerce groups views value
    30. 30. 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
    31. 31. Metadata: An Individual Relation node type relation story requires required by
    32. 32. 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
    33. 33. Change Monitoring
    34. 34. 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
    35. 35. 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
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×