From: Tim Otten Date: Thu, 10 May 2018 23:45:06 +0000 (-0700) Subject: civicrm-version.php - Keep civicrmVersion() in global namespace X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=292931f6bd575101c6f6a9ee93700fcf263b88a9;p=civicrm-core.git civicrm-version.php - Keep civicrmVersion() in global namespace The function has traditionally been in the global namespace, and it should stay there for backward compatibility. This patch looks big, but it's really just wrapping code inside new `namespace ... { ... }` blocks. --- diff --git a/civicrm-version.php b/civicrm-version.php index aec485b873..6292f2b2cd 100755 --- a/civicrm-version.php +++ b/civicrm-version.php @@ -1,115 +1,118 @@ version_no; - } - - trigger_error("Unknown version", E_USER_ERROR); - exit(); - } + /** + * Get the CiviCRM version + */ + public static function findVersion() { + $verFile = implode(DIRECTORY_SEPARATOR, [dirname(__FILE__), 'xml', 'version.xml']); + if (file_exists($verFile)) { + $str = file_get_contents($verFile); + $xmlObj = simplexml_load_string($str); + return (string) $xmlObj->version_no; + } - /** - * Get the CMS name - */ - public static function findCMS() { - if (defined('CIVICRM_UF')) { - return CIVICRM_UF; + trigger_error("Unknown version", E_USER_ERROR); + exit(); } - elseif (function_exists('drupal_bootstrap') && version_compare(VERSION, '6.0', '>=') && version_compare(VERSION, '7.0', '<')) { - return 'Drupal6'; - } - elseif (function_exists('drupal_bootstrap') && version_compare(VERSION, '7.0', '>=') && version_compare(VERSION, '8.0', '<')) { - return 'Drupal'; - } - else { - // guess CMS name from the current path - list($cmsType,) = self::findCMSRootPath(); - if (!empty($cmsType)) { - return $cmsType; + /** + * Get the CMS name + */ + public static function findCMS() { + if (defined('CIVICRM_UF')) { + return CIVICRM_UF; + } + elseif (function_exists('drupal_bootstrap') && version_compare(VERSION, '6.0', '>=') && version_compare(VERSION, '7.0', '<')) { + return 'Drupal6'; + } + elseif (function_exists('drupal_bootstrap') && version_compare(VERSION, '7.0', '>=') && version_compare(VERSION, '8.0', '<')) { + return 'Drupal'; + } + else { + // guess CMS name from the current path + list($cmsType,) = self::findCMSRootPath(); + + if (!empty($cmsType)) { + return $cmsType; + } } } - } - /** - * Get the CMS root path and CMS name - */ - public static function findCMSRootPath() { - $cmsPatterns = array( - 'Wordpress' => array( - 'wp-includes/version.php', - // Future? 'vendor/civicrm/wordpress/civicrm.php' => 'wp', - ), - 'Joomla' => array( - 'administrator/components/com_civicrm/civicrm/civicrm-version.php', - ), - 'Drupal' => array( - 'modules/system/system.module', // D7 - ), - 'Drupal8' => array( - 'core/core.services.yml', // D8 - ), - 'Backdrop' => array( - 'core/modules/layout/layout.module', - ), - ); + /** + * Get the CMS root path and CMS name + */ + public static function findCMSRootPath() { + $cmsPatterns = array( + 'Wordpress' => array( + 'wp-includes/version.php', + // Future? 'vendor/civicrm/wordpress/civicrm.php' => 'wp', + ), + 'Joomla' => array( + 'administrator/components/com_civicrm/civicrm/civicrm-version.php', + ), + 'Drupal' => array( + 'modules/system/system.module', // D7 + ), + 'Drupal8' => array( + 'core/core.services.yml', // D8 + ), + 'Backdrop' => array( + 'core/modules/layout/layout.module', + ), + ); - $parts = explode('/', str_replace('\\', '/', self::getSearchDir())); - while (!empty($parts)) { - $basePath = implode('/', $parts); + $parts = explode('/', str_replace('\\', '/', self::getSearchDir())); + while (!empty($parts)) { + $basePath = implode('/', $parts); - foreach ($cmsPatterns as $cmsType => $relPaths) { - foreach ($relPaths as $relPath) { - $matches = glob("$basePath/$relPath"); - if (!empty($matches)) { - return [$cmsType, $basePath]; + foreach ($cmsPatterns as $cmsType => $relPaths) { + foreach ($relPaths as $relPath) { + $matches = glob("$basePath/$relPath"); + if (!empty($matches)) { + return [$cmsType, $basePath]; + } } } + + array_pop($parts); } + } - array_pop($parts); + /** + * Get the current path + */ + public static function getSearchDir() { + if ($_SERVER['SCRIPT_FILENAME']) { + return dirname($_SERVER['SCRIPT_FILENAME']); + } + // getenv('PWD') works better with symlinked source trees, but it's + // not portable to Windows. + if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + return getcwd(); + } + else { + return getenv('PWD'); + } } + } +} +namespace { /** - * Get the current path + * Get the CiviCRM version. + * TODO : For now this function is not included in \Civi\Version class so not to break any code + * which directly call civicrmVersion(). So those call need to replaced with \Civi\Version::civicrmVersion() + * when included in the class */ - public static function getSearchDir() { - if ($_SERVER['SCRIPT_FILENAME']) { - return dirname($_SERVER['SCRIPT_FILENAME']); - } - // getenv('PWD') works better with symlinked source trees, but it's - // not portable to Windows. - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - return getcwd(); - } - else { - return getenv('PWD'); - } + function civicrmVersion() { + return [ + 'version' => \Civi\Version::findVersion(), + 'cms' => \Civi\Version::findCMS(), + ]; } - -} - -/** - * Get the CiviCRM version. - * TODO : For now this function is not included in \Civi\Version class so not to break any code - * which directly call civicrmVersion(). So those call need to replaced with \Civi\Version::civicrmVersion() - * when included in the class - */ -function civicrmVersion() { - return [ - 'version' => \Civi\Version::findVersion(), - 'cms' => \Civi\Version::findCMS(), - ]; }