Authenticating via email or login

I want to authenticate user via email OR login. Should I write 2 UserIdentity classes for each of them?

You don’t need two classes…

just need to make appropriate form and query…

Or even better is to first look into Yii Extension Repository to not reinvent already invented wheel!

There are dozen of extensions ready for user management or authentication there (look for Auth category) for example very good Yii User, that has built-in support for logging in with either login or e-mail. So don’t repeat job.