Fix: Add PHP 7.4 compatibility

- Changed PHP min-version from 8.0 to 7.4 in appinfo/info.xml
- Replaced all str_contains() calls with strpos() !== false
  - GoogleAnalyticsService.php: 1 instance
  - LLMService.php: 6 instances
- Verified no other PHP 8.0+ features in use
- Plugin now compatible with PHP 7.4 and PHP 8.0+
This commit is contained in:
WLTBAgent
2026-02-13 17:49:44 +00:00
parent 254c1488c9
commit d87a87b93a
3 changed files with 9 additions and 9 deletions

View File

@@ -22,7 +22,7 @@
<category>integration</category>
<dependencies>
<nextcloud min-version="25" max-version="26"/>
<php min-version="8.0"/>
<php min-version="7.4"/>
</dependencies>
<repair-steps>
<step>Repair steps not needed</step>

View File

@@ -176,7 +176,7 @@ class GoogleAnalyticsService {
$this->logger->error("Token refresh failed: {$e->getMessage()}");
// Check if it's an expired token error
if (str_contains($e->getMessage(), 'invalid_grant')) {
if (strpos($e->getMessage(), 'invalid_grant') !== false) {
throw new TokenExpiredException('Refresh token expired - re-run OAuth setup');
}

View File

@@ -136,9 +136,9 @@ PROMPT;
$errorMessage = $e->getMessage();
// Check for rate limit
if (str_contains($errorMessage, 'rate_limit') ||
str_contains($errorMessage, '429') ||
str_contains($errorMessage, 'too_many_requests')) {
if (strpos($errorMessage, 'rate_limit') !== false ||
strpos($errorMessage, '429') !== false ||
strpos($errorMessage, 'too_many_requests') !== false) {
$this->logger->warning("Rate limited, waiting " . self::RATE_LIMIT_DELAY . "s");
@@ -151,9 +151,9 @@ PROMPT;
}
// Check for timeout
if (str_contains($errorMessage, 'timeout') ||
str_contains($errorMessage, 'connection') ||
str_contains($errorMessage, 'timed out')) {
if (strpos($errorMessage, 'timeout') !== false ||
strpos($errorMessage, 'connection') !== false ||
strpos($errorMessage, 'timed out') !== false) {
if ($attempt < self::MAX_RETRIES - 1) {
$this->logger->warning("Timeout, retrying...");
@@ -235,7 +235,7 @@ PROMPT;
throw new \Exception('Response too short - likely error');
}
if (!str_contains($response, '# Weekly Analytics Snapshot')) {
if (strpos($response, '# Weekly Analytics Snapshot') === false) {
throw new \Exception('Missing required format');
}
}