| Current Path : /proc/1908984/root/proc/thread-self/root/tmp/ |
| 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();