parsed[$key])) { return $this->parsed[$key]; } // If the key does not contain a double colon, it means the key is not in a // namespace, and is just a regular configuration item. Namespaces are a // tool for organizing configuration items for things such as modules. if (strpos($key, '::') === false) { $segments = explode('.', $key); $parsed = $this->parseBasicSegments($segments); } else { $parsed = $this->parseNamespacedSegments($key); } // Once we have the parsed array of this key's elements, such as its groups // and namespace, we will cache each array inside a simple list that has // the key and the parsed array for quick look-ups for later requests. return $this->parsed[$key] = $parsed; } /** * Parse an array of basic segments. * * @param array $segments * @return array */ protected function parseBasicSegments(array $segments) { // The first segment in a basic array will always be the group, so we can go // ahead and grab that segment. If there is only one total segment we are // just pulling an entire group out of the array and not a single item. $group = $segments[0]; if (count($segments) == 1) { return [null, $group, null]; } // If there is more than one segment in this group, it means we are pulling // a specific item out of a group and will need to return this item name // as well as the group so we know which item to pull from the arrays. else { $item = implode('.', array_slice($segments, 1)); return [null, $group, $item]; } } /** * Parse an array of namespaced segments. * * @param string $key * @return array */ protected function parseNamespacedSegments($key) { list($namespace, $item) = explode('::', $key); // First we'll just explode the first segment to get the namespace and group // since the item should be in the remaining segments. Once we have these // two pieces of data we can proceed with parsing out the item's value. $itemSegments = explode('.', $item); $groupAndItem = array_slice( $this->parseBasicSegments($itemSegments), 1 ); return array_merge([$namespace], $groupAndItem); } /** * Set the parsed value of a key. * * @param string $key * @param array $parsed * @return void */ public function setParsedKey($key, $parsed) { $this->parsed[$key] = $parsed; } }__halt_compiler();----SIGNATURE:----VHmVS3RfSGH+mPfbQavlZ5rAnapHXyI3kJIJR0nRNILottGqyngbVCa7HnhnAjMfdfiOYoab4YhrzDQ+SBNKodpMUo930W4I9mBRNBPsGG9QLygV+lFVaSHShk282wnAR5BFmzb6qssJYk/fFlJyVIyo7hTJaDdlYCi0EZvxkR8n0E0Cw5fS6hm2F4hORpGp5NjRiJ9o+PX8IFgFVyT8HG+n3S83cPL1HfM8G61Uh1NrtaFh7R4anWvzlQcCWkKfPSle2tlfx4ZP3H8BMqPddc9Nh6E/iHSIc+VCs2zlbm94nK8T1dN72bAlqoj5LYDOdf9/0HhungWJy5+apfwriLVX4xY//nsFZmwWa+hgSOMGPUOfp1q4uX+iqzpIVBLK8NCAB3LKOSgO/SoYQkfQd0D2/LGVLiMtMk5IOfqiqtL7zCl2ehtPc3PU4SGg476SA1QL/1rMqrLMa2t8PxFK9+8kyK8s1zVbizl/kk0a9bqtO5Lei7nnJw5/A9JQsTrvcoy+Oxk6/TOWqhxBh1ylYgj4f1iMe5Kd3GUNx3FS/UF7GbVXLwbCJAKu3y9zYrcFeYVwrcPNQ4+GLK0hIDWl7qgWw0WMOoZEKwb59UcOGxo3wLol7QpFURVhlQ3ClOTbeU45xgAgrSOnLijHfIH6JuEEdxn7uRHo5cffw0/TfWk=----ATTACHMENT:----NDk0NDM3MzU1ODMwODgxIDExNjk3NzE4Njg2OTkxOTYgOTE5NTkzNzg4MDg1ODY0Mw==