original_string: public static function fromArray(array $options = []): self
      {
          return new self(
              $options['authorization_code_ttl'] ?? 120,
              $options['access_token_ttl'] ?? 3600,
              $options['refresh_token_ttl'] ?? 86400,
              $options['rotate_refresh_tokens'] ?? false,
              $options['revoke_rotated_refresh_tokens'] ?? true,
              $options['owner_callable'] ?? null,
              $options['grants'] ?? [],
              $options['owner_request_attribute'] ?? 'owner',
              $options['token_request_attribute'] ?? 'oauth_token'
          );
      }
code: public static function fromArray(array $options = []): self
      {
          return new self(
              $options['authorization_code_ttl'] ?? 120,
              $options['access_token_ttl'] ?? 3600,
              $options['refresh_token_ttl'] ?? 86400,
              $options['rotate_refresh_tokens'] ?? false,
              $options['revoke_rotated_refresh_tokens'] ?? true,
              $options['owner_callable'] ?? null,
              $options['grants'] ?? [],
              $options['owner_request_attribute'] ?? 'owner',
              $options['token_request_attribute'] ?? 'oauth_token'
          );
      }
code_tokens: public static function fromArray ( array $ options = [ ] ) : self { return new self ( $ options [ 'authorization_code_ttl' ] ?? 120 , $ options [ 'access_token_ttl' ] ?? 3600 , $ options [ 'refresh_token_ttl' ] ?? 86400 , $ options [ 'rotate_refresh_tokens' ] ?? false , $ options [ 'revoke_rotated_refresh_tokens' ] ?? true , $ options [ 'owner_callable' ] ?? null , $ options [ 'grants' ] ?? [ ] , $ options [ 'owner_request_attribute' ] ?? 'owner' , $ options [ 'token_request_attribute' ] ?? 'oauth_token' ) ; }
docstring: Set one or more configuration properties
docstring_tokens: Set one or more configuration properties