summaryrefslogtreecommitdiff
path: root/server/vendor/php-opencloud/common/src/Common/HydratorStrategyTrait.php
diff options
context:
space:
mode:
authormanzerbredes <loic.guegan_secondary@yahoo.fr>2016-03-15 16:17:39 +0100
committermanzerbredes <loic.guegan_secondary@yahoo.fr>2016-03-15 16:17:39 +0100
commit26d10bc0fa4befbac54453228ae1ce89021bdec2 (patch)
tree029d7240ecf7416205e5f76cf9107a6b5bdf8ca3 /server/vendor/php-opencloud/common/src/Common/HydratorStrategyTrait.php
parent8ad216dedf017f3d6de047a25d08db3b98e16361 (diff)
parent03ef74d0cfe675a6e18a91f039182ca1b248d8f5 (diff)
Merge branch 'develop' into loic
Diffstat (limited to 'server/vendor/php-opencloud/common/src/Common/HydratorStrategyTrait.php')
-rw-r--r--server/vendor/php-opencloud/common/src/Common/HydratorStrategyTrait.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/server/vendor/php-opencloud/common/src/Common/HydratorStrategyTrait.php b/server/vendor/php-opencloud/common/src/Common/HydratorStrategyTrait.php
new file mode 100644
index 0000000..4995747
--- /dev/null
+++ b/server/vendor/php-opencloud/common/src/Common/HydratorStrategyTrait.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace OpenCloud\Common;
+
+/**
+ * Represents common functionality for populating, or "hydrating", an object with arbitrary data.
+ *
+ * @package OpenCloud\Common
+ */
+trait HydratorStrategyTrait
+{
+ /**
+ * Hydrates an object with set data
+ *
+ * @param array $data The data to set
+ * @param array $aliases Any aliases
+ */
+ private function hydrate(array $data, array $aliases = [])
+ {
+ foreach ($data as $key => $val) {
+ $key = isset($aliases[$key]) ? $aliases[$key] : $key;
+ if (property_exists($this, $key)) {
+ $this->$key = $val;
+ }
+ }
+ }
+
+ private function set($key, $property, array $data, callable $fn = null)
+ {
+ if (isset($data[$key]) && property_exists($this, $property)) {
+ $value = $fn ? call_user_func($fn, $data[$key]) : $data[$key];
+ $this->$property = $value;
+ }
+ }
+}