1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
<?php
/**
* TfCriteriaFactory class file.
*
* @copyright Simon Wilkinson 2013+ (https://tuskfish.biz)
* @license https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html GNU General Public License (GPL) V2
* @author Simon Wilkinson <[email protected]>
* @version Release: 1.0
* @since 1.1
* @package database
*/
// Enable strict type declaration.
declare(strict_types=1);
if (!defined("TFISH_ROOT_PATH")) die("TFISH_ERROR_ROOT_PATH_NOT_DEFINED");
/**
* Factory for instantiating TfCriteria objects and injecting dependencies.
*
* Use this class to delegate construction of TfCriteria objects. See the Tuskfish Developer Guide
* for a full explanation and examples.
*
* @copyright Simon Wilkinson 2013+ (https://tuskfish.biz)
* @license https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html GNU General Public License (GPL) V2
* @author Simon Wilkinson <[email protected]>
* @version Release: 1.0
* @since 1.1
* @package database
* @var TfValidator $validator Instance of the Tuskfish data validator class.
*/
class TfCriteriaFactory
{
protected $validator;
/**
* Constructor.
*
* @param TfValidator $validator An instance of the Tuskfish data validator class.
*/
public function __construct(TfValidator $validator)
{
if (is_a($validator, 'TfValidator')) {
$this->validator = $validator;
} else {
trigger_error(TFISH_ERROR_NOT_VALIDATOR, E_USER_ERROR);
}
}
/**
* Factory method to instantiate and return a TfCriteria object.
*
* @return \TfCriteria Instance of a TfCriteria object.
*/
public function getCriteria()
{
return new TfCriteria($this->validator);
}
/**
* Factory method to instantiate and return a TfCriteriaItem object.
*
* @param string $column Name of column in database table. Alphanumeric and underscore
* characters only.
* @param mixed $value Value of the column.
* @param string $operator See TfishCriteriaItem::getListOfPermittedOperators() for a list of
* acceptable operators.
* @return \TfCriteriaItem
*/
public function getItem(string $column, $value, string $operator = '=')
{
return new TfCriteriaItem($this->validator, $column, $value, $operator);
}
}