| Conditions | 1 |
| Paths | 1 |
| Total Lines | 55 |
| Code Lines | 28 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 5 | ||
| Bugs | 1 | Features | 1 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 33 | public function testES512() |
||
| 34 | { |
||
| 35 | /* |
||
| 36 | * Payload |
||
| 37 | * EC public key |
||
| 38 | * @see https://tools.ietf.org/html/rfc7520#section-3.2 |
||
| 39 | * @see https://tools.ietf.org/html/rfc7520#section-4.3.1 |
||
| 40 | */ |
||
| 41 | $payload = "It\xe2\x80\x99s a dangerous business, Frodo, going out your door. You step onto the road, and if you don't keep your feet, there\xe2\x80\x99s no knowing where you might be swept off to."; |
||
| 42 | $private_key = new JWK([ |
||
| 43 | 'kty' => 'EC', |
||
| 44 | 'kid' => '[email protected]', |
||
| 45 | 'use' => 'sig', |
||
| 46 | 'crv' => 'P-521', |
||
| 47 | 'x' => 'AHKZLLOsCOzz5cY97ewNUajB957y-C-U88c3v13nmGZx6sYl_oJXu9A5RkTKqjqvjyekWF-7ytDyRXYgCF5cj0Kt', |
||
| 48 | 'y' => 'AdymlHvOiLxXkEhayXQnNCvDX4h9htZaCJN34kfmC6pV5OhQHiraVySsUdaQkAgDPrwQrJmbnX9cwlGfP-HqHZR1', |
||
| 49 | 'd' => 'AAhRON2r9cqXX1hg-RoI6R1tX5p2rUAYdmpHZoC1XNM56KtscrX6zbKipQrCW9CGZH3T4ubpnoTKLDYJ_fF3_rJt', |
||
| 50 | ]); |
||
| 51 | |||
| 52 | /* |
||
| 53 | * Header |
||
| 54 | * @see https://tools.ietf.org/html/rfc7520#section-4.3.2 |
||
| 55 | */ |
||
| 56 | $headers = [ |
||
| 57 | 'alg' => 'ES512', |
||
| 58 | 'kid' => '[email protected]', |
||
| 59 | ]; |
||
| 60 | |||
| 61 | $jws = JWSFactory::createJWS($payload); |
||
| 62 | $jws = $jws->addSignature($private_key, $headers); |
||
| 63 | |||
| 64 | $signer = SignerFactory::createSigner(['ES512']); |
||
| 65 | $signer->sign($jws); |
||
| 66 | |||
| 67 | $verifer = VerifierFactory::createVerifier(['ES512']); |
||
| 68 | |||
| 69 | $verifer->verifyWithKey($jws, $private_key); |
||
| 70 | |||
| 71 | /* |
||
| 72 | * Header |
||
| 73 | * @see https://tools.ietf.org/html/rfc7520#section-4.3.3 |
||
| 74 | */ |
||
| 75 | $expected_compact_json = 'eyJhbGciOiJFUzUxMiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhbXBsZSJ9.SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4.AE_R_YZCChjn4791jSQCrdPZCNYqHXCTZH0-JZGYNlaAjP2kqaluUIIUnC9qvbu9Plon7KRTzoNEuT4Va2cmL1eJAQy3mtPBu_u_sDDyYjnAMDxXPn7XrT0lw-kvAD890jl8e2puQens_IEKBpHABlsbEPX6sFY8OcGDqoRuBomu9xQ2'; |
||
| 76 | $expected_flattened_json = '{"payload":"SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4","protected":"eyJhbGciOiJFUzUxMiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhbXBsZSJ9","signature":"AE_R_YZCChjn4791jSQCrdPZCNYqHXCTZH0-JZGYNlaAjP2kqaluUIIUnC9qvbu9Plon7KRTzoNEuT4Va2cmL1eJAQy3mtPBu_u_sDDyYjnAMDxXPn7XrT0lw-kvAD890jl8e2puQens_IEKBpHABlsbEPX6sFY8OcGDqoRuBomu9xQ2"}'; |
||
| 77 | $expected_json = '{"payload":"SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4","signatures":[{"protected":"eyJhbGciOiJFUzUxMiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhbXBsZSJ9","signature":"AE_R_YZCChjn4791jSQCrdPZCNYqHXCTZH0-JZGYNlaAjP2kqaluUIIUnC9qvbu9Plon7KRTzoNEuT4Va2cmL1eJAQy3mtPBu_u_sDDyYjnAMDxXPn7XrT0lw-kvAD890jl8e2puQens_IEKBpHABlsbEPX6sFY8OcGDqoRuBomu9xQ2"}]}'; |
||
| 78 | |||
| 79 | $loaded_compact_json = Loader::load($expected_compact_json); |
||
| 80 | $verifer->verifyWithKey($loaded_compact_json, $private_key); |
||
|
|
|||
| 81 | |||
| 82 | $loaded_flattened_json = Loader::load($expected_flattened_json); |
||
| 83 | $verifer->verifyWithKey($loaded_flattened_json, $private_key); |
||
| 84 | |||
| 85 | $loaded_json = Loader::load($expected_json); |
||
| 86 | $verifer->verifyWithKey($loaded_json, $private_key); |
||
| 87 | } |
||
| 88 | } |
||
| 89 |
If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:
If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.