Передающие данные из Контроллера MVC для Просмотра в PHP

Одинаковая политика происхождения (SOP) - это политика, реализуемая браузерами для предотвращения уязвимостей через межсайтовый скриптинг (XSS). Это главным образом для защиты сервера, так как во многих случаях сервер может иметь дело с аутентификацией, файлами cookie, сеансами и т. Д.

Перекрестное распределение ресурсов (CORS) является одним из немногих методов для ослабления СОП. Поскольку SOP по умолчанию включен, установка CORS на стороне сервера позволит отправлять запрос на сервер через XMLHttpRequest, даже если запрос был отправлен из другого домена. Это становится полезным, если ваш сервер предназначен для обслуживания запросов из других доменов (например, если вы предоставляете API).

Я надеюсь, что это проясняет различие между SOP и CORS и целями каждого.

15
задан Brian Tompsett - 汤莱恩 7 November 2015 в 16:53
поделиться

3 ответа

Я собираюсь порекомендовать концепцию Fat Models, Skinny Controllers (или, Fat Models Thin Controllers , если хотите ...)

Другими словами, ваша модель слишком строгая - привязка вашей модели к представлению только чего-то вроде RowDataGateway чрезвычайно ограничивает.

На самом деле, я думаю, что хорошие модели скрывают тот факт, что вы читаете данные из базы данных в все. Потому что на самом деле ваши данные могут быть в текстовых файлах, из веб-службы и т. Д. Если вы относитесь к своей модели как к прославленному DBAL, вы обрекаете себя на наличие в ваших контроллерах тесно связанного кода, который просто не позволит вам отойти от образа мышления «данные только из базы данных».

3
ответ дан 1 December 2019 в 05:27
поделиться

Я видел оба первых метода, реализованные в популярных фреймворках MVC / шаблонов.

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

smarty использует второй метод, создавая объект Smarty и присваивая значения каждому свойству в контейнере.

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

] На самом деле, наверное, я не сказал ничего, о чем вы еще не думали. По сути, это все звуковые идеи, поэтому воплощайте в жизнь все, что вам удобнее всего.

0
ответ дан 1 December 2019 в 05:27
поделиться

In the one I use, it has automatically has a view property in the controller that you can access methods and properties on the view. All public properties are then accessible within the view view '$this' since the view is rendered in it's own objects context.

In the controller:

$this->view->myVar = 'test';

And in the view:

$this->myVar; // 'test'

The same goes for the layout since the are both separate instances of the same view object:

$this->layout->myVar = 'test';

And then in the layout:

$this->myVar; // 'test'

The framework used to be proprietary, but is about to be released to the general public. I'd be happy to send you some code from it if you think that'd help. Remember, the simplest answer is usually the best answer.

0
ответ дан 1 December 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: