web/rsln/Zend/Application/Resource/Db.php
author Samuel Huron <samuel.huron@centrepompidou.fr>
Tue, 08 Mar 2011 10:57:18 +0100
changeset 52 d522fd390921
parent 20 7e0a67a20e74
permissions -rw-r--r--
TEST SUR IE 9 ( changer le host de la library tooltip pour optimisation maximum)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     1
<?php
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     2
/**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     3
 * Zend Framework
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     4
 *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     5
 * LICENSE
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     6
 *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     7
 * This source file is subject to the new BSD license that is bundled
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     8
 * with this package in the file LICENSE.txt.
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     9
 * It is also available through the world-wide-web at this URL:
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    10
 * http://framework.zend.com/license/new-bsd
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    11
 * If you did not receive a copy of the license and are unable to
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    12
 * obtain it through the world-wide-web, please send an email
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    13
 * to license@zend.com so we can send you a copy immediately.
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    14
 *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    15
 * @category   Zend
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    16
 * @package    Zend_Application
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    17
 * @subpackage Resource
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    18
 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    19
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    20
 * @version    $Id: Db.php 22544 2010-07-10 15:01:37Z freak $
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    21
 */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    22
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    23
/**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    24
 * @see Zend_Application_Resource_ResourceAbstract
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    25
 */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    26
require_once 'Zend/Application/Resource/ResourceAbstract.php';
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    27
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    28
/**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    29
 * Resource for creating database adapter
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    30
 *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    31
 * @uses       Zend_Application_Resource_ResourceAbstract
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    32
 * @category   Zend
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    33
 * @package    Zend_Application
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    34
 * @subpackage Resource
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    35
 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    36
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    37
 */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    38
class Zend_Application_Resource_Db extends Zend_Application_Resource_ResourceAbstract
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    39
{
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    40
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    41
     * Adapter to use
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    42
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    43
     * @var string
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    44
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    45
    protected $_adapter = null;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    46
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    47
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    48
     * @var Zend_Db_Adapter_Interface
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    49
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    50
    protected $_db;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    51
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    52
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    53
     * Parameters to use
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    54
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    55
     * @var array
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    56
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    57
    protected $_params = array();
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    58
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    59
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    60
     * Wether to register the created adapter as default table adapter
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    61
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    62
     * @var boolean
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    63
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    64
    protected $_isDefaultTableAdapter = true;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    65
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    66
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    67
     * Set the adapter
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    68
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    69
     * @param  $adapter string
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    70
     * @return Zend_Application_Resource_Db
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    71
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    72
    public function setAdapter($adapter)
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    73
    {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    74
        $this->_adapter = $adapter;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    75
        return $this;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    76
    }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    77
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    78
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    79
     * Adapter type to use
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    80
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    81
     * @return string
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    82
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    83
    public function getAdapter()
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    84
    {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    85
        return $this->_adapter;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    86
    }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    87
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    88
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    89
     * Set the adapter params
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    90
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    91
     * @param  $adapter string
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    92
     * @return Zend_Application_Resource_Db
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    93
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    94
    public function setParams(array $params)
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    95
    {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    96
        $this->_params = $params;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    97
        return $this;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    98
    }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    99
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   100
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   101
     * Adapter parameters
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   102
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   103
     * @return array
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   104
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   105
    public function getParams()
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   106
    {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   107
        return $this->_params;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   108
    }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   109
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   110
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   111
     * Set whether to use this as default table adapter
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   112
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   113
     * @param  boolean $defaultTableAdapter
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   114
     * @return Zend_Application_Resource_Db
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   115
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   116
    public function setIsDefaultTableAdapter($isDefaultTableAdapter)
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   117
    {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   118
        $this->_isDefaultTableAdapter = $isDefaultTableAdapter;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   119
        return $this;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   120
    }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   121
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   122
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   123
     * Is this adapter the default table adapter?
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   124
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   125
     * @return void
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   126
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   127
    public function isDefaultTableAdapter()
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   128
    {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   129
        return $this->_isDefaultTableAdapter;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   130
    }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   131
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   132
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   133
     * Retrieve initialized DB connection
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   134
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   135
     * @return null|Zend_Db_Adapter_Interface
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   136
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   137
    public function getDbAdapter()
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   138
    {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   139
        if ((null === $this->_db)
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   140
            && (null !== ($adapter = $this->getAdapter()))
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   141
        ) {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   142
            $this->_db = Zend_Db::factory($adapter, $this->getParams());
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   143
        }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   144
        return $this->_db;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   145
    }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   146
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   147
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   148
     * Defined by Zend_Application_Resource_Resource
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   149
     *
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   150
     * @return Zend_Db_Adapter_Abstract|null
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   151
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   152
    public function init()
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   153
    {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   154
        if (null !== ($db = $this->getDbAdapter())) {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   155
            if ($this->isDefaultTableAdapter()) {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   156
                Zend_Db_Table::setDefaultAdapter($db);
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   157
            }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   158
            return $db;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   159
        }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   160
    }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   161
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   162
    /**
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   163
     * Set the default metadata cache
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   164
     * 
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   165
     * @param string|Zend_Cache_Core $cache
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   166
     * @return Zend_Application_Resource_Db
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   167
     */
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   168
    public function setDefaultMetadataCache($cache)
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   169
    {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   170
        $metadataCache = null;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   171
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   172
        if (is_string($cache)) {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   173
            $bootstrap = $this->getBootstrap();
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   174
            if ($bootstrap instanceof Zend_Application_Bootstrap_ResourceBootstrapper
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   175
                && $bootstrap->hasPluginResource('CacheManager')
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   176
            ) {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   177
                $cacheManager = $bootstrap->bootstrap('CacheManager')
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   178
                    ->getResource('CacheManager');
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   179
                if (null !== $cacheManager && $cacheManager->hasCache($cache)) {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   180
                    $metadataCache = $cacheManager->getCache($cache);
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   181
                }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   182
            }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   183
        } else if ($cache instanceof Zend_Cache_Core) {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   184
            $metadataCache = $cache;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   185
        }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   186
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   187
        if ($metadataCache instanceof Zend_Cache_Core) {
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   188
            Zend_Db_Table::setDefaultMetadataCache($metadataCache);
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   189
        }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   190
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   191
        return $this;
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   192
    }
7e0a67a20e74 add new rsln page
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   193
}