Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / dbal / lib / Doctrine / DBAL / Driver / DrizzlePDOMySql / Driver.php
1 <?php
2 /*
3  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
4  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
5  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
6  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
7  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
8  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
10  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
11  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
12  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
13  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14  *
15  * This software consists of voluntary contributions made by many individuals
16  * and is licensed under the MIT license. For more information, see
17  * <http://www.doctrine-project.org>.
18  */
19
20 namespace Doctrine\DBAL\Driver\DrizzlePDOMySql;
21
22 /**
23  * Drizzle driver using PDO MySql.
24  *
25  * @author Kim Hemsø Rasmussen <kimhemsoe@gmail.com>
26  */
27 class Driver implements \Doctrine\DBAL\Driver
28 {
29     /**
30      * {@inheritdoc}
31      */
32     public function connect(array $params, $username = null, $password = null, array $driverOptions = array())
33     {
34         $conn = new Connection(
35             $this->_constructPdoDsn($params),
36             $username,
37             $password,
38             $driverOptions
39         );
40         return $conn;
41     }
42
43     /**
44      * Constructs the Drizzle MySql PDO DSN.
45      *
46      * @return string  The DSN.
47      */
48     private function _constructPdoDsn(array $params)
49     {
50         $dsn = 'mysql:';
51         if (isset($params['host']) && $params['host'] != '') {
52             $dsn .= 'host=' . $params['host'] . ';';
53         }
54         if (isset($params['port'])) {
55             $dsn .= 'port=' . $params['port'] . ';';
56         }
57         if (isset($params['dbname'])) {
58             $dsn .= 'dbname=' . $params['dbname'] . ';';
59         }
60         if (isset($params['unix_socket'])) {
61             $dsn .= 'unix_socket=' . $params['unix_socket'] . ';';
62         }
63
64         return $dsn;
65     }
66
67     /**
68      * {@inheritdoc}
69      */
70     public function getDatabasePlatform()
71     {
72         return new \Doctrine\DBAL\Platforms\DrizzlePlatform();
73     }
74
75     /**
76      * {@inheritdoc}
77      */
78     public function getSchemaManager(\Doctrine\DBAL\Connection $conn)
79     {
80         return new \Doctrine\DBAL\Schema\DrizzleSchemaManager($conn);
81     }
82
83     /**
84      * {@inheritdoc}
85      */
86     public function getName()
87     {
88         return 'drizzle_pdo_mysql';
89     }
90
91     /**
92      * {@inheritdoc}
93      */
94     public function getDatabase(\Doctrine\DBAL\Connection $conn)
95     {
96         $params = $conn->getParams();
97         return $params['dbname'];
98     }
99 }