Currently the PassphraseCredentialType class has abstract getCredentialType and getProvidesType methods and all implementations do something like this:
final class PassphraseSomethingCredentialType extends PassphraseCredentialType { const CREDENTIAL_TYPE = 'something'; const PROVIDES_TYPE = 'provides/something'; public function getCredentialType() { return self::CREDENTIAL_TYPE; } public function getProvidesType() { return self::PROVIDES_TYPE; } ... }
Instead, provide a concrete implementation of these methods which reads the class constant values with the getPhobjectClassConstant method.