Symfony Об использовании HttpFoundation

halva

Новичок
Смотрю на этот компонент, хочется использовать его в своей системе. Но я не уверен, что это то что мне нужно. Есть несколько вопросов тем кто работает с симфони:

1. Вот с этими конфигами http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html#nginx будет ли у меня работать этот компонент, или там все таки нужно будет свой реврайт настраивать?
2. Правильно ли будет создавать объект не через файбрику?
3. Есть ли более легкие альтернативы этому решению?
 

hell0w0rd

Продвинутый новичок
1) Это конфиг для полноценного symfony приложения, хотя он не сильно будет отличаться для других фреймворков.
2) Вы про какой объект?
3) Есть, phalcon, slim, возможно что-то еще. Можно еще просто глобальные переменные использовать :)
 

halva

Новичок
2. Request конечно же.
3. У меня до этого были обычные глобальные переменные, но вникать в работу каждого сервера, какие там он поля посылает и в каком количестве у меня вообще нет время. Поэтому я начал смотреть в сторону стороних компонентов которые могут решить эти задачи. Plalcon я даже не расматриваю, а slim разве компонентный?
 

Вурдалак

Продвинутый новичок
Этот компонент (HttpFoundation) представляет из себя по сути просто 2 класса: HttpRequest и HttpResponse. Это не имеет никакого отношения к конфигам nginx, реврайтам и т.д.

Более вероятно, тебя интересует HttpKernel.

Я бы порекомендовал почитать http://fabien.potencier.org/create-your-own-framework-on-top-of-the-symfony2-components-part-1.html Ты можешь внедрить этот компонент в любой проект.

Правильно ли будет создавать объект не через файбрику?
Этот вопрос настораживает. Объект создаётся один раз, почему тебя это вообще волнует? Что-то из разряда «хочу купить Бентли и интересует проигрывает ли встроенный плеер MP3».
 
  • Like
Реакции: AmdY

halva

Новичок
Я думаю, что понятно излагаю. Поясню еще раз. Мне нужен такой инструмент, который со стороны php будет представлять готовые обработанные данные из запроса, со стороны настройки http-сервера у него должны быть УЖЕ готовые конфиги для реврайта для большинства серверов. И что я поставил компонент, скопировал конфиги и все заработало. Вчера я попробовал все это дело поставить и на удивление все завелось, вот примеры:

https://bitbucket.org/cheevauva/examplecms/src/4c3d38a4d467bea48b51eb25ccb6a4b2fc7ff33d/src/ExampleCMS/Router/Web.php?at=examplecms#cl-41
https://bitbucket.org/cheevauva/examplecms/src/4c3d38a4d467bea48b51eb25ccb6a4b2fc7ff33d/src/ExampleCMS/Router/Web.php?at=examplecms#cl-77

Но это все равно не снимает вопроса об более легких альтернативах этому решению.

Меня не интересует HttpKernel, я четко указал на HttpFoundation, у меня уже есть своя реализация фронтконтроллера, роутинг реализован с помощию altorouter.

Зачем мне кидать ссылки на статью для новичков, у меня нет проблемы с использованием библиотек, у меня вопросы с правильным внедрением в уже существующую архитектуру.

Этот вопрос настораживает. Объект создаётся один раз, почему тебя это вообще волнует?
Волнует это потому, что у меня уже есть готовая архитектура, принципы которой конфликтуют с реализацие этого решения. Но проблему я уже решил путем создания посредника для инициализации объекта

https://bitbucket.org/cheevauva/examplecms/src/4c3d38a4d467bea48b51eb25ccb6a4b2fc7ff33d/src/ExampleCMS/Container.php?at=examplecms#cl-60
https://bitbucket.org/cheevauva/examplecms/src/4c3d38a4d467bea48b51eb25ccb6a4b2fc7ff33d/src/ExampleCMS/Request.php?at=examplecms
 

Вурдалак

Продвинутый новичок
Вчера я попробовал все это дело поставить и на удивление все завелось, вот примеры:

https://bitbucket.org/cheevauva/examplecms/src/4c3d38a4d467bea48b51eb25ccb6a4b2fc7ff33d/src/ExampleCMS/Router/Web.php?at=examplecms#cl-41
Код оттуда:
PHP:
    public function __construct()
    {
        $this->altoRouter = new \AltoRouter;
       
        if ($this->config->get('base.semantic_url')) {
            $this->basePath = $this->request->getBasePath();
        } else {
            $this->basePath = 'index.php';
        }
    }
