PHP7 or bust!

This commit is contained in:
Timothy Warren 2016-10-12 22:12:25 -04:00
parent 3eb4d889f9
commit 6740aaef79
42 changed files with 442 additions and 645 deletions

View File

@ -3,11 +3,11 @@
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */

View File

@ -1,7 +1,9 @@
<?php <?php
declare(strict_types=1);
$file_patterns = [ $file_patterns = [
'src/*.php' 'src/*.php',
'tests/**/*.php',
]; ];
if ( ! function_exists('glob_recursive')) if ( ! function_exists('glob_recursive'))
@ -34,6 +36,13 @@ function get_text_to_replace($tokens)
{ {
return "<?php\n" . $tokens[1][1]; return "<?php\n" . $tokens[1][1];
} }
// If there is a declare strict types,
else if ($tokens[1][0] === T_DECLARE && $tokens[9][0] === T_DOC_COMMENT)
{
// '<?php' and 'declare(strict_types=1);' makes for 8 tokens
// replace it all
return "<?php\ndeclare(strict_types=1);\n" . $tokens[9][1];
}
else if ($tokens[1][0] !== T_DOC_COMMENT) else if ($tokens[1][0] !== T_DOC_COMMENT)
{ {
return "<?php"; return "<?php";
@ -51,13 +60,16 @@ function replace_files(array $files, $template)
{ {
$source = file_get_contents($file); $source = file_get_contents($file);
$tokens = get_tokens($source); $tokens = get_tokens($source);
//print_r($tokens);
$text_to_replace = get_text_to_replace($tokens); $text_to_replace = get_text_to_replace($tokens);
$header = file_get_contents(__DIR__ . $template); $header = file_get_contents(__DIR__ . $template);
$new_text = "<?php\n{$header}"; $new_text = "<?php declare(strict_types=1);\n{$header}";
$new_source = str_replace($text_to_replace, $new_text, $source); $new_source = str_replace($text_to_replace, $new_text, $source);
file_put_contents($file, $new_source); file_put_contents($file, $new_source);
//break;
} }
} }

View File

