LINUX.ORG.RU

Сообщения schizoid89

 

DiC через Reflection PHP

Доброго времени суток.

Вопрос про рефлексии в PHP. Простыня, нубство.

Есть так называемое веб-приложение в котором есть контроллеры и сервисы.

Вся бизнес-логика вынесена в сервисы (классы или набор классов) которые дергаются контроллером.

На данный момент объект сервиса инстанцируется так:

$service = App::Service('NameService');

В самом App происходит проверка наличия у пользователя прав на использование этого сервиса и в случае успеха возвращает объект.

Каждый сервис тоже может запускать другие сервисы и взаимодействовать с ними. Это происходит по той же схеме.

Так вот. Появилось желание отвязать все контроллеры и сервисы от App и сделать Dependency Injection.

Как я это представляю:

- В конструкторе класса контроллера или сервиса, в параметры через тайпхинт указываем нужные зависимости.

- DiC используя рефлексию просматривает конструктор и получает имена классов вместе с namecpace и потом все нужные объекты передаются в конструктор.

Казалось бы, все здорово. Но за один запрос таких рефлексий может быть больше десятка (да вообще сколько угодно), ведь DiC придется рекурсивно проходить по всем зависимостям всех сервисов участвующих в запросе.

К плюсам такого подхода я отношу ослабление связанности и «утоньшение» контроллеров. Но стоит ли оно того? На сколько такой подход будет замедлять систему? Понятно что в каких то случаях это экономия на спичках, но все таки.

Я понимаю что ресурс не PHPшников, но ЛОР как то роднее.

cast KRoN73

 , ,

schizoid89
()

Применение session_regenerate_id() PHP

Доброго времени суток.

Пилю для себя небольшой велосипед. Вот решил поиграть с сессиями. Наткнулся на такую функцию session_regenerate_id(). Как она работает по документации мне все вроде понятно. Но вот интересует её реальная польза, вернее её наличие вообще.

Правильно ли я понимаю, что если говорить о краже куков, то в принципе функция бесполезна и более менее серьезный вирус обновит сессию на стороне клиента и получит самый новый ID который моментально установится в браузер злоумышленника (ну в теории)? И если нет проверки ip то толку от этой функции мало.

К тому же при большой загрузке, постоянное обращение к файлам сессий, даст дополнительную нагрузку на фс хостера. Про memcache знаю, но речь именно о шаред хостингах.

Значит ли что использование временных токенов в куках и проверка пользователя на ip может заменить данную функцию? Если да, то как правильнее делать проверку ip? Тупо хранить в сессии $_SERVER['REMOTE_ADDR'] и периодически его сверять?

Гуру, разъясните пожалуйста. Я как бы не параноик и могу обойтись, но вот понять суть применения бы.

Спасибо.

 , ,

schizoid89
()

RSS подписка на новые темы