diff --git a/src/infrastructure/cluster/PhabricatorDatabaseRef.php b/src/infrastructure/cluster/PhabricatorDatabaseRef.php --- a/src/infrastructure/cluster/PhabricatorDatabaseRef.php +++ b/src/infrastructure/cluster/PhabricatorDatabaseRef.php @@ -393,7 +393,7 @@ if ($is_replica) { $latency = idx($replica_status, 'Seconds_Behind_Master'); - if (!strlen($latency)) { + if (!phutil_nonempty_string($latency)) { $ref->setReplicaStatus(self::REPLICATION_NOT_REPLICATING); } else { $latency = (int)$latency; diff --git a/src/infrastructure/contentsource/PhabricatorUnknownContentSource.php b/src/infrastructure/contentsource/PhabricatorUnknownContentSource.php --- a/src/infrastructure/contentsource/PhabricatorUnknownContentSource.php +++ b/src/infrastructure/contentsource/PhabricatorUnknownContentSource.php @@ -7,7 +7,7 @@ public function getSourceName() { $source = $this->getSource(); - if (strlen($source)) { + if (phutil_nonempty_string($source)) { return pht('Unknown ("%s")', $source); } else { return pht('Unknown'); diff --git a/src/infrastructure/daemon/PhutilDaemon.php b/src/infrastructure/daemon/PhutilDaemon.php --- a/src/infrastructure/daemon/PhutilDaemon.php +++ b/src/infrastructure/daemon/PhutilDaemon.php @@ -295,7 +295,7 @@ } public function didReceiveStdout($data) { - if (!strlen($data)) { + if (!phutil_nonempty_string($data)) { return ''; } diff --git a/src/infrastructure/daemon/PhutilDaemonHandle.php b/src/infrastructure/daemon/PhutilDaemonHandle.php --- a/src/infrastructure/daemon/PhutilDaemonHandle.php +++ b/src/infrastructure/daemon/PhutilDaemonHandle.php @@ -165,12 +165,12 @@ list($stdout, $stderr) = $future->read(); $future->discardBuffers(); - if (strlen($stdout)) { + if (phutil_nonempty_string($stdout)) { $this->didReadStdout($stdout); } $stderr = trim($stderr); - if (strlen($stderr)) { + if (phutil_nonempty_string($stderr)) { foreach (phutil_split_lines($stderr, false) as $line) { $this->logMessage('STDE', $line); } diff --git a/src/infrastructure/diff/prose/PhutilProseDifferenceEngine.php b/src/infrastructure/diff/prose/PhutilProseDifferenceEngine.php --- a/src/infrastructure/diff/prose/PhutilProseDifferenceEngine.php +++ b/src/infrastructure/diff/prose/PhutilProseDifferenceEngine.php @@ -81,9 +81,9 @@ $new = $block['new']; if (!strlen($old) && !strlen($new)) { // Nothing to do. - } else if (!strlen($old)) { + } else if (!phutil_nonempty_string($old)) { $result->addPart('+', $new); - } else if (!strlen($new)) { + } else if (!phutil_nonempty_string($new)) { $result->addPart('-', $old); } else { if ($too_large) { diff --git a/src/infrastructure/diff/view/PHUIDiffTableOfContentsItemView.php b/src/infrastructure/diff/view/PHUIDiffTableOfContentsItemView.php --- a/src/infrastructure/diff/view/PHUIDiffTableOfContentsItemView.php +++ b/src/infrastructure/diff/view/PHUIDiffTableOfContentsItemView.php @@ -139,7 +139,7 @@ $not_applicable = '-'; $coverage = $this->getCoverage(); - if (!strlen($coverage)) { + if (!phutil_nonempty_string($coverage)) { return $not_applicable; } @@ -157,7 +157,7 @@ $not_applicable = '-'; $coverage = $this->getCoverage(); - if (!strlen($coverage)) { + if (!phutil_nonempty_string($coverage)) { return $not_applicable; } diff --git a/src/infrastructure/export/field/PhabricatorOptionExportField.php b/src/infrastructure/export/field/PhabricatorOptionExportField.php --- a/src/infrastructure/export/field/PhabricatorOptionExportField.php +++ b/src/infrastructure/export/field/PhabricatorOptionExportField.php @@ -19,7 +19,7 @@ return $value; } - if (!strlen($value)) { + if (!phutil_nonempty_string($value)) { return null; } diff --git a/src/infrastructure/export/field/PhabricatorStringExportField.php b/src/infrastructure/export/field/PhabricatorStringExportField.php --- a/src/infrastructure/export/field/PhabricatorStringExportField.php +++ b/src/infrastructure/export/field/PhabricatorStringExportField.php @@ -8,7 +8,7 @@ return $value; } - if (!strlen($value)) { + if (!phutil_nonempty_string($value)) { return null; } diff --git a/src/infrastructure/log/PhabricatorProtocolLog.php b/src/infrastructure/log/PhabricatorProtocolLog.php --- a/src/infrastructure/log/PhabricatorProtocolLog.php +++ b/src/infrastructure/log/PhabricatorProtocolLog.php @@ -24,7 +24,7 @@ } public function didWriteBytes($bytes) { - if (!strlen($bytes)) { + if (!phutil_nonempty_string($bytes)) { return; } @@ -33,7 +33,7 @@ } public function didReadBytes($bytes) { - if (!strlen($bytes)) { + if (!phutil_nonempty_string($bytes)) { return; } @@ -84,7 +84,7 @@ $bytes = implode('', $bytes); - if (strlen($bytes)) { + if (phutil_nonempty_string($bytes)) { $this->writeBytes($mode, $bytes); } } diff --git a/src/infrastructure/log/PhabricatorSSHLog.php b/src/infrastructure/log/PhabricatorSSHLog.php --- a/src/infrastructure/log/PhabricatorSSHLog.php +++ b/src/infrastructure/log/PhabricatorSSHLog.php @@ -35,7 +35,7 @@ } $client = getenv('SSH_CLIENT'); - if (strlen($client)) { + if (phutil_nonempty_string($client)) { $remote_address = head(explode(' ', $client)); $data['r'] = $remote_address; } diff --git a/src/infrastructure/management/PhabricatorManagementWorkflow.php b/src/infrastructure/management/PhabricatorManagementWorkflow.php --- a/src/infrastructure/management/PhabricatorManagementWorkflow.php +++ b/src/infrastructure/management/PhabricatorManagementWorkflow.php @@ -14,7 +14,7 @@ } protected function parseTimeArgument($time) { - if (!strlen($time)) { + if (!phutil_nonempty_string($time)) { return null; } diff --git a/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php b/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php --- a/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php +++ b/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php @@ -2449,7 +2449,7 @@ PhabricatorSearchNgrams $index, $value) { - if (strlen($value)) { + if (phutil_nonempty_string($value)) { $this->ngrams[] = array( 'index' => $index, 'value' => $value, diff --git a/src/infrastructure/ssh/PhabricatorSSHPassthruCommand.php b/src/infrastructure/ssh/PhabricatorSSHPassthruCommand.php --- a/src/infrastructure/ssh/PhabricatorSSHPassthruCommand.php +++ b/src/infrastructure/ssh/PhabricatorSSHPassthruCommand.php @@ -163,7 +163,7 @@ } $out_message = $command_channel->read(); - if (strlen($out_message)) { + if (phutil_nonempty_string($out_message)) { $out_message = $this->willReadData($out_message); if ($out_message !== null) { $io_channel->write($out_message); @@ -201,7 +201,7 @@ public function writeIORead($in_message) { $in_message = $this->willWriteData($in_message); - if (strlen($in_message)) { + if (phutil_nonempty_string($in_message)) { $this->commandChannel->write($in_message); } } @@ -210,7 +210,7 @@ if ($this->willWriteCallback) { return call_user_func($this->willWriteCallback, $this, $message); } else { - if (strlen($message)) { + if (phutil_nonempty_string($message)) { return $message; } else { return null; @@ -222,7 +222,7 @@ if ($this->willReadCallback) { return call_user_func($this->willReadCallback, $this, $message); } else { - if (strlen($message)) { + if (phutil_nonempty_string($message)) { return $message; } else { return null; diff --git a/src/infrastructure/ssh/PhabricatorSSHWorkflow.php b/src/infrastructure/ssh/PhabricatorSSHWorkflow.php --- a/src/infrastructure/ssh/PhabricatorSSHWorkflow.php +++ b/src/infrastructure/ssh/PhabricatorSSHWorkflow.php @@ -101,7 +101,7 @@ public function getSSHRemoteAddress() { $ssh_client = getenv('SSH_CLIENT'); - if (!strlen($ssh_client)) { + if (!phutil_nonempty_string($ssh_client)) { return null; } diff --git a/src/infrastructure/storage/connection/mysql/AphrontMySQLiDatabaseConnection.php b/src/infrastructure/storage/connection/mysql/AphrontMySQLiDatabaseConnection.php --- a/src/infrastructure/storage/connection/mysql/AphrontMySQLiDatabaseConnection.php +++ b/src/infrastructure/storage/connection/mysql/AphrontMySQLiDatabaseConnection.php @@ -99,7 +99,7 @@ // "port" parameter.) if (!$ok) { - if (strlen($call_error)) { + if (phutil_nonempty_string($call_error)) { $message = pht( 'mysqli->real_connect() failed: %s', $call_error); @@ -180,7 +180,7 @@ if (!$result) { $error_code = $this->getErrorCode($conn); if (!$error_code) { - if (strlen($err)) { + if (phutil_nonempty_string($err)) { $message = $err; } else { $message = pht( diff --git a/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php b/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php --- a/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php +++ b/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php @@ -39,10 +39,12 @@ */ public static function getStorageNamespace() { $namespace = end(self::$namespaceStack); - if (!strlen($namespace)) { + // The false check is explicit since otherwise the nonempty check + // can throw an exception + if ($namespace === false || !phutil_nonempty_string($namespace)) { $namespace = self::getDefaultStorageNamespace(); } - if (!strlen($namespace)) { + if (!phutil_nonempty_string($namespace)) { throw new Exception(pht('No storage namespace configured!')); } return $namespace; @@ -194,7 +196,7 @@ $class = substr($class, strlen($app)); } - if (strlen($class)) { + if (phutil_nonempty_string($class)) { return $app.'_'.$class; } else { return $app; @@ -295,7 +297,7 @@ } if (function_exists('mb_detect_encoding')) { - if (strlen($encoding)) { + if (phutil_nonempty_string($encoding)) { $try_encodings = array( $encoding, ); diff --git a/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementDumpWorkflow.php b/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementDumpWorkflow.php --- a/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementDumpWorkflow.php +++ b/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementDumpWorkflow.php @@ -371,7 +371,7 @@ list($stdout, $stderr) = $future->read(); $future->discardBuffers(); - if (strlen($stderr)) { + if (phutil_nonempty_string($stderr)) { fwrite(STDERR, $stderr); } @@ -416,7 +416,7 @@ } private function writeData($data, $file, $is_compress, $output_file) { - if (!strlen($data)) { + if (!phutil_nonempty_string($data)) { return; } diff --git a/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementRenamespaceWorkflow.php b/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementRenamespaceWorkflow.php --- a/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementRenamespaceWorkflow.php +++ b/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementRenamespaceWorkflow.php @@ -67,7 +67,7 @@ } $from = $args->getArg('from'); - if (!strlen($from)) { + if (!phutil_nonempty_string($from)) { throw new PhutilArgumentUsageException( pht( 'Specify namespace to rename from with %s.', @@ -75,7 +75,7 @@ } $to = $args->getArg('to'); - if (!strlen($to)) { + if (!phutil_nonempty_string($to)) { throw new PhutilArgumentUsageException( pht( 'Specify namespace to rename to with %s.', diff --git a/src/infrastructure/storage/patch/PhabricatorSQLPatchList.php b/src/infrastructure/storage/patch/PhabricatorSQLPatchList.php --- a/src/infrastructure/storage/patch/PhabricatorSQLPatchList.php +++ b/src/infrastructure/storage/patch/PhabricatorSQLPatchList.php @@ -288,7 +288,7 @@ case 'phase': $phase_name = $attr_value; - if (!strlen($phase_name)) { + if (!phutil_nonempty_string($phase_name)) { throw new Exception( pht( 'Storage patch "%s" specifies a "@phase" attribute with '. diff --git a/src/infrastructure/util/PhabricatorHash.php b/src/infrastructure/util/PhabricatorHash.php --- a/src/infrastructure/util/PhabricatorHash.php +++ b/src/infrastructure/util/PhabricatorHash.php @@ -197,7 +197,7 @@ pht('HMAC-SHA256 keys must be strings.')); } - if (!strlen($key)) { + if (!phutil_nonempty_string($key)) { throw new Exception( pht('HMAC-SHA256 requires a nonempty key.')); } diff --git a/src/infrastructure/util/password/PhabricatorPasswordHasher.php b/src/infrastructure/util/password/PhabricatorPasswordHasher.php --- a/src/infrastructure/util/password/PhabricatorPasswordHasher.php +++ b/src/infrastructure/util/password/PhabricatorPasswordHasher.php @@ -388,7 +388,7 @@ */ public static function getCurrentAlgorithmName(PhutilOpaqueEnvelope $hash) { $raw_hash = $hash->openEnvelope(); - if (!strlen($raw_hash)) { + if (!phutil_nonempty_string($raw_hash)) { return pht('None'); } diff --git a/src/view/control/AphrontTableView.php b/src/view/control/AphrontTableView.php --- a/src/view/control/AphrontTableView.php +++ b/src/view/control/AphrontTableView.php @@ -135,7 +135,7 @@ $col_classes = array(); foreach ($this->columnClasses as $key => $class) { - if (strlen($class)) { + if (phutil_nonempty_string($class)) { $col_classes[] = $class; } else { $col_classes[] = null; diff --git a/src/view/layout/AphrontSideNavFilterView.php b/src/view/layout/AphrontSideNavFilterView.php --- a/src/view/layout/AphrontSideNavFilterView.php +++ b/src/view/layout/AphrontSideNavFilterView.php @@ -97,12 +97,12 @@ ->setName($name) ->setType($type); - if (strlen($icon)) { + if (phutil_nonempty_string($icon)) { $item->setIcon($icon); } - if (strlen($key)) { + if (phutil_nonempty_string($key)) { $item->setKey($key); } diff --git a/src/view/layout/PHUICurtainPanelView.php b/src/view/layout/PHUICurtainPanelView.php --- a/src/view/layout/PHUICurtainPanelView.php +++ b/src/view/layout/PHUICurtainPanelView.php @@ -38,7 +38,7 @@ $header = null; $header_text = $this->getHeaderText(); - if (strlen($header_text)) { + if (phutil_nonempty_string($header_text)) { $header = phutil_tag( 'div', array( diff --git a/src/view/page/PhabricatorBarePageView.php b/src/view/page/PhabricatorBarePageView.php --- a/src/view/page/PhabricatorBarePageView.php +++ b/src/view/page/PhabricatorBarePageView.php @@ -97,7 +97,7 @@ if ($viewer) { $postprocessor_key = $viewer->getUserSetting( PhabricatorAccessibilitySetting::SETTINGKEY); - if (strlen($postprocessor_key)) { + if (phutil_nonempty_string($postprocessor_key)) { $response->setPostProcessorKey($postprocessor_key); } } diff --git a/src/view/page/PhabricatorStandardPageView.php b/src/view/page/PhabricatorStandardPageView.php --- a/src/view/page/PhabricatorStandardPageView.php +++ b/src/view/page/PhabricatorStandardPageView.php @@ -183,12 +183,12 @@ $prefix = $this->getGlyph(); } else { $application_name = $this->getApplicationName(); - if (strlen($application_name)) { + if (phutil_nonempty_string($application_name)) { $prefix = '['.$application_name.']'; } } - if (strlen($prefix)) { + if (phutil_nonempty_string($prefix)) { $title = $prefix.' '.$title; } diff --git a/src/view/page/menu/PhabricatorMainMenuView.php b/src/view/page/menu/PhabricatorMainMenuView.php --- a/src/view/page/menu/PhabricatorMainMenuView.php +++ b/src/view/page/menu/PhabricatorMainMenuView.php @@ -333,7 +333,7 @@ $wordmark_text = PhabricatorCustomLogoConfigType::getLogoWordmark(); - if (!strlen($wordmark_text)) { + if (!phutil_nonempty_string($wordmark_text)) { $wordmark_text = PlatformSymbols::getPlatformServerName(); } diff --git a/src/view/phui/PHUIObjectItemView.php b/src/view/phui/PHUIObjectItemView.php --- a/src/view/phui/PHUIObjectItemView.php +++ b/src/view/phui/PHUIObjectItemView.php @@ -873,7 +873,7 @@ 'class' => 'phui-oi-status-icon', ); - if (strlen($label)) { + if (phutil_nonempty_string($label)) { $options['sigil'] = 'has-tooltip'; $options['meta'] = array('tip' => $label, 'size' => 300); } @@ -890,7 +890,7 @@ 'style' => 'background-image: url('.$handle->getImageURI().')', ); - if (strlen($label)) { + if (phutil_nonempty_string($label)) { $options['sigil'] = 'has-tooltip'; $options['meta'] = array('tip' => $label, 'align' => 'E'); } diff --git a/src/view/phui/PHUISegmentBarSegmentView.php b/src/view/phui/PHUISegmentBarSegmentView.php --- a/src/view/phui/PHUISegmentBarSegmentView.php +++ b/src/view/phui/PHUISegmentBarSegmentView.php @@ -55,7 +55,7 @@ $left = sprintf('%.2f%%', $left); $tooltip = $this->tooltip; - if (strlen($tooltip)) { + if (phutil_nonempty_string($tooltip)) { Javelin::initBehavior('phabricator-tooltips'); $sigil = 'has-tooltip'; diff --git a/src/view/phui/PHUISegmentBarView.php b/src/view/phui/PHUISegmentBarView.php --- a/src/view/phui/PHUISegmentBarView.php +++ b/src/view/phui/PHUISegmentBarView.php @@ -30,7 +30,7 @@ require_celerity_resource('phui-segment-bar-view-css'); $label = $this->label; - if (strlen($label)) { + if (phutil_nonempty_string($label)) { $label = phutil_tag( 'div', array(