12345678910111213141516171819202122232425262728293031323334353637 |
- <?php
- namespace Aws\Crypto\Polyfill;
- use Aws\Exception\CryptoPolyfillException;
- /**
- * Trait NeedsTrait
- */
- trait NeedsTrait
- {
- /**
- * Preconditions, postconditions, and loop invariants are very
- * useful for safe programing. They also document the specifications.
- * This function is to help simplify the semantic burden of parsing
- * these constructions.
- *
- * Instead of constructions like
- * if (!(GOOD CONDITION)) {
- * throw new \Exception('condition not true');
- * }
- *
- * you can write:
- * needs(GOOD CONDITION, 'condition not true');
- * @param $condition
- * @param $errorMessage
- * @param null $exceptionClass
- */
- public static function needs($condition, $errorMessage, $exceptionClass = null)
- {
- if (!$condition) {
- if (!$exceptionClass) {
- $exceptionClass = CryptoPolyfillException::class;
- }
- throw new $exceptionClass($errorMessage);
- }
- }
- }
|