| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
* Our base DAO class. All DAO classes should inherit from this class.
* Class constructor
*
* @return \CRM_Core_DAO
- * @access public
*/
public function __construct() {
$this->initialize();
$required = TRUE;
}
if (!$required && $dbName != 'contact_id') {
- $fkDAO = new $FKClassName;
+ $fkDAO = new $FKClassName();
if ($fkDAO->find(TRUE)) {
$this->$dbName = $fkDAO->id;
}
case CRM_Utils_Type::T_TIME:
CRM_Core_Error::fatal('T_TIME shouldnt be used.');
- //$object->$dbName='000000';
- //break;
+ //$object->$dbName='000000';
+ //break;
case CRM_Utils_Type::T_CCNUM:
$this->$dbName = '4111 1111 1111 1111';
break;
*
* @return array
*/
- static function &fields() {
+ public static function &fields() {
$result = NULL;
return $result;
}
/**
* Get/set an associative array of table columns
*
- * @param array key=>type array
* @return array
* (associative)
*/
return $this;
}
+ /**
+ * Deletes items from table which match current objects variables
+ *
+ * Returns the true on success
+ *
+ * for example
+ *
+ * Designed to be extended
+ *
+ * $object = new mytable();
+ * $object->ID=123;
+ * echo $object->delete(); // builds a conditon
+ *
+ * $object = new mytable();
+ * $object->whereAdd('age > 12');
+ * $object->limit(1);
+ * $object->orderBy('age DESC');
+ * $object->delete(true); // dont use object vars, use the conditions, limit and order.
+ *
+ * @param bool $useWhere (optional) If DB_DATAOBJECT_WHEREADD_ONLY is passed in then
+ * we will build the condition only using the whereAdd's. Default is to
+ * build the condition only using the object parameters.
+ *
+ * * @return mixed Int (No. of rows affected) on success, false on failure, 0 on no data affected
+ */
public function delete($useWhere = FALSE) {
$result = parent::delete($useWhere);
* @param array $params
* (reference ) associative array of name/value pairs.
*
- * @return boolean
- * did we copy all null values into the object
+ * @return bool
+ * Did we copy all null values into the object
*/
public function copyValues(&$params) {
$fields = &$this->fields();
}
/**
- * Get the size and maxLength attributes for this text field
+ * Get the size and maxLength attributes for this text field.
* (or for all text fields) in the DAO object.
*
* @param string $class
* @param string $fieldName
* The name of the field in the DAO.
*
- * @return boolean
+ * @return bool
* true if object exists
*/
public static function objectExists($value, $daoName, $daoID, $fieldName = 'name') {
* @param bool $i18nRewrite
* Whether to rewrite the query on multilingual setups.
*
- * @return boolean
+ * @return bool
* true if exists, else false
*/
public static function checkFieldExists($tableName, $columnName, $i18nRewrite = TRUE) {
* @param string $tableName
* @param string $constraint
*
- * @return boolean
+ * @return bool
* true if constraint exists, false otherwise
*/
public static function checkConstraintExists($tableName, $constraint) {
*
* @throws Exception
*
- * @return boolean
+ * @return bool
* true if CONSTRAINT keyword exists, false otherwise
*/
public static function schemaRequiresRebuilding($tables = array("civicrm_contact")) {
* @param string $tableName
* @param string $columnName
*
- * @return boolean
+ * @return bool
* true if in format, false otherwise
*/
public static function checkFKConstraintInFormat($tableName, $columnName) {
* @param string $columnName
* @param string $columnValue
*
- * @return boolean
+ * @return bool
* true if the value is always $columnValue, false otherwise
*/
public static function checkFieldHasAlwaysValue($tableName, $columnName, $columnValue) {
* @param string $tableName
* @param string $columnName
*
- * @return boolean
+ * @return bool
* true if if the value is always NULL, false otherwise
*/
public static function checkFieldIsAlwaysNull($tableName, $columnName) {
*
* @param string $tableName
*
- * @return boolean
+ * @return bool
* true if exists, else false
*/
public static function checkTableExists($tableName) {
* @param string $searchColumn
* Name of the column you want to search by.
*
- * @return boolean
+ * @return bool
* true if we found and updated the object, else false
*/
public static function setFieldValue($daoName, $searchValue, $setColumn, $setValue, $searchColumn = 'id') {
* @param bool $i18nRewrite
* @param bool $trapException
*
- * @return CRM_Core_DAO
+ * @return CRM_Core_DAO|object
* object that holds the results of the query
+ * NB - if this is defined as just returning a DAO phpstorm keeps pointing
+ * out all the properties that are not part of the DAO
*/
- static function &executeQuery(
+ public static function &executeQuery(
$query,
$params = array(),
$abort = TRUE,
if ($freeDAO ||
preg_match('/^(insert|update|delete|create|drop|replace)/i', $queryStr)
) {
- // we typically do this for insert/update/delete stataments OR if explicitly asked to
+ // we typically do this for insert/update/delete statements OR if explicitly asked to
// free the dao
$dao->free();
}
* the result of the query if any
*
*/
- static function &singleValueQuery(
+ public static function &singleValueQuery(
$query,
$params = array(),
$abort = TRUE,
}
/**
- * make a shallow copy of an object
+ * make a shallow copy of an object.
* and all the fields in the object
*
* @param string $daoName
* @return CRM_Core_DAO
* the newly created copy of the object
*/
- static function ©Generic($daoName, $criteria, $newData = NULL, $fieldsFix = NULL, $blockCopyOfDependencies = NULL) {
+ public static function ©Generic($daoName, $criteria, $newData = NULL, $fieldsFix = NULL, $blockCopyOfDependencies = NULL) {
$object = new $daoName();
if (!$newData) {
$object->id = $criteria['id'];
return $newObject;
}
+ /**
+ * Cascade update through related entities.
+ *
+ * @param string $daoName
+ * @param $fromId
+ * @param $toId
+ * @param array $newData
+ *
+ * @return null
+ */
public static function cascadeUpdate($daoName, $fromId, $toId, $newData = array()) {
$object = new $daoName();
$object->id = $fromId;
* an object of type referenced by daoName
*/
public static function commonRetrieveAll($daoName, $fieldIdName = 'id', $fieldId, &$details, $returnProperities = NULL) {
- require_once(str_replace('_', DIRECTORY_SEPARATOR, $daoName) . ".php");
+ require_once str_replace('_', DIRECTORY_SEPARATOR, $daoName) . ".php";
$object = new $daoName();
$object->$fieldIdName = $fieldId;
* @param int $numObjects
* @param bool $createOnly
*
- * @return
+ * @return object|array|NULL
+ * NULL if $createOnly. A single object if $numObjects==1. Otherwise, an array of multiple objects.
*/
- static function createTestObject(
+ public static function createTestObject(
$daoName,
$params = array(),
$numObjects = 1,
'CRM_Core_DAO_StateProvince',
'CRM_Core_DAO_Country',
'CRM_Core_DAO_Domain',
- 'CRM_Financial_DAO_FinancialType'
+ 'CRM_Financial_DAO_FinancialType',
//because valid ones exist & we use pick them due to pseudoconstant can't reliably create & delete these
);
}
if ($createOnly) {
- return;
+ return NULL;
}
elseif ($numObjects == 1) {
return $objects[0];
public static function triggerRebuild($tableName = NULL, $force = FALSE) {
$info = array();
- $logging = new CRM_Logging_Schema;
+ $logging = new CRM_Logging_Schema();
$logging->triggerInfo($info, $tableName, $force);
CRM_Core_I18n_Schema::triggerInfo($info, $tableName);
public static function dropTriggers($tableName = NULL) {
$info = array();
- $logging = new CRM_Logging_Schema;
+ $logging = new CRM_Logging_Schema();
$logging->triggerInfo($info, $tableName);
// drop all existing triggers on all tables
*
* @param string $fieldName
* @param string $context
- * @see CRM_Core_DAO::buildOptionsContext.
+ * @see CRM_Core_DAO::buildOptionsContext
* @param array $props
* whatever is known about this bao object.
*
- * @return Array|bool
+ * @return array|bool
*/
public static function buildOptions($fieldName, $context = NULL, $props = array()) {
// If a given bao does not override this function
public function getOptionLabels() {
$fields = $this->fields();
if ($fields === NULL) {
- throw new Exception ('Cannot call getOptionLabels on CRM_Core_DAO');
+ throw new Exception('Cannot call getOptionLabels on CRM_Core_DAO');
}
foreach ($fields as $field) {
$name = CRM_Utils_Array::value('name', $field);
}
$escapedCriteria = array_map(array(
'CRM_Core_DAO',
- 'escapeString'
+ 'escapeString',
), $criteria);
if (!$returnSanitisedArray) {
return (sprintf('%s %s ("%s")', $fieldName, $operator, implode('", "', $escapedCriteria)));
}
return $escapedCriteria;
- break;
// binary operators
'BETWEEN',
'NOT BETWEEN',
'IS NOT NULL',
- 'IS NULL'
+ 'IS NULL',
);
}