Вход Регистрация
Файл: concrete5.7.5.6/concrete/vendor/tedivm/stash/src/Stash/Driver/Sub/SqlitePdo.php
Строк: 54
<?php

/*
 * This file is part of the Stash package.
 *
 * (c) Robert Hafner <tedivm@tedivm.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace StashDriverSub;

/**
 * Class SqlitePDO
 *
 * This SQLite subdriver uses PDO and the latest version of SQLite.
 *
 * @internal
 * @package Stash
 * @author  Robert Hafner <tedivm@tedivm.com>
 */
class SqlitePdo extends Sqlite
{
    
/**
     * Output of buildDriver, used to interact with the relevant SQLite extension.
     *
     * @var PDO
     */
    
protected $driver;

    
/**
     * PDO driver string, used to distinguish between SQLite versions.
     *
     * @var string
     */
    
protected static $pdoDriver 'sqlite';

    
/**
     * {@inheritdoc}
     */
    
protected $responseCode PDO::FETCH_ASSOC;

    
/**
     * {@inheritdoc}
     */
    
public function __construct($path$directoryPermission$filePermission$busyTimeout)
    {
        
parent::__construct($path$directoryPermission$filePermission$busyTimeout);
        
$this->responseCode PDO::FETCH_ASSOC;
    }

    
/**
     * Checks that PDO extension is present and has the appropriate SQLite driver.
     *
     */
    
public static function isAvailable()
    {
        
$drivers class_exists('PDO'false) ? PDO::getAvailableDrivers() : array();

        return 
in_array(static::$pdoDriver$drivers);
    }

    
/**
     * {@inheritdoc}
     */
    
protected function setTimeout($milliseconds)
    {
        if (!(
$driver $this->getDriver())) {
            return 
false;
        }

        
$timeout ceil($milliseconds 1000);
        
$driver->setAttribute(PDO::ATTR_TIMEOUT$timeout);
    }

    
/**
     * {@inheritdoc}
     */
    
protected function buildDriver()
    {
        
$db = new PDO(static::$pdoDriver ':' $this->path);

        return 
$db;
    }
}
Онлайн: 0
Реклама