Что нужно учитывать при реализации оригинальной архитектуры сайта - PullRequest
6 голосов
/ 16 декабря 2010

Вещи, которые вы должны знать о моем расположении -
1. Мой Первый раз создание "большого" сайта.
2. Работа на PHP
3. Не имею представления о том, насколько масштабным может быть сайт, хотя я много об этом читал.
4. Готов использовать фреймворк , если он дает мне МНОГО гибкости в архитектуре , но при этом дает такие преимущества, как безопасность, производительность и т. Д.

Главный вопрос -
Предположим, что вы были на моем месте и хотели реализовать свою оригинальную архитектуру, с какими вещами вы должны быть осторожны?
Как вы будете заниматься внедрением безопасности? В любом случае, вы можете импортировать и интегрировать сторонние модули безопасности на свой сайт?

Я знаю, что я делаю недостатки ... просто хочу знать, что они в первую очередь ... их решение будет дальше. Спасибо:].

Ответы [ 2 ]

5 голосов
/ 23 декабря 2010

Вы должны начать с чтения и тестирования Zend Framework.Поскольку это действительно просто фреймворк и коллекция библиотек и опыта давних разработчиков.

Некоторые говорят, что вы должны попытаться построить свой собственный фреймворк, а затем выбросить его в корзину и вернуться к ZF (Zend Framework).Это зависит от того, сколько времени (лет) у вас есть.Но это правильно, легче понять хороший выбор, если вы раньше злились на плохих: -)

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

Такиспользуйте модель ZF MVC, прочитайте (действительно) документацию ZF (даже если вы не будете ее использовать).Поймите, почему некоторые из этих инструментов очень важны для безопасности.

Важные вещи, которые стоит отметить для хорошего приложения PHP:

не делятся ничем : по умолчанию PHP не позволяетхранить данные между запросами пользователя.Таким образом, промежуточное хранение / долгосрочное хранение / хранение сеанса должны будут храниться где-то:

  • cookie (например, идентификатор сеанса)
  • файлы сеанса или записи сеанса в базе данных илизаписи сеансов в кеше
  • кэш уровней приложений (например, memcached) * база данных 1020 *
  • (и почему бы не выбросить MySQl для PostgreSQL, проверьте разницу!)
  • кэш уровней до приложения(обращает кэш прокси, лаки и т. д., кеш браузера)

фильтровать входы / выходы : если вы хорошо используете Zend_Form, Zend_Filter, Zend_Validators и всегда используетеescape (), по вашему мнению, эта часть безопасности должна быть в порядке (и это большая проблема в большинстве приложений PHP).Рассматривайте свою базу данных как один из выходных данных, html-страницу как другую, json как другую и т. Д. Ваши входные данные также многочисленны, пользовательские данные, файлы cookie, возможно, некоторые другие базы данных, внешние веб-сайты и т. Д.

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

получите красивую карту URL : если вы можете разрезать свое приложение на разные части, просто прочитав URL, вы поможете себев течение дня вам нужно будет построить более сложную аппаратную платформу для вашего приложения.Администраторы должны будут установить некоторые файлы конфигурации для обратного прокси-кэша перед вашим приложением.Смогут ли они обнаружить необходимые для https части?все ваши статические файлы доступны по определенному пути?Можем ли мы определить политику времени кеширования на основе URL-адреса?

шаблонов проектирования : никто не достаточно умен, чтобы понять все последствия своего выбора кодов и то, как этот код должен будет развиваться,Конструктивные шаблоны предназначены для сбора хороших оценок.Если ваша проблема не имеет шаблонного решения, то, возможно, вы не понимаете свою проблему :-).Честно говоря, иногда может быть более простой и быстрый способ, но вы должны знать шаблоны, прежде чем решите их не использовать.

Многие эксперты PHP сделали свой код без использования каркасов (так как большинство фреймворков было не оченьна самом деле хорошо).Но качество кода в мире PHP плохое, на самом деле, все же так просто сделать XSS-инъекцию на многих сайтах.Пришло время что-то улучшить, не доверяйте примерам "Привет, мир!", Создать хороший веб-приложение сложно: -).

2 голосов
/ 16 декабря 2010

Всякий раз, когда я запускаю какой-либо новый проект веб-сайта (особенно те, которые используют PHP), я планирую его на бумаге. Для того, чтобы ваши файлы были аккуратными и организованными (архитектура), стоит придерживаться формата MVC. Подробнее о MVC Это такая организационная система, которую я использовал и которую используют многие профессионалы.

Это значительно упростит масштабирование вашего веб-сайта и добавит больше страниц и функций, поскольку ваши функции будут независимы от страниц, которые просматривают ваши пользователи и вводят информацию (UI).

Кроме того, комментирование в вашем коде ОЧЕНЬ важно, у вас никогда не будет достаточно комментариев, и это еще более верно, когда вы кодируете большой веб-сайт, потому что вы не можете все это запомнить, и это очень поможет вам, пока внесение изменений и масштабирование вашего веб-сайта.

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

Я не могу не подчеркнуть, что вы должны спланировать, как вы собираетесь работать с сайтом, и выстроить файловую организацию до того, как вы начнете кодировать, это сэкономит вам массу работы и стресса в долгосрочной перспективе.

Ранее я кодировал большие веб-сайты, основанные на PHP / MYSQL, и я стал жертвой множества ошибок, пожалуйста, учитесь на моих ошибках, планируйте свою файловую структуру и то, как вы планируете выполнять определенные пользовательские взаимодействия.

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

Надеюсь, это поможет! Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать.

  • Chris
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...