Название может быть не таким ясным, но я объясню, в чем моя проблема.Я строю PHP MVC Framework для моего проекта.Я знаю, что есть потрясающие фреймворки PHP, но я люблю кодировать, и я делаю это, чтобы узнать больше о PHP и MVC и других шаблонах ООП.Он прекрасно работает, по крайней мере, компоненты, которые я построил до сих пор.
Я использую PHP 5.3 и пространства имен, поэтому я могу требовать / загружать классы на основе их пространств имен / имен.Я построил класс загрузчика классов SPR-0, и он позволяет мне использовать другие библиотеки, которые используют «стандартные» / условные обозначения SPR-0, такие как компоненты Doctrine или Symfony2 внутри моей среды.И вся функциональность самого фреймворка, я называю его Core, написана как компонент.Поэтому у меня есть класс \ Core \ Controller \ Controller () или класс \ Core \ Router \ Dispatcher () или класс \ Filesystem \ FileManager ().Поэтому я использую их там, где они мне нужны.И компоненты Core позволяют мне добавлять маршруты, обнаруживать их, вызывать соответствующий контроллер / действие и т. Д. ... для создания MVC.
И теперь мне нужен модуль аутентификации, чтобы проверить, вошел ли пользователь на защищенные страницы.Как мне это настроить?Самая большая проблема заключается в том, как сообщить модулю аутентификации, какие таблицы использовать?Где найти имена пользователей и где найти пароли?Как настроить модуль аутентификации, чтобы он знал, где искать имя пользователя и пароль?Я мог бы настроить таблицу пользователей в базе данных и никогда не изменять ее, а затем указать Аутентификации, где найти то, что ему нужно.Но что, если в следующем проекте я хотел бы использовать другой дизайн базы данных, и я хотел бы использовать строку электронной почты вместо имени пользователя?
Надеюсь, вы понимаете, что беспокоит меня ...
КороткоВопрос в том, как настроить класс / модуль аутентификации, чтобы вы могли настроить его позже, чтобы использовать другие строки для извлечения данных, и насколько гибким может быть этот класс в зависимости от конфигурации?Должен ли я сопоставить где-нибудь в конфигурации эту переменную username с именем пользователя строки таблицы user, чтобы я мог сменить его на email?Как построить гибкую и настраиваемую библиотеку Auth?
Вопрос длинный, спасибо, что прочитали ...