По-моему, в этом и состоял вопрос автора. Задача - при разработке не зависеть от реализации аутентификации. С PEAR::Auth дописываешь какой хочешь storage driver и меняешь только код инициализацию объекта.
В общем случае, думаю, есть 2 варианта.
- Пишем (вариант, используем стороннюю библиотеку) класс, который будет инкапсулировать аутентификацию, фиксируем интерфейс сигнатурой методов. А реализацию вольны менять как хотим. Балансируя параметры: время разработки, общность, гибкость, можно
- переписывать методы существующейго класса (ну, это уже крайний случай, если совсем нет времени
) - наследовать от него новый класс
- написать драйвер (для архитектуры типа PEAR::Auth)
- Если не нравится объектно-ориентированный подход или совсем плохо со временем, можно инклюдить отдельный файл, который будет заниматься аутентификацией и редиректить/инклюдить нужный файл после этого. Сам файл аутентификации меняем сколько угодно, не меняя (в идеале
) остальной проект
Естественно, первый вариант предпочтительнее |