Подтвердить что ты не робот

Как использовать PHP для больших проектов?

Вопрос задан: Нет PHP для больших проектов? Почему бы и нет? Это повторяющаяся тема и разработчики PHP - с какой-то причиной - вынуждены защищать PHP.

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

Итак, как вы пишете большое, сложное, масштабируемое, безопасное и надежное приложение PHP?

EDIT: Хотя я понимаю, что организационные аспекты важны, они применяются к любому большому проекту. Для меня в первую очередь это техническое руководство и способы решения общих проблем масштабируемости. Использование кеша кода операции, такого как APC, является очевидным стартером. Кластерные сессии будут другими. Это то, что я получаю.

4b9b3361

Ответ 1

По большей части проблемы с php связаны не столько с языком. Проблемы возникают из-за сочетания низкого барьера входа и отсутствия какой-либо инфраструктуры, чтобы избежать общих проблем программирования или проблем безопасности. Это язык, который сам по себе довольно быстро и грязно. Тем не менее, он по-прежнему имеет много преимуществ для крупномасштабных веб-приложений. Вам просто нужно знать, как добавить в некоторый уровень инфраструктуры, чтобы избежать множества распространенных ошибок веб-программирования. См. Что должен знать разработчик перед созданием общедоступного веб-сайта для получения справки.

Вам нужно узнать о причинах, по которым php может сделать ваше веб-приложение незащищенным или проблематичным и научиться смягчать эти проблемы. Вы должны узнать, как использовать php для безопасного доступа к вашей базе данных. Вы должны узнать об избежании SQL-инъекции. Вы должны узнать о таких вещах, как register_globals, и почему вы никогда не должны их использовать. Короче говоря, вы должны выполнять домашнее задание о своем инструменте перед тем, как просто погрузиться в реальное, крупномасштабное веб-приложение.

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

Кроме того, полезные вопросы, которые могут помочь:

Ответ 2

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

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

Ответ 3

Я знаю, это немного устарело, но все же, я соблазню ответ... используйте haXe/PHP... я мог бы углубиться в детали... но если вы посмотрите на язык, его функции и хороший способ API-интерфейса PHP инкапсулирован во что-то довольно последовательное, вы скоро увидите, какие проблемы с PHP... а также у вас есть все преимущества haXe в конце...

edit: это был серьезный ответ... haXe/PHP автоматически решает множество проблем, упомянутых в сообщении, помеченном как ответ...

  • register_globals отключен... вы получаете свои параметры через php.Web
  • с помощью SPOD -layer (тот же API для php) для базы данных автоматически позаботится об экранировании (и автоматически предоставит вам model (и templo - неплохой механизм шаблонов, поэтому это должно помочь для ваших просмотров))
  • с типизированным языком, у вас больше шансов написать лучший код... плюс языковые функции, так как generics и enum очень мощные... и в haXe также много интересной магии времени компиляции. более мощный язык всегда хорош для решения сложных проблем...

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

Я думаю, что haXe - очень хороший ответ на "большой", "сложный", "безопасный" и "надежный"... масштабируемость не исходит от самого haXe... но все же, если вы посмотрите haxelib, то вы найдете много вещей, которые помогут в масштабировании... например memcached (вам нужно будет изменить neko.net. Socket для php.net.Socket в memcached.Connection)...

Если вы действительно хотите использовать язык PHP, а не только платформу, haXe вам не поможет...

Greetz

back2dos

Ответ 4

Вы делаете то же, что и на любом другом языке или в любом другом окружении.

В разработке проекта есть несколько простых шагов:

  • Организация; Перед началом программирования вам необходимо организовать все, имея документацию, диаграммы uml и другую предварительную работу.

  • Структура; Прежде чем вы начнете кодирование, а также отправьте начало, вам нужно сосредоточиться на структуре, а это значит, что вам всегда нужно делать это правильно и не выполнять никаких спагетти. Держите код простым и хорошо прокомментированным.

Эти два момента просты и применимы во всех областях разработки, несмотря на язык. Держите его простым и хорошо документированным, и вы обнаружите, что разработка крупномасштабного веб-приложения в PHP так же просто, как в ASP.NET, Ruby или что-то еще.

Однако, когда мы приходим на стадию разработки, вам нужно получить отличную среду IDE, использовать хорошую базу данных, использовать репо., получить систему MVC/Template, однако это выполняется в разделе "Структура".

Как боковая точка, разбивая приложение на разные уровни: DLF (Data, Logic, Front). Используйте по крайней мере эти три слоя, и вы обнаружите, что разработка будет легкой.

Ответ 5

Использовать структуру Model-View-Controller. Было сказано, да. И, по крайней мере, один инженер для каждой части.

Модель: ваш администратор базы данных должен написать код модели. Больше не нужно писать инструкции SQL.

Вид: тот, который лучше всего знает CSS и Javascript, должен сделать часть представления. Он должен написать наименее PHP-код, он использует PHP-переменные.

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

Ответ 6

У меня были хорошие впечатления, используя CodeIgniter. Я думаю, что это достаточно легкий вес, чтобы вы могли спуститься и грязно, но также добавили хороший уровень абстракции MVC. Подумайте об использовании Doctrine ORM. Пример: http://pampersmybabyregistry.com