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

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

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

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

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

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

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

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

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

  • Что должен знать каждый программист php?
  • Что должен знать разработчик перед созданием общедоступного веб-сайта

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

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

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

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

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

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

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

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

Greetz

back2dos

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

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

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

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

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

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

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

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

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

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

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

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