Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libs/Zend/Config/Writer/Array.php')
-rw-r--r--libs/Zend/Config/Writer/Array.php103
1 files changed, 90 insertions, 13 deletions
diff --git a/libs/Zend/Config/Writer/Array.php b/libs/Zend/Config/Writer/Array.php
index 6e9b158997..dd880b010b 100644
--- a/libs/Zend/Config/Writer/Array.php
+++ b/libs/Zend/Config/Writer/Array.php
@@ -14,42 +14,119 @@
*
* @category Zend
* @package Zend_Config
- * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
- * @version $Id: Array.php 20096 2010-01-06 02:05:09Z bkarwin $
+ * @version $Id: Array.php 16201 2009-06-21 18:51:15Z thomas $
*/
/**
* @see Zend_Config_Writer
*/
-// require_once 'Zend/Config/Writer/FileAbstract.php';
+require_once 'Zend/Config/Writer.php';
/**
* @category Zend
* @package Zend_Config
- * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
-class Zend_Config_Writer_Array extends Zend_Config_Writer_FileAbstract
+class Zend_Config_Writer_Array extends Zend_Config_Writer
{
/**
- * Render a Zend_Config into a PHP Array config string.
+ * Filename to write to
*
- * @since 1.10
- * @return string
+ * @var string
*/
- public function render()
+ protected $_filename = null;
+
+ /**
+ * Wether to exclusively lock the file or not
+ *
+ * @var boolean
+ */
+ protected $_exclusiveLock = false;
+
+ /**
+ * Set the target filename
+ *
+ * @param string $filename
+ * @return Zend_Config_Writer_Array
+ */
+ public function setFilename($filename)
+ {
+ $this->_filename = $filename;
+
+ return $this;
+ }
+
+ /**
+ * Set wether to exclusively lock the file or not
+ *
+ * @param boolean $exclusiveLock
+ * @return Zend_Config_Writer_Array
+ */
+ public function setExclusiveLock($exclusiveLock)
+ {
+ $this->_exclusiveLock = $exclusiveLock;
+
+ return $this;
+ }
+
+ /**
+ * Defined by Zend_Config_Writer
+ *
+ * @param string $filename
+ * @param Zend_Config $config
+ * @param boolean $exclusiveLock
+ * @throws Zend_Config_Exception When filename was not set
+ * @throws Zend_Config_Exception When filename is not writable
+ * @return void
+ */
+ public function write($filename = null, Zend_Config $config = null, $exclusiveLock = null)
{
+ if ($filename !== null) {
+ $this->setFilename($filename);
+ }
+
+ if ($config !== null) {
+ $this->setConfig($config);
+ }
+
+ if ($exclusiveLock !== null) {
+ $this->setExclusiveLock($exclusiveLock);
+ }
+
+ if ($this->_filename === null) {
+ require_once 'Zend/Config/Exception.php';
+ throw new Zend_Config_Exception('No filename was set');
+ }
+
+ if ($this->_config === null) {
+ require_once 'Zend/Config/Exception.php';
+ throw new Zend_Config_Exception('No config was set');
+ }
+
$data = $this->_config->toArray();
$sectionName = $this->_config->getSectionName();
-
+
if (is_string($sectionName)) {
$data = array($sectionName => $data);
}
-
+
$arrayString = "<?php\n"
. "return " . var_export($data, true) . ";\n";
-
- return $arrayString;
+
+ $flags = 0;
+
+ if ($this->_exclusiveLock) {
+ $flags |= LOCK_EX;
+ }
+
+ $result = @file_put_contents($this->_filename, $arrayString, $flags);
+
+ if ($result === false) {
+ require_once 'Zend/Config/Exception.php';
+ throw new Zend_Config_Exception('Could not write to file "' . $this->_filename . '"');
+ }
}
}