summaryrefslogtreecommitdiff
path: root/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure
diff options
context:
space:
mode:
Diffstat (limited to 'poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure')
-rw-r--r--poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/ConfigReaderInterface.php33
-rw-r--r--poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/IniReader.php184
-rw-r--r--poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/PhpReader.php103
3 files changed, 320 insertions, 0 deletions
diff --git a/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/ConfigReaderInterface.php b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/ConfigReaderInterface.php
new file mode 100644
index 0000000..f137355
--- /dev/null
+++ b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/ConfigReaderInterface.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
+ * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link http://cakephp.org CakePHP(tm) Project
+ * @package Cake.Core
+ * @since CakePHP(tm) v 1.0.0.2363
+ * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
+ */
+
+/**
+ * An interface for creating objects compatible with Configure::load()
+ *
+ * @package Cake.Core
+ */
+interface ConfigReaderInterface {
+
+/**
+ * Read method is used for reading configuration information from sources.
+ * These sources can either be static resources like files, or dynamic ones like
+ * a database, or other datasource.
+ *
+ * @param string $key
+ * @return array An array of data to merge into the runtime configuration
+ */
+ public function read($key);
+
+}
diff --git a/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/IniReader.php b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/IniReader.php
new file mode 100644
index 0000000..debd685
--- /dev/null
+++ b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/IniReader.php
@@ -0,0 +1,184 @@
+<?php
+/**
+ * IniReader
+ *
+ * PHP 5
+ *
+ * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
+ * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link http://cakephp.org CakePHP(tm) Project
+ * @package Cake.Configure
+ * @since CakePHP(tm) v 2.0
+ * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
+ */
+App::uses('Hash', 'Utility');
+
+/**
+ * Ini file configuration engine.
+ *
+ * Since IniReader uses parse_ini_file underneath, you should be aware that this
+ * class shares the same behavior, especially with regards to boolean and null values.
+ *
+ * In addition to the native `parse_ini_file` features, IniReader also allows you
+ * to create nested array structures through usage of `.` delimited names. This allows
+ * you to create nested arrays structures in an ini config file. For example:
+ *
+ * `db.password = secret` would turn into `array('db' => array('password' => 'secret'))`
+ *
+ * You can nest properties as deeply as needed using `.`'s. In addition to using `.` you
+ * can use standard ini section notation to create nested structures:
+ *
+ * {{{
+ * [section]
+ * key = value
+ * }}}
+ *
+ * Once loaded into Configure, the above would be accessed using:
+ *
+ * `Configure::read('section.key');
+ *
+ * You can combine `.` separated values with sections to create more deeply
+ * nested structures.
+ *
+ * IniReader also manipulates how the special ini values of
+ * 'yes', 'no', 'on', 'off', 'null' are handled. These values will be
+ * converted to their boolean equivalents.
+ *
+ * @package Cake.Configure
+ * @see http://php.net/parse_ini_file
+ */
+class IniReader implements ConfigReaderInterface {
+
+/**
+ * The path to read ini files from.
+ *
+ * @var array
+ */
+ protected $_path;
+
+/**
+ * The section to read, if null all sections will be read.
+ *
+ * @var string
+ */
+ protected $_section;
+
+/**
+ * Build and construct a new ini file parser. The parser can be used to read
+ * ini files that are on the filesystem.
+ *
+ * @param string $path Path to load ini config files from.
+ * @param string $section Only get one section, leave null to parse and fetch
+ * all sections in the ini file.
+ */
+ public function __construct($path, $section = null) {
+ $this->_path = $path;
+ $this->_section = $section;
+ }
+
+/**
+ * Read an ini file and return the results as an array.
+ *
+ * @param string $file Name of the file to read. The chosen file
+ * must be on the reader's path.
+ * @return array
+ * @throws ConfigureException
+ */
+ public function read($file) {
+ $filename = $this->_path . $file;
+ if (!file_exists($filename)) {
+ $filename .= '.ini';
+ if (!file_exists($filename)) {
+ throw new ConfigureException(__d('cake_dev', 'Could not load configuration files: %s or %s', substr($filename, 0, -4), $filename));
+ }
+ }
+ $contents = parse_ini_file($filename, true);
+ if (!empty($this->_section) && isset($contents[$this->_section])) {
+ $values = $this->_parseNestedValues($contents[$this->_section]);
+ } else {
+ $values = array();
+ foreach ($contents as $section => $attribs) {
+ if (is_array($attribs)) {
+ $values[$section] = $this->_parseNestedValues($attribs);
+ } else {
+ $parse = $this->_parseNestedValues(array($attribs));
+ $values[$section] = array_shift($parse);
+ }
+ }
+ }
+ return $values;
+ }
+
+/**
+ * parses nested values out of keys.
+ *
+ * @param array $values Values to be exploded.
+ * @return array Array of values exploded
+ */
+ protected function _parseNestedValues($values) {
+ foreach ($values as $key => $value) {
+ if ($value === '1') {
+ $value = true;
+ }
+ if ($value === '') {
+ $value = false;
+ }
+ unset($values[$key]);
+ if (strpos($key, '.') !== false) {
+ $values = Hash::insert($values, $key, $value);
+ } else {
+ $values[$key] = $value;
+ }
+ }
+ return $values;
+ }
+
+/**
+ * Dumps the state of Configure data into an ini formatted string.
+ *
+ * @param string $filename The filename on $this->_path to save into.
+ * @param array $data The data to convert to ini file.
+ * @return int Bytes saved.
+ */
+ public function dump($filename, $data) {
+ $result = array();
+ foreach ($data as $key => $value) {
+ if ($key[0] != '[') {
+ $result[] = "[$key]";
+ }
+ if (is_array($value)) {
+ $keyValues = Hash::flatten($value, '.');
+ foreach ($keyValues as $k => $v) {
+ $result[] = "$k = " . $this->_value($v);
+ }
+ }
+ }
+ $contents = join("\n", $result);
+ return file_put_contents($this->_path . $filename, $contents);
+ }
+
+/**
+ * Converts a value into the ini equivalent
+ *
+ * @param mixed $value to export.
+ * @return string String value for ini file.
+ */
+ protected function _value($val) {
+ if ($val === null) {
+ return 'null';
+ }
+ if ($val === true) {
+ return 'true';
+ }
+ if ($val === false) {
+ return 'false';
+ }
+ return (string)$val;
+ }
+
+}
diff --git a/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/PhpReader.php b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/PhpReader.php
new file mode 100644
index 0000000..f5d9619
--- /dev/null
+++ b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Configure/PhpReader.php
@@ -0,0 +1,103 @@
+<?php
+/**
+ * PhpReader file
+ *
+ * PHP 5
+ *
+ * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * Redistributions of files must retain the above copyright notice
+ *
+ * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link http://book.cakephp.org/2.0/en/development/configuration.html#loading-configuration-files CakePHP(tm) Configuration
+ * @package Cake.Configure
+ * @since CakePHP(tm) v 2.0
+ * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
+ */
+
+/**
+ * PHP Reader allows Configure to load configuration values from
+ * files containing simple PHP arrays.
+ *
+ * Files compatible with PhpReader should define a `$config` variable, that
+ * contains all of the configuration data contained in the file.
+ *
+ * @package Cake.Configure
+ */
+class PhpReader implements ConfigReaderInterface {
+
+/**
+ * The path this reader finds files on.
+ *
+ * @var string
+ */
+ protected $_path = null;
+
+/**
+ * Constructor for PHP Config file reading.
+ *
+ * @param string $path The path to read config files from. Defaults to APP . 'Config' . DS
+ */
+ public function __construct($path = null) {
+ if (!$path) {
+ $path = APP . 'Config' . DS;
+ }
+ $this->_path = $path;
+ }
+
+/**
+ * Read a config file and return its contents.
+ *
+ * Files with `.` in the name will be treated as values in plugins. Instead of reading from
+ * the initialized path, plugin keys will be located using App::pluginPath().
+ *
+ * @param string $key The identifier to read from. If the key has a . it will be treated
+ * as a plugin prefix.
+ * @return array Parsed configuration values.
+ * @throws ConfigureException when files don't exist or they don't contain `$config`.
+ * Or when files contain '..' as this could lead to abusive reads.
+ */
+ public function read($key) {
+ if (strpos($key, '..') !== false) {
+ throw new ConfigureException(__d('cake_dev', 'Cannot load configuration files with ../ in them.'));
+ }
+ if (substr($key, -4) === '.php') {
+ $key = substr($key, 0, -4);
+ }
+ list($plugin, $key) = pluginSplit($key);
+
+ if ($plugin) {
+ $file = App::pluginPath($plugin) . 'Config' . DS . $key;
+ } else {
+ $file = $this->_path . $key;
+ }
+ $file .= '.php';
+ if (!is_file($file)) {
+ if (!is_file(substr($file, 0, -4))) {
+ throw new ConfigureException(__d('cake_dev', 'Could not load configuration files: %s or %s', $file, substr($file, 0, -4)));
+ }
+ }
+ include $file;
+ if (!isset($config)) {
+ throw new ConfigureException(
+ sprintf(__d('cake_dev', 'No variable $config found in %s.php'), $file)
+ );
+ }
+ return $config;
+ }
+
+/**
+ * Converts the provided $data into a string of PHP code that can
+ * be used saved into a file and loaded later.
+ *
+ * @param string $filename The filename to create on $this->_path.
+ * @param array $data Data to dump.
+ * @return int Bytes saved.
+ */
+ public function dump($filename, $data) {
+ $contents = '<?php' . "\n" . '$config = ' . var_export($data, true) . ';';
+ return file_put_contents($this->_path . $filename, $contents);
+ }
+
+}