Simple data attributes

The framework features a global attribute collection which is useful for storing data in a key/value format. This is mostly used for storing settings, which are small pieces of data. The entire collection of attributes are loaded on every post back, so it should not be used for hugh amounts of data.

The following example demonstrates how to add data to the attribute collection, as well as reading values.

// Save value
SMAttributes::SetAttribute("MyKey", "MyValue");

// Get value
$value = SMAttributes::GetAttribute("MyKey");
Notice that data added to the collection is committed between the life cycle events Unload and Finalize. To ensure important data, Commit may be invoked on the object.

The following table describes the functionality of the global attribute collection in greater details.


SMAttributes class

Function
Return type Description
::SetAttribute($key:string, $value:string)

Set the value of the specified attribute. If attribute does not exist, it will be created. If attribute exists, it will be updated. The key must be a unique key - prefix with the name of the extension in which the attribute collection is used, to avoid overwriting attributes created by other extensions.
::RemoveAttribute($key:string)
Boolean
Remove attribute with the specified key. Returns True if attribute is found and removed, otherwise False.
::AttributeExists($key:string)
Boolean
Returns True if given attribute exists, otherwise False.
::GetAttribute($key:string)
String
Get value of attribute with the given key. Will return null if attribute is not found.
::Commit()

Commit attribute collection. This function is automatically invoked between Unload and Finalize in the life cycle.
::CollectionChanged()
Boolean
Will return True if changes has been made to attributes, otherwise False.