X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FDAO%2FAllCoreTables.php;h=6cce0eb92cc3c0f582ccbc5c4b7c7ae744d95fa1;hb=3d182a0410cc3f52a3adaa7f8e36da216662048a;hp=41e71b0e4891d0ea98f4630b4c57637201128258;hpb=8c20952c7e9195ff138ba1d9515eefec74312586;p=civicrm-core.git diff --git a/CRM/Core/DAO/AllCoreTables.php b/CRM/Core/DAO/AllCoreTables.php index 41e71b0e48..6cce0eb92c 100644 --- a/CRM/Core/DAO/AllCoreTables.php +++ b/CRM/Core/DAO/AllCoreTables.php @@ -45,8 +45,8 @@ class CRM_Core_DAO_AllCoreTables { $entityType['name'], $entityType['class'], $entityType['table'], - isset($entityType['fields_callback']) ? $entityType['fields_callback'] : NULL, - isset($entityType['links_callback']) ? $entityType['links_callback'] : NULL + $entityType['fields_callback'] ?? NULL, + $entityType['links_callback'] ?? NULL ); } @@ -186,14 +186,26 @@ class CRM_Core_DAO_AllCoreTables { } /** - * Get the DAO for the class. + * Get the DAO for a BAO class. * - * @param string $className + * @param string $baoName * - * @return string + * @return string|CRM_Core_DAO */ - public static function getCanonicalClassName($className) { - return str_replace('_BAO_', '_DAO_', $className); + public static function getCanonicalClassName($baoName) { + return str_replace('_BAO_', '_DAO_', $baoName); + } + + /** + * Get the BAO for a DAO class. + * + * @param string $daoName + * + * @return string|CRM_Core_DAO + */ + public static function getBAOClassName($daoName) { + $baoName = str_replace('_DAO_', '_BAO_', $daoName); + return class_exists($baoName) ? $baoName : $daoName; } /** @@ -242,7 +254,8 @@ class CRM_Core_DAO_AllCoreTables { * Ex: 'Contact'. */ public static function getBriefName($className) { - return CRM_Utils_Array::value($className, array_flip(self::daoToClass())); + $className = self::getCanonicalClassName($className); + return array_search($className, self::daoToClass(), TRUE) ?: NULL; } /** @@ -254,6 +267,17 @@ class CRM_Core_DAO_AllCoreTables { self::tables()); } + /** + * Convert the entity name into a table name. + * + * @param string $entityBriefName + * + * @return FALSE|string + */ + public static function getTableForEntityName($entityBriefName) { + return self::getTableForClass(self::getFullName($entityBriefName)); + } + /** * Reinitialise cache. *