— а $this->request из воздуха берётся? И ты утверждаешь, что это работает? А, или ты решил заюзать рефлексию? ололо.

Меня не интересует HttpKernel, я четко указал на HttpFoundation, у меня уже есть своя реализация фронтконтроллера, роутинг реализован с помощию altorouter.
HttpKernel к роутингу никакого отношения не имеет.

Зачем мне кидать ссылки на статью для новичков
Да ты не обижайся, просто видимо ты в знаниях недалеко от них ушёл.

Волнует это потому, что у меня уже есть готовая архитектура, принципы которой конфликтуют с реализацие этого решения. Но проблему я уже решил путем создания посредника для инициализации объекта
По-моему, это какой-то кусок говна, а не архитектура, может поэтому у тебя ничего и не получается.

Ты пойми, со стороны ты выглядишь так: «как мне получить объект класса HttpRequest? В моей архитектуре это не получается! Я не новичок!».
 

halva

Новичок
Ты пойми, со стороны ты выглядишь так: «как мне получить объект класса HttpRequest? В моей архитектуре это не получается! Я не новичок!».
Я просто доносил свои мысли, конечно же у меня есть разражения по поводу того, что ко мне обращаются как к новичку, при чем происходит это безосновательно. Замечу, я такие слова не писал, я просто обозначил что моя архитектрура конфликтует с реализацией отдельного решения (кстати вполне типичная ситуация)

а $this->request из воздуха берётся? И ты утверждаешь, что это работает? А, или ты решил заюзать рефлексию? ололо.
Я использую Внедрение зависимостей через публичные свойства, если у объекта есть конструктор, то через рефлексию инициализируется экземпляр класса без конструктора, подставляются зависимости и лишь потом вызывается конструктор. Так что в свой request уже лежит готовый объект, а что касается того как я получил этот объект, то это долго объяснять, могу описать принцип, а он простой, тупо подмена зависимости.

HttpKernel к роутингу никакого отношения не имеет.
Возможно, тогда поясни для чего нужен HttpKernel.

Да ты не обижайся, просто видимо ты в знаниях недалеко от них ушёл
о боже! Э-тоооооооо же прооооовоооооокация, всё как я люблю!

По-моему, это какой-то кусок говна, а не архитектура, может поэтому у тебя ничего и не получается.
С учетом того, что я написал в предыдущем посте, это утверждение выглядит как минимум абсурдным.
 

Вурдалак

Продвинутый новичок
Я использую Внедрение зависимостей через публичные свойства, если у объекта есть конструктор, то через рефлексию инициализируется экземпляр класса без конструктора, подставляются зависимости и лишь потом вызывается конструктор. Так что в свой request уже лежит готовый объект, а что касается того как я получил этот объект, то это долго объяснять, могу описать принцип, а он простой, тупо подмена зависимости.
Ты используешь такой подход в силу своей некомпетентности.

Я просто доносил свои мысли, конечно же у меня есть разражения по поводу того, что ко мне обращаются как к новичку, при чем происходит это безосновательно. Замечу, я такие слова не писал, я просто обозначил что моя архитектрура конфликтует с реализацией отдельного решения (кстати вполне типичная ситуация)
Много громких слов, но ты до сих пор не сформулировал свою проблему. Что у тебя не работает, что тебя смущает? Что вызывает у тебя затруднение?

Я думаю, что понятно излагаю.
Ты глубоко ошибаешься. Ты даже не пытаешься думать.
 

halva

Новичок
Ты используешь такой подход в силу своей некомпетентности.
Жду конкретики...
Много громких слов, но ты до сих пор не сформулировал свою проблему. Что у тебя не работает, что тебя смущает? Что вызывает у тебя затруднение?
Ты глубоко ошибаешься. Ты даже не пытаешься думать.
Какие громкие слова, я пытаюсь нормально вести диалог, а вот с твоей стороны не прикрытые провокации и демагогия.
 

Вурдалак

Продвинутый новичок

halva

Новичок
Выяснять отношение с Вурдалаком конечно замечательно, но бесполезно.

Короче решены первые два вопроса, остался третий. Тоесть есть ли стоящие альтернативы по сравнению с HttpFoundation?
 

halva

Новичок
Спустя два года, могу сказать лишь одно, узколобость и гонор Вурдалака поражает воображение.

А на свой вопрос, 2 летней давности уже давно ответил.

Альтернативное решение было найдено. Это перевод приложения на нативный PSR-7 Response\Request. Реализацию брал эту https://github.com/zendframework/zend-diactoros
 
Сверху