@ -1,14 +1,14 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
@ -29,7 +29,6 @@ abstract class AbstractQueryBuilder {
const VALUE = 1; const VALUE = 1;
const BOTH = 2; const BOTH = 2;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! SQL Clause Strings // ! SQL Clause Strings
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -44,7 +43,7 @@ abstract class AbstractQueryBuilder {
* Compiled 'from' clause * Compiled 'from' clause
* @var string * @var string
*/ */
protected $from_string; protected $from_string = '';
/** /**
* Compiled arguments for insert / update * Compiled arguments for insert / update
@ -213,8 +212,6 @@ abstract class AbstractQueryBuilder {
return $var; return $var;
} }
// --------------------------------------------------------------------------
/** /**
* Method to simplify select_ methods * Method to simplify select_ methods
* *
@ -237,8 +234,6 @@ abstract class AbstractQueryBuilder {
return "({$field}) AS {$as} "; return "({$field}) AS {$as} ";
} }
// --------------------------------------------------------------------------
/** /**
* Helper function for returning sql strings * Helper function for returning sql strings
* *
@ -260,8 +255,6 @@ abstract class AbstractQueryBuilder {
return $sql; return $sql;
} }
// --------------------------------------------------------------------------
/** /**
* Simplify 'like' methods * Simplify 'like' methods
* *
@ -270,7 +263,7 @@ abstract class AbstractQueryBuilder {
* @param string $pos * @param string $pos
* @param string $like * @param string $like
* @param string $conj * @param string $conj
* @return QueryBuilder * @return QueryBuilderInterface
*/ */
protected function _like($field, $val, $pos, $like='LIKE', $conj='AND') protected function _like($field, $val, $pos, $like='LIKE', $conj='AND')
{ {
@ -301,15 +294,13 @@ abstract class AbstractQueryBuilder {
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Simplify building having clauses * Simplify building having clauses
* *
* @param mixed $key * @param mixed $key
* @param mixed $val * @param mixed $val
* @param string $conj * @param string $conj
* @return QueryBuilder * @return QueryBuilderInterface
*/ */
protected function _having($key, $val=[], $conj='AND') protected function _having($key, $val=[], $conj='AND')
{ {
@ -337,8 +328,6 @@ abstract class AbstractQueryBuilder {
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Do all the redundant stuff for where/having type methods * Do all the redundant stuff for where/having type methods
* *
@ -354,15 +343,13 @@ abstract class AbstractQueryBuilder {
return $where; return $where;
} }
// --------------------------------------------------------------------------
/** /**
* Simplify generating where string * Simplify generating where string
* *
* @param mixed $key * @param mixed $key
* @param mixed $val * @param mixed $val
* @param string $defaultConj * @param string $defaultConj
* @return QueryBuilder * @return QueryBuilderInterface
*/ */
protected function _where_string($key, $val=[], $defaultConj='AND') protected function _where_string($key, $val=[], $defaultConj='AND')
{ {
@ -400,8 +387,6 @@ abstract class AbstractQueryBuilder {
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Simplify where_in methods * Simplify where_in methods
* *
@ -409,7 +394,7 @@ abstract class AbstractQueryBuilder {
* @param mixed $val * @param mixed $val
* @param string $in - The (not) in fragment * @param string $in - The (not) in fragment
* @param string $conj - The where in conjunction * @param string $conj - The where in conjunction
* @return QueryBuilder * @return QueryBuilderInterface
*/ */
protected function _where_in($key, $val=[], $in='IN', $conj='AND') protected function _where_in($key, $val=[], $in='IN', $conj='AND')
{ {
@ -429,8 +414,6 @@ abstract class AbstractQueryBuilder {
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Executes the compiled query * Executes the compiled query
* *
@ -474,8 +457,6 @@ abstract class AbstractQueryBuilder {
return $res; return $res;
} }
// --------------------------------------------------------------------------
/** /**
* Add an additional set of mapping pairs to a internal map * Add an additional set of mapping pairs to a internal map
* *
@ -493,8 +474,6 @@ abstract class AbstractQueryBuilder {
]); ]);
} }
// --------------------------------------------------------------------------
/** /**
* Convert the prepared statement into readable sql * Convert the prepared statement into readable sql
* *
@ -530,8 +509,6 @@ abstract class AbstractQueryBuilder {
$this->db->set_last_query($sql); $this->db->set_last_query($sql);
} }
// --------------------------------------------------------------------------
/** /**
* Sub-method for generating sql strings * Sub-method for generating sql strings
* *
@ -580,8 +557,6 @@ abstract class AbstractQueryBuilder {
return $sql; return $sql;
} }
// --------------------------------------------------------------------------
/** /**
* String together the sql statements for sending to the db * String together the sql statements for sending to the db
* *
@ -633,6 +608,4 @@ abstract class AbstractQueryBuilder {
return $sql; return $sql;
} }
} }
// End of abstract_QueryBuilder.php

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query; namespace Query;
use InvalidArgumentException; use InvalidArgumentException;

View File

@ -1,22 +1,24 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query; namespace Query;
use InvalidArgumentException;
use DomainException; use DomainException;
use InvalidArgumentException;
/** /**
* Connection manager class to manage connections for the * Connection manager class to manage connections for the
@ -45,7 +47,7 @@ final class ConnectionManager {
* Private constructor to prevent multiple instances * Private constructor to prevent multiple instances
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
private function __construct() private function __construct()
{ {
} }

View File

@ -1,23 +1,24 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers; namespace Query\Drivers;
use InvalidArgumentException;
use PDO; use PDO;
use PDOStatement; use PDOStatement;
use InvalidArgumentException;
/** /**
* Base Database class * Base Database class
@ -31,7 +32,7 @@ abstract class AbstractDriver extends PDO implements DriverInterface {
/** /**
* Reference to the last executed query * Reference to the last executed query
* @var \PDOStatement * @var PDOStatement
*/ */
protected $statement; protected $statement;
@ -63,7 +64,7 @@ abstract class AbstractDriver extends PDO implements DriverInterface {
* Last query executed * Last query executed
* @var string * @var string
*/ */
protected $last_query; protected $last_query = '';
/** /**
* Prefix to apply to table names * Prefix to apply to table names
@ -125,7 +126,7 @@ abstract class AbstractDriver extends PDO implements DriverInterface {
* @param array $args * @param array $args
* @return mixed * @return mixed
*/ */
public function __call($name, $args = []) public function __call(string $name, array $args = [])
{ {
if ( if (
isset($this->$name) isset($this->$name)
@ -146,7 +147,7 @@ abstract class AbstractDriver extends PDO implements DriverInterface {
* *
* @return string * @return string
*/ */
public function get_last_query() public function get_last_query(): string
{ {
return $this->last_query; return $this->last_query;
} }
@ -159,7 +160,7 @@ abstract class AbstractDriver extends PDO implements DriverInterface {
* @param string $query_string * @param string $query_string
* @return void * @return void
*/ */
public function set_last_query($query_string) public function set_last_query(string $query_string)
{ {
$this->last_query = $query_string; $this->last_query = $query_string;
} }

View File

@ -1,19 +1,21 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
namespace Query\Drivers; namespace Query\Drivers;

View File

@ -1,25 +1,21 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// --------------------------------------------------------------------------
namespace Query\Drivers; namespace Query\Drivers;
// --------------------------------------------------------------------------
/** /**
* Abstract class defining database / table creation methods * Abstract class defining database / table creation methods
* *
@ -51,7 +47,7 @@ abstract class AbstractUtil {
/** /**
* Get the driver object for the current connection * Get the driver object for the current connection
* *
* @return Driver_Interface * @return DriverInterface
*/ */
public function get_driver() public function get_driver()
{ {

View File

@ -1,18 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers; namespace Query\Drivers;
/** /**
@ -220,7 +221,7 @@ interface DriverInterface extends PDOInterface {
/** /**
* Get the Util class for the current driver * Get the Util class for the current driver
* *
* @return \Query\Drivers\AbstractUtil * @return AbstractUtil
*/ */
public function get_util(); public function get_util();
@ -230,6 +231,6 @@ interface DriverInterface extends PDOInterface {
* @param string $query_string * @param string $query_string
* @return void * @return void
*/ */
public function set_last_query($query_string); public function set_last_query(string $query_string);
} }
// End of driver_interface.php // End of driver_interface.php

View File

@ -1,23 +1,24 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Firebird; namespace Query\Drivers\Firebird;
use Query\Drivers\AbstractDriver;
use PDO; use PDO;
use PDOException; use PDOException;
use Query\Drivers\{AbstractDriver, DriverInterface};
/** /**
* Firebird Database class * Firebird Database class
@ -27,14 +28,7 @@ use PDOException;
* @package Query * @package Query
* @subpackage Drivers * @subpackage Drivers
*/ */
class Driver extends AbstractDriver { class Driver extends AbstractDriver implements DriverInterface {
/**
* Reference to the last query executed
*
* @var object
*/
protected $statement = NULL;
/** /**
* Reference to the resource returned by * Reference to the resource returned by

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Firebird; namespace Query\Drivers\Firebird;
use PDOStatement; use PDOStatement;

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Firebird; namespace Query\Drivers\Firebird;
use Query\Drivers\AbstractSQL; use Query\Drivers\AbstractSQL;

View File

@ -1,18 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Firebird; namespace Query\Drivers\Firebird;
use Query\Drivers\AbstractUtil; use Query\Drivers\AbstractUtil;

View File

@ -1,21 +1,23 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Mysql; namespace Query\Drivers\Mysql;
use Query\Drivers\AbstractDriver; use Query\Drivers\{AbstractDriver, DriverInterface};
/** /**
* MySQL specific class * MySQL specific class
@ -23,7 +25,7 @@ use Query\Drivers\AbstractDriver;
* @package Query * @package Query
* @subpackage Drivers * @subpackage Drivers
*/ */
class Driver extends AbstractDriver { class Driver extends AbstractDriver implements DriverInterface {
/** /**
* Set the backtick as the MySQL escape character * Set the backtick as the MySQL escape character

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Mysql; namespace Query\Drivers\Mysql;
use Query\Drivers\AbstractSQL; use Query\Drivers\AbstractSQL;

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Mysql; namespace Query\Drivers\Mysql;
use Query\Drivers\AbstractUtil; use Query\Drivers\AbstractUtil;

View File

@ -1,18 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers; namespace Query\Drivers;
use PDO; use PDO;

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers; namespace Query\Drivers;
use PDO; use PDO;
@ -111,12 +113,12 @@ interface PDOStatementInterface {
/** /**
* Fetches the next row from a result set * Fetches the next row from a result set
* *
* @param int $fetch_style * @param int $how
* @param int $cursor_orientation * @param int $orientation
* @param int $cursor_offset * @param int $offset
* @return mixed * @return mixed
*/ */
public function fetch($fetch_style = PDO::ATTR_DEFAULT_FETCH_MODE, $cursor_orientation = PDO::FETCH_ORI_NEXT, $cursor_offset = 0); public function fetch($how = PDO::ATTR_DEFAULT_FETCH_MODE, $orientation = PDO::FETCH_ORI_NEXT, $offset = 0);
/** /**
* Returns a single column from the next row of a result set * Returns a single column from the next row of a result set

View File

@ -1,21 +1,22 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Pgsql; namespace Query\Drivers\Pgsql;
use Query\Drivers\AbstractDriver; use Query\Drivers\{AbstractDriver, DriverInterface};
/** /**
* PostgreSQL specific class * PostgreSQL specific class
@ -23,7 +24,7 @@ use Query\Drivers\AbstractDriver;
* @package Query * @package Query
* @subpackage Drivers * @subpackage Drivers
*/ */
class Driver extends AbstractDriver { class Driver extends AbstractDriver implements DriverInterface {
/** /**
* Connect to a PosgreSQL database * Connect to a PosgreSQL database

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Pgsql; namespace Query\Drivers\Pgsql;
use Query\Drivers\AbstractSQL; use Query\Drivers\AbstractSQL;

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Pgsql; namespace Query\Drivers\Pgsql;
use Query\Drivers\AbstractUtil; use Query\Drivers\AbstractUtil;

View File

@ -1,19 +1,21 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
namespace Query\Drivers; namespace Query\Drivers;

View File

@ -1,21 +1,24 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Sqlite; namespace Query\Drivers\Sqlite;
use Query\Drivers\AbstractDriver; use PDO;
use PDOStatement;
use Query\Drivers\{AbstractDriver, DriverInterface};
/** /**
* SQLite specific class * SQLite specific class
@ -23,12 +26,12 @@ use Query\Drivers\AbstractDriver;
* @package Query * @package Query
* @subpackage Drivers * @subpackage Drivers
*/ */
class Driver extends AbstractDriver { class Driver extends AbstractDriver implements DriverInterface {
/** /**
* Reference to the last executed sql query * Reference to the last executed sql query
* *
* @var \PDOStatement * @var PDOStatement
*/ */
protected $statement; protected $statement;
@ -57,9 +60,6 @@ class Driver extends AbstractDriver {
parent::__construct($dsn, $user, $pass); parent::__construct($dsn, $user, $pass);
} }
// --------------------------------------------------------------------------
/** /**
* List tables for the current database * List tables for the current database
* *
@ -69,11 +69,9 @@ class Driver extends AbstractDriver {
{ {
$sql = $this->sql->table_list(); $sql = $this->sql->table_list();
$res = $this->query($sql); $res = $this->query($sql);
return db_filter($res->fetchAll(\PDO::FETCH_ASSOC), 'name'); return db_filter($res->fetchAll(PDO::FETCH_ASSOC), 'name');
} }
// --------------------------------------------------------------------------
/** /**
* Retrieve foreign keys for the table * Retrieve foreign keys for the table
* *
@ -98,8 +96,6 @@ class Driver extends AbstractDriver {
return $return_rows; return $return_rows;
} }
// --------------------------------------------------------------------------
/** /**
* Create sql for batch insert * Create sql for batch insert
* *
@ -112,7 +108,7 @@ class Driver extends AbstractDriver {
{ {
// If greater than version 3.7.11, supports the same syntax as // If greater than version 3.7.11, supports the same syntax as
// MySQL and Postgres // MySQL and Postgres
if (version_compare($this->getAttribute(\PDO::ATTR_SERVER_VERSION), '3.7.11', '>=')) if (version_compare($this->getAttribute(PDO::ATTR_SERVER_VERSION), '3.7.11', '>='))
{ {
return parent::insert_batch($table, $data); return parent::insert_batch($table, $data);
} }

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Sqlite; namespace Query\Drivers\Sqlite;
use Query\Drivers\AbstractSQL; use Query\Drivers\AbstractSQL;

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query\Drivers\Sqlite; namespace Query\Drivers\Sqlite;
use Query\Drivers\AbstractUtil; use Query\Drivers\AbstractUtil;

View File

@ -1,22 +1,23 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query; namespace Query;
use Query\Drivers\DriverInterface;
use BadMethodCallException; use BadMethodCallException;
use PDOStatement;
use Query\Drivers\DriverInterface;
/** /**
* Convenience class for creating sql queries - also the class that * Convenience class for creating sql queries - also the class that
@ -81,8 +82,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
$this->util = $this->db->get_util(); $this->util = $this->db->get_util();
} }
// --------------------------------------------------------------------------
/** /**
* Destructor * Destructor
* @codeCoverageIgnore * @codeCoverageIgnore
@ -92,17 +91,15 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
$this->db = NULL; $this->db = NULL;
} }
// --------------------------------------------------------------------------
/** /**
* Calls a function further down the inheritence chain * Calls a function further down the inheritance chain
* *
* @param string $name * @param string $name
* @param array $params * @param array $params
* @return mixed * @return mixed
* @throws BadMethodCallException * @throws BadMethodCallException
*/ */
public function __call($name, $params) public function __call(string $name, array $params)
{ {
// Allow camel-case method calls // Allow camel-case method calls
$snake_name = \from_camel_case($name); $snake_name = \from_camel_case($name);
@ -119,7 +116,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
} }
throw new BadMethodCallException("Method does not exist"); throw new BadMethodCallException('Method does not exist');
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -132,10 +129,10 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string $fields * @param string $fields
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select($fields) public function select(string $fields): QueryBuilderInterface
{ {
// Split fields by comma // Split fields by comma
$fields_array = explode(",", $fields); $fields_array = explode(',', $fields);
$fields_array = array_map('mb_trim', $fields_array); $fields_array = array_map('mb_trim', $fields_array);
// Split on 'As' // Split on 'As'
@ -169,8 +166,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Selects the maximum value of a field from a query * Selects the maximum value of a field from a query
* *
@ -178,15 +173,13 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string|bool $as * @param string|bool $as
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select_max($field, $as=FALSE) public function select_max($field, $as=FALSE): QueryBuilderInterface
{ {
// Create the select string // Create the select string
$this->select_string .= ' MAX'.$this->_select($field, $as); $this->select_string .= ' MAX'.$this->_select($field, $as);
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Selects the minimum value of a field from a query * Selects the minimum value of a field from a query
* *
@ -194,15 +187,13 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string|bool $as * @param string|bool $as
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select_min($field, $as=FALSE) public function select_min($field, $as=FALSE): QueryBuilderInterface
{ {
// Create the select string // Create the select string
$this->select_string .= ' MIN'.$this->_select($field, $as); $this->select_string .= ' MIN'.$this->_select($field, $as);
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Selects the average value of a field from a query * Selects the average value of a field from a query
* *
@ -210,15 +201,13 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string|bool $as * @param string|bool $as
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select_avg($field, $as=FALSE) public function select_avg($field, $as=FALSE): QueryBuilderInterface
{ {
// Create the select string // Create the select string
$this->select_string .= ' AVG'.$this->_select($field, $as); $this->select_string .= ' AVG'.$this->_select($field, $as);
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Selects the sum of a field from a query * Selects the sum of a field from a query
* *
@ -226,49 +215,43 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string|bool $as * @param string|bool $as
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select_sum($field, $as=FALSE) public function select_sum($field, $as=FALSE): QueryBuilderInterface
{ {
// Create the select string // Create the select string
$this->select_string .= ' SUM'.$this->_select($field, $as); $this->select_string .= ' SUM'.$this->_select($field, $as);
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Adds the 'distinct' keyword to a query * Adds the 'distinct' keyword to a query
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function distinct() public function distinct(): QueryBuilderInterface
{ {
// Prepend the keyword to the select string // Prepend the keyword to the select string
$this->select_string = ' DISTINCT '.$this->select_string; $this->select_string = ' DISTINCT '.$this->select_string;
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Tell the database to give you the query plan instead of result set * Tell the database to give you the query plan instead of result set
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function explain() public function explain(): QueryBuilderInterface
{ {
$this->explain = TRUE; $this->explain = TRUE;
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Specify the database table to select from * Specify the database table to select from
* *
* @param string $tblname * @param string $tblname
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function from($tblname) public function from($tblname): QueryBuilderInterface
{ {
// Split identifiers on spaces // Split identifiers on spaces
$ident_array = explode(' ', \mb_trim($tblname)); $ident_array = explode(' ', \mb_trim($tblname));
@ -296,13 +279,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string $pos * @param string $pos
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function like($field, $val, $pos='both') public function like($field, $val, $pos='both'): QueryBuilderInterface
{ {
return $this->_like($field, $val, $pos, 'LIKE', 'AND'); return $this->_like($field, $val, $pos, 'LIKE', 'AND');
} }
// --------------------------------------------------------------------------
/** /**
* Generates an OR Like clause * Generates an OR Like clause
* *
@ -311,13 +292,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string $pos * @param string $pos
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_like($field, $val, $pos='both') public function or_like($field, $val, $pos='both'): QueryBuilderInterface
{ {
return $this->_like($field, $val, $pos, 'LIKE', 'OR'); return $this->_like($field, $val, $pos, 'LIKE', 'OR');
} }
// --------------------------------------------------------------------------
/** /**
* Generates a NOT LIKE clause * Generates a NOT LIKE clause
* *
@ -326,13 +305,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string $pos * @param string $pos
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function not_like($field, $val, $pos='both') public function not_like($field, $val, $pos='both'): QueryBuilderInterface
{ {
return $this->_like($field, $val, $pos, 'NOT LIKE', 'AND'); return $this->_like($field, $val, $pos, 'NOT LIKE', 'AND');
} }
// --------------------------------------------------------------------------
/** /**
* Generates a OR NOT LIKE clause * Generates a OR NOT LIKE clause
* *
@ -341,7 +318,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string $pos * @param string $pos
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_not_like($field, $val, $pos='both') public function or_not_like($field, $val, $pos='both'): QueryBuilderInterface
{ {
return $this->_like($field, $val, $pos, 'NOT LIKE', 'OR'); return $this->_like($field, $val, $pos, 'NOT LIKE', 'OR');
} }
@ -357,13 +334,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function having($key, $val=[]) public function having($key, $val=[]): QueryBuilderInterface
{ {
return $this->_having($key, $val, 'AND'); return $this->_having($key, $val, 'AND');
} }
// --------------------------------------------------------------------------
/** /**
* Generates a 'Having' clause prefixed with 'OR' * Generates a 'Having' clause prefixed with 'OR'
* *
@ -371,7 +346,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_having($key, $val=[]) public function or_having($key, $val=[]): QueryBuilderInterface
{ {
return $this->_having($key, $val, 'OR'); return $this->_having($key, $val, 'OR');
} }
@ -390,13 +365,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param mixed $escape * @param mixed $escape
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function where($key, $val=[], $escape=NULL) public function where($key, $val=[], $escape=NULL): QueryBuilderInterface
{ {
return $this->_where_string($key, $val, 'AND'); return $this->_where_string($key, $val, 'AND');
} }
// --------------------------------------------------------------------------
/** /**
* Where clause prefixed with "OR" * Where clause prefixed with "OR"
* *
@ -404,13 +377,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_where($key, $val=[]) public function or_where($key, $val=[]): QueryBuilderInterface
{ {
return $this->_where_string($key, $val, 'OR'); return $this->_where_string($key, $val, 'OR');
} }
// --------------------------------------------------------------------------
/** /**
* Where clause with 'IN' statement * Where clause with 'IN' statement
* *
@ -418,13 +389,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function where_in($field, $val=[]) public function where_in($field, $val=[]): QueryBuilderInterface
{ {
return $this->_where_in($field, $val); return $this->_where_in($field, $val);
} }
// --------------------------------------------------------------------------
/** /**
* Where in statement prefixed with "or" * Where in statement prefixed with "or"
* *
@ -432,13 +401,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_where_in($field, $val=[]) public function or_where_in($field, $val=[]): QueryBuilderInterface
{ {
return $this->_where_in($field, $val, 'IN', 'OR'); return $this->_where_in($field, $val, 'IN', 'OR');
} }
// --------------------------------------------------------------------------
/** /**
* WHERE NOT IN (FOO) clause * WHERE NOT IN (FOO) clause
* *
@ -446,13 +413,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function where_not_in($field, $val=[]) public function where_not_in($field, $val=[]): QueryBuilderInterface
{ {
return $this->_where_in($field, $val, 'NOT IN', 'AND'); return $this->_where_in($field, $val, 'NOT IN', 'AND');
} }
// --------------------------------------------------------------------------
/** /**
* OR WHERE NOT IN (FOO) clause * OR WHERE NOT IN (FOO) clause
* *
@ -460,7 +425,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_where_not_in($field, $val=[]) public function or_where_not_in($field, $val=[]): QueryBuilderInterface
{ {
return $this->_where_in($field, $val, 'NOT IN', 'OR'); return $this->_where_in($field, $val, 'NOT IN', 'OR');
} }
@ -476,7 +441,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function set($key, $val = NULL) public function set($key, $val = NULL): QueryBuilderInterface
{ {
$this->_mixed_set($this->set_array_keys, $key, $val, self::KEY); $this->_mixed_set($this->set_array_keys, $key, $val, self::KEY);
$this->_mixed_set($this->values, $key, $val, self::VALUE); $this->_mixed_set($this->values, $key, $val, self::VALUE);
@ -492,8 +457,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Creates a join phrase in a compiled query * Creates a join phrase in a compiled query
* *
@ -502,7 +465,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string $type * @param string $type
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function join($table, $condition, $type='') public function join($table, $condition, $type=''): QueryBuilderInterface
{ {
// Prefix and quote table name // Prefix and quote table name
$table = explode(' ', mb_trim($table)); $table = explode(' ', mb_trim($table));
@ -519,15 +482,13 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Group the results by the selected field(s) * Group the results by the selected field(s)
* *
* @param mixed $field * @param mixed $field
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function group_by($field) public function group_by($field): QueryBuilderInterface
{ {
if ( ! is_scalar($field)) if ( ! is_scalar($field))
{ {
@ -544,8 +505,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Order the results by the selected field(s) * Order the results by the selected field(s)
* *
@ -553,14 +512,14 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string $type * @param string $type
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function order_by($field, $type="") public function order_by($field, $type=""): QueryBuilderInterface
{ {
// When ordering by random, do an ascending order if the driver // When ordering by random, do an ascending order if the driver
// doesn't support random ordering // doesn't support random ordering
if (stripos($type, 'rand') !== FALSE) if (stripos($type, 'rand') !== FALSE)
{ {
$rand = $this->sql->random(); $rand = $this->sql->random();
$type = ($rand !== FALSE) ? $rand : 'ASC'; $type = $rand ?? 'ASC';
} }
// Set fields for later manipulation // Set fields for later manipulation
@ -583,8 +542,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Set a limit on the current sql statement * Set a limit on the current sql statement
* *
@ -592,7 +549,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param int|bool $offset * @param int|bool $offset
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function limit($limit, $offset=FALSE) public function limit($limit, $offset=FALSE): QueryBuilderInterface
{ {
$this->limit = (int) $limit; $this->limit = (int) $limit;
$this->offset = $offset; $this->offset = $offset;
@ -609,7 +566,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function group_start() public function group_start(): QueryBuilderInterface
{ {
$conj = (empty($this->query_map)) ? ' WHERE ' : ' '; $conj = (empty($this->query_map)) ? ' WHERE ' : ' ';
@ -618,15 +575,13 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Adds a paren to the current query for query grouping, * Adds a paren to the current query for query grouping,
* prefixed with 'NOT' * prefixed with 'NOT'
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function not_group_start() public function not_group_start(): QueryBuilderInterface
{ {
$conj = (empty($this->query_map)) ? ' WHERE ' : ' AND '; $conj = (empty($this->query_map)) ? ' WHERE ' : ' AND ';
@ -635,44 +590,38 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Adds a paren to the current query for query grouping, * Adds a paren to the current query for query grouping,
* prefixed with 'OR' * prefixed with 'OR'
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_group_start() public function or_group_start(): QueryBuilderInterface
{ {
$this->_append_map('', ' OR (', 'group_start'); $this->_append_map('', ' OR (', 'group_start');
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Adds a paren to the current query for query grouping, * Adds a paren to the current query for query grouping,
* prefixed with 'OR NOT' * prefixed with 'OR NOT'
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_not_group_start() public function or_not_group_start(): QueryBuilderInterface
{ {
$this->_append_map('', ' OR NOT (', 'group_start'); $this->_append_map('', ' OR NOT (', 'group_start');
return $this; return $this;
} }
// --------------------------------------------------------------------------
/** /**
* Ends a query group * Ends a query group
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function group_end() public function group_end(): QueryBuilderInterface
{ {
$this->_append_map('', ')', 'group_end'); $this->_append_map('', ')', 'group_end');
@ -690,9 +639,9 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param string $table * @param string $table
* @param int|bool $limit * @param int|bool $limit
* @param int|bool $offset * @param int|bool $offset
* @return \PDOStatement * @return PDOStatement
*/ */
public function get($table='', $limit=FALSE, $offset=FALSE) public function get($table='', $limit=FALSE, $offset=FALSE): PDOStatement
{ {
// Set the table // Set the table
if ( ! empty($table)) if ( ! empty($table))
@ -709,8 +658,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this->_run("get", $table); return $this->_run("get", $table);
} }
// --------------------------------------------------------------------------
/** /**
* Convenience method for get() with a where clause * Convenience method for get() with a where clause
* *
@ -718,9 +665,9 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param array $where * @param array $where
* @param int|bool $limit * @param int|bool $limit
* @param int|bool $offset * @param int|bool $offset
* @return \PDOStatement * @return PDOStatement
*/ */
public function get_where($table, $where=[], $limit=FALSE, $offset=FALSE) public function get_where($table, $where=[], $limit=FALSE, $offset=FALSE): PDOStatement
{ {
// Create the where clause // Create the where clause
$this->where($where); $this->where($where);
@ -729,23 +676,19 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this->get($table, $limit, $offset); return $this->get($table, $limit, $offset);
} }
// --------------------------------------------------------------------------
/** /**
* Retrieve the number of rows in the selected table * Retrieve the number of rows in the selected table
* *
* @param string $table * @param string $table
* @return int * @return int
*/ */
public function count_all($table) public function count_all($table): int
{ {
$sql = 'SELECT * FROM '.$this->db->quote_table($table); $sql = 'SELECT * FROM '.$this->db->quote_table($table);
$res = $this->db->query($sql); $res = $this->db->query($sql);
return (int) count($res->fetchAll()); return (int) count($res->fetchAll());
} }
// --------------------------------------------------------------------------
/** /**
* Retrieve the number of results for the generated query - used * Retrieve the number of results for the generated query - used
* in place of the get() method * in place of the get() method
@ -754,7 +697,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param boolean $reset * @param boolean $reset
* @return int * @return int
*/ */
public function count_all_results($table='', $reset = TRUE) public function count_all_results(string $table='', bool $reset = TRUE): int
{ {
// Set the table // Set the table
if ( ! empty($table)) if ( ! empty($table))
@ -768,16 +711,14 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return (int) count($rows); return (int) count($rows);
} }
// --------------------------------------------------------------------------
/** /**
* Creates an insert clause, and executes it * Creates an insert clause, and executes it
* *
* @param string $table * @param string $table
* @param mixed $data * @param mixed $data
* @return \PDOStatement * @return PDOStatement
*/ */
public function insert($table, $data=[]) public function insert($table, $data=[]): PDOStatement
{ {
if ( ! empty($data)) if ( ! empty($data))
{ {
@ -787,16 +728,14 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this->_run("insert", $table); return $this->_run("insert", $table);
} }
// --------------------------------------------------------------------------
/** /**
* Creates and executes a batch insertion query * Creates and executes a batch insertion query
* *
* @param string $table * @param string $table
* @param array $data * @param array $data
* @return \PDOStatement * @return PDOStatement
*/ */
public function insert_batch($table, $data=[]) public function insert_batch($table, $data=[]): PDOStatement
{ {
// Get the generated values and sql string // Get the generated values and sql string
list($sql, $data) = $this->db->insert_batch($table, $data); list($sql, $data) = $this->db->insert_batch($table, $data);
@ -806,16 +745,14 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
: NULL; : NULL;
} }
// --------------------------------------------------------------------------
/** /**
* Creates an update clause, and executes it * Creates an update clause, and executes it
* *
* @param string $table * @param string $table
* @param mixed $data * @param mixed $data
* @return \PDOStatement * @return PDOStatement
*/ */
public function update($table, $data=[]) public function update($table, $data=[]): PDOStatement
{ {
if ( ! empty($data)) if ( ! empty($data))
{ {
@ -825,8 +762,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this->_run("update", $table); return $this->_run("update", $table);
} }
// --------------------------------------------------------------------------
/** /**
* Creates a batch update, and executes it. * Creates a batch update, and executes it.
* Returns the number of affected rows * Returns the number of affected rows
@ -846,8 +781,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
: NULL; : NULL;
} }
// --------------------------------------------------------------------------
/** /**
* Insertion with automatic overwrite, rather than attempted duplication * Insertion with automatic overwrite, rather than attempted duplication
* *
@ -865,16 +798,14 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this->_run("replace", $table); return $this->_run("replace", $table);
} }
// --------------------------------------------------------------------------
/** /**
* Deletes data from a table * Deletes data from a table
* *
* @param string $table * @param string $table
* @param mixed $where * @param mixed $where
* @return \PDOStatement * @return PDOStatement
*/ */
public function delete($table, $where='') public function delete($table, $where=''): PDOStatement
{ {
// Set the where clause // Set the where clause
if ( ! empty($where)) if ( ! empty($where))
@ -889,8 +820,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
// ! SQL Returning Methods // ! SQL Returning Methods
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**
* Returns the generated 'select' sql query * Returns the generated 'select' sql query
* *
@ -898,7 +827,7 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param bool $reset * @param bool $reset
* @return string * @return string
*/ */
public function get_compiled_select($table='', $reset=TRUE) public function get_compiled_select(string $table='', bool $reset=TRUE): string
{ {
// Set the table // Set the table
if ( ! empty($table)) if ( ! empty($table))
@ -909,8 +838,6 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
return $this->_get_compile('select', $table, $reset); return $this->_get_compile('select', $table, $reset);
} }
// --------------------------------------------------------------------------
/** /**
* Returns the generated 'insert' sql query * Returns the generated 'insert' sql query
* *
@ -918,13 +845,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param bool $reset * @param bool $reset
* @return string * @return string
*/ */
public function get_compiled_insert($table, $reset=TRUE) public function get_compiled_insert(string $table, bool $reset=TRUE): string
{ {
return $this->_get_compile('insert', $table, $reset); return $this->_get_compile('insert', $table, $reset);
} }
// --------------------------------------------------------------------------
/** /**
* Returns the generated 'update' sql query * Returns the generated 'update' sql query
* *
@ -932,13 +857,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param bool $reset * @param bool $reset
* @return string * @return string
*/ */
public function get_compiled_update($table='', $reset=TRUE) public function get_compiled_update(string $table='', bool $reset=TRUE): string
{ {
return $this->_get_compile('update', $table, $reset); return $this->_get_compile('update', $table, $reset);
} }
// --------------------------------------------------------------------------
/** /**
* Returns the generated 'delete' sql query * Returns the generated 'delete' sql query
* *
@ -946,12 +869,11 @@ class QueryBuilder extends AbstractQueryBuilder implements QueryBuilderInterface
* @param bool $reset * @param bool $reset
* @return string * @return string
*/ */
public function get_compiled_delete($table="", $reset=TRUE) public function get_compiled_delete(string $table='', bool $reset=TRUE): string
{ {
return $this->_get_compile('delete', $table, $reset); return $this->_get_compile('delete', $table, $reset);
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! Miscellaneous Methods // ! Miscellaneous Methods
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------

View File

@ -1,23 +1,22 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// --------------------------------------------------------------------------
namespace Query; namespace Query;
use PDOStatement;
/** /**
* Interface defining the Query Builder class * Interface defining the Query Builder class
* *
@ -36,7 +35,7 @@ interface QueryBuilderInterface {
* @param string $fields * @param string $fields
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select($fields); public function select(string $fields): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -47,7 +46,7 @@ interface QueryBuilderInterface {
* @param string|bool $as * @param string|bool $as
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select_max($field, $as=FALSE); public function select_max($field, $as=FALSE): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -58,7 +57,7 @@ interface QueryBuilderInterface {
* @param string|bool $as * @param string|bool $as
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select_min($field, $as=FALSE); public function select_min($field, $as=FALSE): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -69,7 +68,7 @@ interface QueryBuilderInterface {
* @param string|bool $as * @param string|bool $as
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select_avg($field, $as=FALSE); public function select_avg($field, $as=FALSE): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -80,7 +79,7 @@ interface QueryBuilderInterface {
* @param string|bool $as * @param string|bool $as
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function select_sum($field, $as=FALSE); public function select_sum($field, $as=FALSE): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -89,7 +88,7 @@ interface QueryBuilderInterface {
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function distinct(); public function distinct(): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -98,7 +97,7 @@ interface QueryBuilderInterface {
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function explain(); public function explain(): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -108,7 +107,7 @@ interface QueryBuilderInterface {
* @param string $tblname * @param string $tblname
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function from($tblname); public function from($tblname): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! 'Like' methods // ! 'Like' methods
@ -122,7 +121,7 @@ interface QueryBuilderInterface {
* @param string $pos * @param string $pos
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function like($field, $val, $pos='both'); public function like($field, $val, $pos='both'): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -134,7 +133,7 @@ interface QueryBuilderInterface {
* @param string $pos * @param string $pos
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_like($field, $val, $pos='both'); public function or_like($field, $val, $pos='both'): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -146,7 +145,7 @@ interface QueryBuilderInterface {
* @param string $pos * @param string $pos
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function not_like($field, $val, $pos='both'); public function not_like($field, $val, $pos='both'): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -158,7 +157,7 @@ interface QueryBuilderInterface {
* @param string $pos * @param string $pos
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_not_like($field, $val, $pos='both'); public function or_not_like($field, $val, $pos='both'): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! Having methods // ! Having methods
@ -171,7 +170,7 @@ interface QueryBuilderInterface {
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function having($key, $val=[]); public function having($key, $val=[]): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -182,7 +181,7 @@ interface QueryBuilderInterface {
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_having($key, $val=[]); public function or_having($key, $val=[]): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! 'Where' methods // ! 'Where' methods
@ -198,7 +197,7 @@ interface QueryBuilderInterface {
* @param bool $escape * @param bool $escape
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function where($key, $val=[], $escape = NULL); public function where($key, $val=[], $escape = NULL): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -209,7 +208,7 @@ interface QueryBuilderInterface {
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_where($key, $val=[]); public function or_where($key, $val=[]): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -220,7 +219,7 @@ interface QueryBuilderInterface {
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function where_in($field, $val=[]); public function where_in($field, $val=[]): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -231,7 +230,7 @@ interface QueryBuilderInterface {
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_where_in($field, $val=[]); public function or_where_in($field, $val=[]): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -242,7 +241,7 @@ interface QueryBuilderInterface {
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function where_not_in($field, $val=[]); public function where_not_in($field, $val=[]): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -253,7 +252,7 @@ interface QueryBuilderInterface {
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_where_not_in($field, $val=[]); public function or_where_not_in($field, $val=[]): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! Other Query Modifier methods // ! Other Query Modifier methods
@ -266,7 +265,7 @@ interface QueryBuilderInterface {
* @param mixed $val * @param mixed $val
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function set($key, $val = NULL); public function set($key, $val = NULL): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -278,7 +277,7 @@ interface QueryBuilderInterface {
* @param string $type * @param string $type
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function join($table, $condition, $type=''); public function join($table, $condition, $type=''): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -288,7 +287,7 @@ interface QueryBuilderInterface {
* @param mixed $field * @param mixed $field
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function group_by($field); public function group_by($field): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -299,7 +298,7 @@ interface QueryBuilderInterface {
* @param string $type * @param string $type
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function order_by($field, $type=""); public function order_by($field, $type=""): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -310,7 +309,7 @@ interface QueryBuilderInterface {
* @param int|bool $offset * @param int|bool $offset
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function limit($limit, $offset=FALSE); public function limit($limit, $offset=FALSE): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! Query Grouping Methods // ! Query Grouping Methods
@ -321,17 +320,17 @@ interface QueryBuilderInterface {
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function group_start(); public function group_start(): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**
* Adds a paren to the current query for query grouping, * Adds a paren to the current query for query grouping,
* prefixed with 'NOT' * prefixed with 'NOT'
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function not_group_start(); public function not_group_start(): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -341,7 +340,7 @@ interface QueryBuilderInterface {
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_group_start(); public function or_group_start(): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -351,7 +350,7 @@ interface QueryBuilderInterface {
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function or_not_group_start(); public function or_not_group_start(): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -360,7 +359,7 @@ interface QueryBuilderInterface {
* *
* @return QueryBuilderInterface * @return QueryBuilderInterface
*/ */
public function group_end(); public function group_end(): QueryBuilderInterface;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! Query execution methods // ! Query execution methods
@ -373,22 +372,22 @@ interface QueryBuilderInterface {
* @param string $table * @param string $table
* @param int|bool $limit * @param int|bool $limit
* @param int|bool $offset * @param int|bool $offset
* @return \PDOStatement * @return PDOStatement
*/ */
public function get($table='', $limit=FALSE, $offset=FALSE); public function get($table='', $limit=FALSE, $offset=FALSE): PDOStatement;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**
* Convience method for get() with a where clause * Convenience method for get() with a where clause
* *
* @param string $table * @param string $table
* @param array $where * @param array $where
* @param int|bool $limit * @param int|bool $limit
* @param int|bool $offset * @param int|bool $offset
* @return \PDOStatement * @return PDOStatement
*/ */
public function get_where($table, $where=[], $limit=FALSE, $offset=FALSE); public function get_where($table, $where=[], $limit=FALSE, $offset=FALSE): PDOStatement;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -398,7 +397,7 @@ interface QueryBuilderInterface {
* @param string $table * @param string $table
* @return int * @return int
*/ */
public function count_all($table); public function count_all($table): int;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -410,7 +409,7 @@ interface QueryBuilderInterface {
* @param bool $reset - Whether to keep the query after counting the results * @param bool $reset - Whether to keep the query after counting the results
* @return int * @return int
*/ */
public function count_all_results($table='', $reset=TRUE); public function count_all_results(string $table='', bool $reset=TRUE): int;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -419,9 +418,9 @@ interface QueryBuilderInterface {
* *
* @param string $table * @param string $table
* @param mixed $data * @param mixed $data
* @return \PDOStatement * @return PDOStatement
*/ */
public function insert($table, $data=[]); public function insert($table, $data=[]): PDOStatement;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -452,9 +451,9 @@ interface QueryBuilderInterface {
* *
* @param string $table * @param string $table
* @param mixed $data * @param mixed $data
* @return \PDOStatement * @return PDOStatement
*/ */
public function update($table, $data=[]); public function update($table, $data=[]): PDOStatement;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -476,9 +475,9 @@ interface QueryBuilderInterface {
* *
* @param string $table * @param string $table
* @param mixed $where * @param mixed $where
* @return \PDOStatement * @return PDOStatement
*/ */
public function delete($table, $where=''); public function delete($table, $where=''): PDOStatement;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! SQL Returning Methods // ! SQL Returning Methods
@ -491,9 +490,7 @@ interface QueryBuilderInterface {
* @param bool $reset * @param bool $reset
* @return string * @return string
*/ */
public function get_compiled_select($table='', $reset=TRUE); public function get_compiled_select(string $table='', bool $reset=TRUE): string;
// --------------------------------------------------------------------------
/** /**
* Returns the generated 'insert' sql query * Returns the generated 'insert' sql query
@ -502,9 +499,7 @@ interface QueryBuilderInterface {
* @param bool $reset * @param bool $reset
* @return string * @return string
*/ */
public function get_compiled_insert($table, $reset=TRUE); public function get_compiled_insert(string $table, bool $reset=TRUE): string;
// --------------------------------------------------------------------------
/** /**
* Returns the generated 'update' sql query * Returns the generated 'update' sql query
@ -513,9 +508,7 @@ interface QueryBuilderInterface {
* @param bool $reset * @param bool $reset
* @return string * @return string
*/ */
public function get_compiled_update($table='', $reset=TRUE); public function get_compiled_update(string $table='', bool $reset=TRUE): string;
// --------------------------------------------------------------------------
/** /**
* Returns the generated 'delete' sql query * Returns the generated 'delete' sql query
@ -524,7 +517,7 @@ interface QueryBuilderInterface {
* @param bool $reset * @param bool $reset
* @return string * @return string
*/ */
public function get_compiled_delete($table="", $reset=TRUE); public function get_compiled_delete(string $table='', bool $reset=TRUE): string;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! Miscellaneous Methods // ! Miscellaneous Methods

View File

@ -1,18 +1,20 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
namespace Query; namespace Query;
use Query\Drivers\DriverInterface; use Query\Drivers\DriverInterface;

View File

@ -1,18 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* SQL Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* PHP version 5.4 * PHP version 7
* *
* @package Query * @package Query
* @author Timothy J. Warren <tim@timshomepage.net> * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2015 Timothy J. Warren * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query * @link https://git.timshomepage.net/aviat4ion/Query
*/ */
use Query\ConnectionManager; use Query\ConnectionManager;
require __DIR__ . '/../vendor/autoload.php'; require __DIR__ . '/../vendor/autoload.php';
@ -23,25 +24,6 @@ require __DIR__ . '/../vendor/autoload.php';
* Global functions that don't really fit anywhere else * Global functions that don't really fit anywhere else
*/ */
// --------------------------------------------------------------------------
if ( ! function_exists('do_include'))
{
/**
* Bulk directory loading workaround for use
* with array_map and glob
*
* @param string $path
* @return void
*/
function do_include($path)
{
require_once($path);
}
}
// --------------------------------------------------------------------------
if ( ! function_exists('mb_trim')) if ( ! function_exists('mb_trim'))
{ {
/** /**
@ -50,7 +32,7 @@ if ( ! function_exists('mb_trim'))
* @param string $string * @param string $string
* @return string * @return string
*/ */
function mb_trim($string) function mb_trim(string $string): string
{ {
return preg_replace("/(^\s+)|(\s+$)/us", "", $string); return preg_replace("/(^\s+)|(\s+$)/us", "", $string);
} }
@ -67,7 +49,7 @@ if ( ! function_exists('db_filter'))
* @param mixed $index * @param mixed $index
* @return array * @return array
*/ */
function db_filter($array, $index) function db_filter(array $array, $index): array
{ {
$new_array = []; $new_array = [];
@ -92,8 +74,8 @@ if ( ! function_exists('from_camel_case'))
* @param string $input * @param string $input
* @return string * @return string
*/ */
function from_camel_case($input) function from_camel_case(string $input): string
{ {
preg_match_all('!([A-Z][A-Z0-9]*(?=$|[A-Z][a-z0-9])|[A-Za-z][a-z0-9]+)!', $input, $matches); preg_match_all('!([A-Z][A-Z0-9]*(?=$|[A-Z][a-z0-9])|[A-Za-z][a-z0-9]+)!', $input, $matches);
$ret = $matches[0]; $ret = $matches[0];
foreach ($ret as &$match) { foreach ($ret as &$match) {
@ -103,6 +85,28 @@ if ( ! function_exists('from_camel_case'))
} }
} }
if ( ! function_exists('to_camel_case'))
{
/**
* Create a camelCase string from snake_case
*
* @param string $snake_case
* @return string
*/
function to_camel_case(string $snake_case): string
{
$pieces = explode('_', $snake_case);
$pieces[0] = mb_strtolower($pieces[0]);
for($i = 1; $i < count($pieces); $i++)
{
$pieces[$i] = ucfirst(mb_strtolower($pieces[$i]));
}
return implode('', $pieces);
}
}
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
if ( ! function_exists('array_zipper')) if ( ! function_exists('array_zipper'))
@ -116,7 +120,7 @@ if ( ! function_exists('array_zipper'))
* @param array $zipper_input * @param array $zipper_input
* @return array * @return array
*/ */
function array_zipper(Array $zipper_input) function array_zipper(array $zipper_input): array
{ {
$output = []; $output = [];
@ -138,40 +142,6 @@ if ( ! function_exists('array_zipper'))
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
if ( ! function_exists('array_column'))
{
/**
* Get an array out of an multi-dimensional array based on a common
* key
*
* @param array $array
* @param string $key
* @return array
*/
function array_column(Array $array, $key)
{
$output = [];
// No point iterating over an empty array
if (empty($array))
{
return $array;
}
foreach($array as $inner_array)
{
if (array_key_exists($key, $inner_array))
{
$output[] = $inner_array[$key];
}
}
return $output;
}
}
// --------------------------------------------------------------------------
if ( ! function_exists('regex_in_array')) if ( ! function_exists('regex_in_array'))
{ {
/** /**
@ -182,7 +152,7 @@ if ( ! function_exists('regex_in_array'))
* @param string $pattern * @param string $pattern
* @return bool * @return bool
*/ */
function regex_in_array(Array $array, $pattern) function regex_in_array(array $array, string $pattern): bool
{ {
if (empty($array)) if (empty($array))
{ {

View File

@ -1,16 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* Free Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* @package Query * PHP version 7
* @author Timothy J. Warren *
* @copyright Copyright (c) 2012 - 2014 * @package Query
* @link https://github.com/aviat4ion/Query * @author Timothy J. Warren <tim@timshomepage.net>
* @license http://philsturgeon.co.uk/code/dbad-license * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**

View File

@ -1,14 +1,16 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* Free Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* @package Query * PHP version 7
* @author Timothy J. Warren *
* @copyright Copyright (c) 2012 - 2014 * @package Query
* @link https://github.com/aviat4ion/Query * @author Timothy J. Warren <tim@timshomepage.net>
* @license http://philsturgeon.co.uk/code/dbad-license * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -28,23 +30,13 @@ abstract class QBTest extends Query_TestCase {
} }
} }
// --------------------------------------------------------------------------
public static function tearDownAfterClass() public static function tearDownAfterClass()
{ {
self::$db = NULL; self::$db = NULL;
} }
// --------------------------------------------------------------------------
// ! Driver-specific results // ! Driver-specific results
// --------------------------------------------------------------------------
abstract public function testQueryExplain(); abstract public function testQueryExplain();
// --------------------------------------------------------------------------
// ! Get tests // ! Get tests
// --------------------------------------------------------------------------
public function testInvalidConnectionName() public function testInvalidConnectionName()
{ {
try try
@ -57,8 +49,6 @@ abstract class QBTest extends Query_TestCase {
} }
} }
// --------------------------------------------------------------------------
public function testFunctionGet() public function testFunctionGet()
{ {
$query = self::$db->select('id, COUNT(id) as count') $query = self::$db->select('id, COUNT(id) as count')
@ -69,8 +59,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testGet() public function testGet()
{ {
$query = self::$db->get('test'); $query = self::$db->get('test');
@ -78,8 +66,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testPrefixGet() public function testPrefixGet()
{ {
$query = self::$db->from('test')->get(); $query = self::$db->from('test')->get();
@ -87,8 +73,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testGetWNumRows() public function testGetWNumRows()
{ {
$query = self::$db->get('test'); $query = self::$db->get('test');
@ -97,8 +81,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertEqual(self::$db->num_rows(), $numrows); $this->assertEqual(self::$db->num_rows(), $numrows);
} }
// --------------------------------------------------------------------------
public function testGetLimit() public function testGetLimit()
{ {
$query = self::$db->get('test', 2); $query = self::$db->get('test', 2);
@ -106,8 +88,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testGetLimitSkip() public function testGetLimitSkip()
{ {
$query = self::$db->get('test', 2, 1); $query = self::$db->get('test', 2, 1);
@ -115,8 +95,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testGetWhere() public function testGetWhere()
{ {
$query = self::$db->get_where('test', array('id !=' => 1), 2, 1); $query = self::$db->get_where('test', array('id !=' => 1), 2, 1);
@ -124,8 +102,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testHaving() public function testHaving()
{ {
$query = self::$db->select('id') $query = self::$db->select('id')
@ -138,8 +114,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testOrHaving() public function testOrHaving()
{ {
$query = self::$db->select('id') $query = self::$db->select('id')
@ -151,11 +125,7 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
// ! Select tests // ! Select tests
// --------------------------------------------------------------------------
public function testSelectWhereGet() public function testSelectWhereGet()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -166,8 +136,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testSelectAvg() public function testSelectAvg()
{ {
$query = self::$db->select_avg('id', 'di') $query = self::$db->select_avg('id', 'di')
@ -176,8 +144,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testSelectSum() public function testSelectSum()
{ {
$query = self::$db->select_sum('id', 'di') $query = self::$db->select_sum('id', 'di')
@ -186,8 +152,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testSelectDistinct() public function testSelectDistinct()
{ {
$query = self::$db->select_sum('id', 'di') $query = self::$db->select_sum('id', 'di')
@ -197,8 +161,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testSelectGet() public function testSelectGet()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -207,8 +169,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testSelectFromGet() public function testSelectFromGet()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -219,8 +179,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testSelectFromLimitGet() public function testSelectFromLimitGet()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -233,8 +191,6 @@ abstract class QBTest extends Query_TestCase {
} }
// --------------------------------------------------------------------------
public function testSelectWhereGet2() public function testSelectWhereGet2()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -244,8 +200,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testSelectMax() public function testSelectMax()
{ {
$query = self::$db->select_max('id', 'di') $query = self::$db->select_max('id', 'di')
@ -254,8 +208,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testSelectMin() public function testSelectMin()
{ {
$query = self::$db->select_min('id', 'di') $query = self::$db->select_min('id', 'di')
@ -264,8 +216,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testMultiOrderBy() public function testMultiOrderBy()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -274,11 +224,7 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
// ! Grouping tests // ! Grouping tests
// --------------------------------------------------------------------------
public function testGroup() public function testGroup()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -293,8 +239,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testOrGroup() public function testOrGroup()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -312,8 +256,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testOrNotGroup() public function testOrNotGroup()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -331,8 +273,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testAndNotGroupStart() public function testAndNotGroupStart()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -350,8 +290,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testNotGroupStart() public function testNotGroupStart()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -365,8 +303,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testGroupCamelCase() public function testGroupCamelCase()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -383,11 +319,7 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
// ! Where In tests // ! Where In tests
// --------------------------------------------------------------------------
public function testWhereIn() public function testWhereIn()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -397,8 +329,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testOrWhereIn() public function testOrWhereIn()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -409,8 +339,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testWhereNotIn() public function testWhereNotIn()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -421,8 +349,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testOrWhereNotIn() public function testOrWhereNotIn()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -432,11 +358,7 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
// ! Query modifier tests // ! Query modifier tests
// --------------------------------------------------------------------------
public function testOrderBy() public function testOrderBy()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -451,8 +373,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testOrderByRandom() public function testOrderByRandom()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -466,8 +386,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testGroupBy() public function testGroupBy()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -484,12 +402,8 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
//public function testOr //public function testOr
// --------------------------------------------------------------------------
public function testOrWhere() public function testOrWhere()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -502,8 +416,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testLike() public function testLike()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -513,8 +425,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testOrLike() public function testOrLike()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -525,8 +435,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testOrNotLike() public function testOrNotLike()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -537,8 +445,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testNotLike() public function testNotLike()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -549,8 +455,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testLikeBefore() public function testLikeBefore()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -560,8 +464,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testLikeAfter() public function testLikeAfter()
{ {
$query = self::$db->from('test') $query = self::$db->from('test')
@ -571,8 +473,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testJoin() public function testJoin()
{ {
$query = self::$db->from('test ct') $query = self::$db->from('test ct')
@ -582,8 +482,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testLeftJoin() public function testLeftJoin()
{ {
$query = self::$db->from('test ct') $query = self::$db->from('test ct')
@ -593,8 +491,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testInnerJoin() public function testInnerJoin()
{ {
$query = self::$db->from('test ct') $query = self::$db->from('test ct')
@ -604,8 +500,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testJoinWithMultipleWhereValues() public function testJoinWithMultipleWhereValues()
{ {
$query = self::$db->from('test ct') $query = self::$db->from('test ct')
@ -618,11 +512,7 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
// ! DB update tests // ! DB update tests
// --------------------------------------------------------------------------
public function testInsert() public function testInsert()
{ {
$query = self::$db->set('id', 98) $query = self::$db->set('id', 98)
@ -633,8 +523,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testInsertArray() public function testInsertArray()
{ {
$query = self::$db->insert('test', array( $query = self::$db->insert('test', array(
@ -646,8 +534,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testInsertBatch() public function testInsertBatch()
{ {
$data = array( $data = array(
@ -673,8 +559,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testUpdate() public function testUpdate()
{ {
$query = self::$db->where('id', 7) $query = self::$db->where('id', 7)
@ -687,8 +571,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testSetArrayUpdate() public function testSetArrayUpdate()
{ {
$array = array( $array = array(
@ -704,8 +586,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testWhereSetUpdate() public function testWhereSetUpdate()
{ {
$query = self::$db->where('id', 36) $query = self::$db->where('id', 36)
@ -717,8 +597,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testDelete() public function testDelete()
{ {
$query = self::$db->delete('test', array('id' => 5)); $query = self::$db->delete('test', array('id' => 5));
@ -726,8 +604,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
public function testDeleteWithMultipleWhereValues() public function testDeleteWithMultipleWhereValues()
{ {
$query = self::$db->delete('test', array( $query = self::$db->delete('test', array(
@ -737,11 +613,7 @@ abstract class QBTest extends Query_TestCase {
$this->assertIsA($query, 'PDOStatement'); $this->assertIsA($query, 'PDOStatement');
} }
// --------------------------------------------------------------------------
// ! Non-data read queries // ! Non-data read queries
// --------------------------------------------------------------------------
public function testCountAll() public function testCountAll()
{ {
$query = self::$db->count_all('test'); $query = self::$db->count_all('test');
@ -749,8 +621,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertTrue(is_numeric($query)); $this->assertTrue(is_numeric($query));
} }
// --------------------------------------------------------------------------
public function testCountAllResults() public function testCountAllResults()
{ {
$query = self::$db->count_all_results('test'); $query = self::$db->count_all_results('test');
@ -758,8 +628,6 @@ abstract class QBTest extends Query_TestCase {
$this->assertTrue(is_numeric($query)); $this->assertTrue(is_numeric($query));
} }
// --------------------------------------------------------------------------
public function testCountAllResults2() public function testCountAllResults2()
{ {
$query = self::$db->select('id, key as k, val') $query = self::$db->select('id, key as k, val')
@ -772,19 +640,13 @@ abstract class QBTest extends Query_TestCase {
$this->assertTrue(is_numeric($query)); $this->assertTrue(is_numeric($query));
} }
// --------------------------------------------------------------------------
public function testNumRows() public function testNumRows()
{ {
$query = self::$db->get('test'); $query = self::$db->get('test');
$this->assertTrue(is_numeric(self::$db->num_rows())); $this->assertTrue(is_numeric(self::$db->num_rows()));
} }
// --------------------------------------------------------------------------
// ! Compiled Query tests // ! Compiled Query tests
// --------------------------------------------------------------------------
public function testGetCompiledSelect() public function testGetCompiledSelect()
{ {
$sql = self::$db->get_compiled_select('test'); $sql = self::$db->get_compiled_select('test');
@ -825,11 +687,7 @@ abstract class QBTest extends Query_TestCase {
$this->assertTrue(is_string($sql)); $this->assertTrue(is_string($sql));
} }
// --------------------------------------------------------------------------
// ! Error tests // ! Error tests
// --------------------------------------------------------------------------
/** /**
* Handles invalid drivers * Handles invalid drivers
*/ */
@ -854,8 +712,6 @@ abstract class QBTest extends Query_TestCase {
} }
} }
// --------------------------------------------------------------------------
public function testBadMethod() public function testBadMethod()
{ {
try try
@ -868,8 +724,6 @@ abstract class QBTest extends Query_TestCase {
} }
} }
// --------------------------------------------------------------------------
public function testBadNumRows() public function testBadNumRows()
{ {
self::$db->set(array( self::$db->set(array(

View File

@ -1,4 +1,18 @@
<?php <?php declare(strict_types=1);
/**
* Query
*
* SQL Query Builder / Database Abstraction Layer
*
* PHP version 7
*
* @package Query
* @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/
class Connection_Manager_Test extends Query_TestCase { class Connection_Manager_Test extends Query_TestCase {

View File

@ -1,15 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* OpenSQLManager * Query
* *
* Free Database manager for Open Source Databases * SQL Query Builder / Database Abstraction Layer
* *
* @author Timothy J. Warren * PHP version 7
* @copyright Copyright (c) 2012 - 2014 *
* @link https://github.com/aviat4ion/OpenSQLManager * @package Query
* @license http://philsturgeon.co.uk/code/dbad-license * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**

View File

@ -1,16 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* Free Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* @package Query * PHP version 7
* @author Timothy J. Warren *
* @copyright Copyright (c) 2012 - 2014 * @package Query
* @link https://github.com/aviat4ion/Query * @author Timothy J. Warren <tim@timshomepage.net>
* @license http://philsturgeon.co.uk/code/dbad-license * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**

View File

@ -1,16 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* Free Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* @package Query * PHP version 7
* @author Timothy J. Warren *
* @copyright Copyright (c) 2012 - 2014 * @package Query
* @link https://github.com/aviat4ion/Query * @author Timothy J. Warren <tim@timshomepage.net>
* @license http://philsturgeon.co.uk/code/dbad-license * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**

View File

@ -1,16 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* Free Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* @package Query * PHP version 7
* @author Timothy J. Warren *
* @copyright Copyright (c) 2012 - 2014 * @package Query
* @link https://github.com/aviat4ion/Query * @author Timothy J. Warren <tim@timshomepage.net>
* @license http://philsturgeon.co.uk/code/dbad-license * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@chmod(QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_DB.FDB', 0777); @chmod(QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_DB.FDB', 0777);

View File

@ -1,16 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* Free Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* @package Query * PHP version 7
* @author Timothy J. Warren *
* @copyright Copyright (c) 2012 - 2014 * @package Query
* @link https://github.com/aviat4ion/Query * @author Timothy J. Warren <tim@timshomepage.net>
* @license http://philsturgeon.co.uk/code/dbad-license * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**

View File

@ -1,16 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* Query * Query
* *
* Free Query Builder / Database Abstraction Layer * SQL Query Builder / Database Abstraction Layer
* *
* @package Query * PHP version 7
* @author Timothy J. Warren *
* @copyright Copyright (c) 2012 - 2014 * @package Query
* @link https://github.com/aviat4ion/Query * @author Timothy J. Warren <tim@timshomepage.net>
* @license http://philsturgeon.co.uk/code/dbad-license * @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**

View File

@ -1,15 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* OpenSQLManager * Query
* *
* Free Database manager for Open Source Databases * SQL Query Builder / Database Abstraction Layer
* *
* @author Timothy J. Warren * PHP version 7
* @copyright Copyright (c) 2012 - 2014 *
* @link https://github.com/aviat4ion/OpenSQLManager * @package Query
* @license http://philsturgeon.co.uk/code/dbad-license * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**

View File

@ -1,15 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* OpenSQLManager * Query
* *
* Free Database manager for Open Source Databases * SQL Query Builder / Database Abstraction Layer
* *
* @author Timothy J. Warren * PHP version 7
* @copyright Copyright (c) 2012 - 2014 *
* @link https://github.com/aviat4ion/OpenSQLManager * @package Query
* @license http://philsturgeon.co.uk/code/dbad-license * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**

View File

@ -1,15 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* OpenSQLManager * Query
* *
* Free Database manager for Open Source Databases * SQL Query Builder / Database Abstraction Layer
* *
* @author Timothy J. Warren * PHP version 7
* @copyright Copyright (c) 2012 - 2014 *
* @link https://github.com/aviat4ion/OpenSQLManager * @package Query
* @license http://philsturgeon.co.uk/code/dbad-license * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**

View File

@ -1,15 +1,19 @@
<?php <?php declare(strict_types=1);
/** /**
* OpenSQLManager * Query
* *
* Free Database manager for Open Source Databases * SQL Query Builder / Database Abstraction Layer
* *
* @author Timothy J. Warren * PHP version 7
* @copyright Copyright (c) 2012 - 2014 *
* @link https://github.com/aviat4ion/OpenSQLManager * @package Query
* @license http://philsturgeon.co.uk/code/dbad-license * @author Timothy J. Warren <tim@timshomepage.net>
* @copyright 2012 - 2016 Timothy J. Warren
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://git.timshomepage.net/aviat4ion/Query
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/** /**