Your IP : 216.73.216.229


Current Path : /proc/1908984/root/proc/thread-self/root/tmp/
Upload File :
Current File : //proc/1908984/root/proc/thread-self/root/tmp/phpAERZTy

<?php

namespace Nextend\Framework\Database;

abstract class AbstractPlatformConnector {

    protected $_prefixJoker = '#__';

    protected $_prefix = '';

    public function getPrefix() {
        return $this->_prefix;
    }

    public function parsePrefix($query) {
        return str_replace($this->_prefixJoker, $this->_prefix, $query);
    }

    abstract public function insertId();

    abstract public function query($query, $attributes = false);

    /**
     * Return with one row by query string
     *
     * @param string     $query
     * @param array|bool $attributes for parameter binding
     *
     * @return mixed
     */
    abstract public function queryRow($query, $attributes = false);

    abstract public function queryAll($query, $attributes = false, $type = "assoc", $key = null);


    /**
     * @param string $text
     * @param bool   $escape
     *
     * @return string
     */
    abstract public function quote($text, $escape = true);

    /**
     * @param string $name
     * @param null   $as
     *
     * @return mixed
     */
    abstract public function quoteName($name, $as = null);

    public function checkError($result) {
        return $result;
    }

    /**
     * @return string
     */
    abstract public function getCharsetCollate();
}<?php


namespace Nextend\Framework\Database;


abstract class AbstractPlatformConnectorTable {

    protected $primaryKeyColumn = "id";

    /** @var AbstractPlatformConnector */
    protected static $connector;

    protected $tableName;

    public function __construct($tableName) {

        $this->tableName = self::$connector->getPrefix() . $tableName;
    }

    public function getTableName() {
        return $this->tableName;
    }

    abstract public function findByPk($primaryKey);

    abstract public function findByAttributes(array $attributes, $fields = false, $order = false);

    abstract public function findAll($order = false);

    /**
     * Return with all row by attributes
     *
     * @param array       $attributes
     * @param bool|array  $fields
     * @param bool|string $order
     *
     * @return mixed
     */
    abstract public function findAllByAttributes(array $attributes, $fields = false, $order = false);

    /**
     * Insert new row
     *
     * @param array $attributes
     *
     * @return mixed|void
     */
    abstract public function insert(array $attributes);

    abstract public function insertId();

    /**
     * Update row(s) by param(s)
     *
     * @param array $attributes
     * @param array $conditions
     *
     * @return mixed
     */
    abstract public function update(array $attributes, array $conditions);

    /**
     * Update one row by primary key with $attributes
     *
     * @param mixed $primaryKey
     * @param array $attributes
     *
     * @return mixed
     */
    abstract public function updateByPk($primaryKey, array $attributes);

    /**
     * Delete one with by primary key
     *
     * @param mixed $primaryKey
     *
     * @return mixed
     */
    abstract public function deleteByPk($primaryKey);

    /**
     * Delete all rows by attributes
     *
     * @param array $conditions
     *
     * @return mixed
     */
    abstract public function deleteByAttributes(array $conditions);
}<?php

namespace Nextend\Framework\Database;

use Nextend\Framework\Database\Joomla\JoomlaConnector;
use Nextend\Framework\Database\Joomla\JoomlaConnectorTable;
use Nextend\Framework\Database\WordPress\WordPressConnector;
use Nextend\Framework\Database\WordPress\WordPressConnectorTable;
use Nextend\Framework\Pattern\SingletonTrait;

class Database {

    use SingletonTrait;

    /**
     * @var AbstractPlatformConnector
     */
    private static $platformConnector;

    protected function init() {
        self::$platformConnector = new JoomlaConnector();
    
    }

    /**
     * @param $tableName
     *
     * @return AbstractPlatformConnectorTable
     */
    public static function getTable($tableName) {
        return new JoomlaConnectorTable($tableName);
    
    }

    public static function getPrefix() {
        return self::$platformConnector->getPrefix();
    }

    public static function parsePrefix($query) {
        return self::$platformConnector->parsePrefix($query);
    }

    public static function insertId() {

        return self::$platformConnector->insertId();
    }

    public static function query($query, $attributes = false) {

        return self::$platformConnector->query($query, $attributes);
    }

    /**
     * Return with one row by query string
     *
     * @param string     $query
     * @param array|bool $attributes for parameter binding
     *
     * @return mixed
     */
    public static function queryRow($query, $attributes = false) {

        return self::$platformConnector->queryRow($query, $attributes);
    }

    public static function queryAll($query, $attributes = false, $type = "assoc", $key = null) {

        return self::$platformConnector->queryAll($query, $attributes, $type, $key);
    }


    /**
     * @param string $text
     * @param bool   $escape
     *
     * @return string
     */
    public static function quote($text, $escape = true) {

        return self::$platformConnector->quote($text, $escape);
    }

    /**
     * @param string $name
     * @param null   $as
     *
     * @return mixed
     */
    public static function quoteName($name, $as = null) {

        return self::$platformConnector->quoteName($name, $as);
    }

    /**
     * @return string
     */
    public static function getCharsetCollate() {

        return self::$platformConnector->getCharsetCollate();
    }
}

Database::getInstance();