Я использую Facebook Login с HybridAuth. Я получаю профиль FB просто отлично, но я немного смущен относительно того, что с ним делать. Я сравниваю себя с моей зарегистрированной таблицей пользователей, чтобы проверить, есть ли у меня уже электронная почта пользователя из профиля FB, если у меня есть, то регистрация завершается с сохраненной учетной записью, если нет, я создаю новую учетную запись пользователя и сохраняю ее в моей БД. Дело в том, что когда я создаю нового пользователя, я вызываю метод в своем пользовательском контроллере, например:
UserController::createUserSocialNetwork($userprofile);
Yii не позволяет мне делать это, поскольку класс для файла контроллера еще не импортирован. Я понимаю, что я могу импортировать класс контроллера в свой конфигурационный файл Yii, или я могу использовать Yii::app()->runController
из класса, который расширяет CUserIdentity
, лично я склоняюсь к первому, но я не совсем уверен если любой из них является правильным подходом. Поэтому мой вопрос: как мне это сделать без ущерба для основных функций Yii? Импортирует файл контроллера в конфигурацию, нарушая любые правила проектирования, которые следует Yii?
Во-первых, я настоятельно рекомендую обработать создание пользователя в ActionScript, а не UserIdentity. если это невозможно, вы можете переместить логику в поведение контроллера или вспомогательный класс или даже в модель пользователя (и все эти альтернативные варианты не являются лучшей практикой проектирования).