- Introduced the `CaBundle.php` class for managing CA certificates. - Updated `installed.json` and `installed.php` to include the new `composer/ca-bundle` dependency. - Added `platform_check.php` to enforce PHP version requirements. - Created `initialize.php` for initializing the Mollie API client with the API key. - Implemented `webhook_mollie.php` to handle webhook callbacks for software upgrade payments, including transaction status updates and invoice generation. - Integrated DomPDF for generating invoices and sending them via email.
48 lines
1.4 KiB
PHP
48 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Mollie\Api;
|
|
|
|
use Mollie\Api\Exceptions\IncompatiblePlatform;
|
|
class CompatibilityChecker
|
|
{
|
|
/**
|
|
* @var string
|
|
*/
|
|
public const MIN_PHP_VERSION = "7.2";
|
|
/**
|
|
* @throws IncompatiblePlatform
|
|
* @return void
|
|
*/
|
|
public function checkCompatibility()
|
|
{
|
|
if (!$this->satisfiesPhpVersion()) {
|
|
throw new \Mollie\Api\Exceptions\IncompatiblePlatform("The client requires PHP version >= " . self::MIN_PHP_VERSION . ", you have " . \PHP_VERSION . ".", \Mollie\Api\Exceptions\IncompatiblePlatform::INCOMPATIBLE_PHP_VERSION);
|
|
}
|
|
if (!$this->satisfiesJsonExtension()) {
|
|
throw new \Mollie\Api\Exceptions\IncompatiblePlatform("PHP extension json is not enabled. Please make sure to enable 'json' in your PHP configuration.", \Mollie\Api\Exceptions\IncompatiblePlatform::INCOMPATIBLE_JSON_EXTENSION);
|
|
}
|
|
}
|
|
/**
|
|
* @return bool
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function satisfiesPhpVersion()
|
|
{
|
|
return (bool) \version_compare(\PHP_VERSION, self::MIN_PHP_VERSION, ">=");
|
|
}
|
|
/**
|
|
* @return bool
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function satisfiesJsonExtension()
|
|
{
|
|
// Check by extension_loaded
|
|
if (\function_exists('extension_loaded') && \extension_loaded('json')) {
|
|
return \true;
|
|
} elseif (\function_exists('json_encode')) {
|
|
return \true;
|
|
}
|
|
return \false;
|
|
}
|
|
}
|