1: <?php
2:
3: namespace Charcoal\Config;
4:
5: /**
6: * Describes an object that can be configured with an instance of {@see ConfigInterface}.
7: *
8: * This interface can be fully implemented with its accompanying {@see ConfigurableTrait}.
9: */
10: interface ConfigurableInterface
11: {
12: /**
13: * Sets the object's configuration container.
14: *
15: * @param mixed $config The Config object or dataset.
16: * @return ConfigurableInterface Chainable
17: */
18: public function setConfig($config);
19:
20: /**
21: * Gets the object's configuration container or a specific key from the container.
22: *
23: * @param string|null $key If provided, the data key to retrieve.
24: * @return mixed If $key is NULL, the Config object is returned.
25: * If $key is given, its value on the Config object is returned.
26: */
27: public function config($key = null);
28: }
29: