/**
* Self-populates version info
*
- * @throws \Exception
+ * @param bool $force
+ * @throws Exception
*/
- public function initialize() {
+ public function initialize($force = FALSE) {
$this->getJob();
// Populate remote $versionInfo from cache file
// Fallback if scheduled job is enabled but has failed to run.
$expiryTime = time() - self::CACHEFILE_EXPIRE;
- if (!empty($this->cronJob['is_active']) &&
+ if ($force || (!empty($this->cronJob['is_active']) &&
(!$this->isInfoAvailable || filemtime($this->cacheFile) < $expiryTime)
- ) {
+ )) {
// First try updating the files modification time, for 2 reasons:
// - if the file is not writeable, this saves the trouble of pinging back
// - if the remote server is down, this will prevent an immediate retry
* Add info to the 'entities' array
*/
private function getEntityStats() {
+ // FIXME hardcoded list = bad
$tables = [
'CRM_Activity_DAO_Activity' => 'is_test = 0',
'CRM_Case_DAO_Case' => 'is_deleted = 0',
'CRM_Mailing_Event_DAO_Delivered' => NULL,
];
foreach ($tables as $daoName => $where) {
- $dao = new $daoName();
- if ($where) {
- $dao->whereAdd($where);
+ if (class_exists($daoName)) {
+ /* @var \CRM_Core_DAO $dao */
+ $dao = new $daoName();
+ if ($where) {
+ $dao->whereAdd($where);
+ }
+ $short_name = substr($daoName, strrpos($daoName, '_') + 1);
+ $this->stats['entities'][] = [
+ 'name' => $short_name,
+ 'size' => $dao->count(),
+ ];
}
- $short_name = substr($daoName, strrpos($daoName, '_') + 1);
- $this->stats['entities'][] = [
- 'name' => $short_name,
- 'size' => $dao->count(),
- ];
}
}