Был задан вопрос: нет PHP для больших проектов? Почему нет? Это повторяющаяся тема, и разработчики PHP – по какой-то причине – вынуждены защищать PHP .
Все эти вопросы верны, и были некоторые ответы, но это заставило меня задуматься. Основываясь на принципе, что вы можете написать хороший код на любом языке и плохой код на любом языке, я подумал, что стоит задать положительный, а не отрицательный вопрос. Вместо того, почему вы не можете , я хотел спросить, как вы можете использовать PHP для больших проектов.
Итак, как вы пишете большое, сложное, масштабируемое, безопасное и надежное приложение PHP?
EDIT: Хотя я понимаю, что организационные аспекты важны, они применяются к любому крупному проекту. Для меня в первую очередь это техническое руководство и способы решения общих проблем масштабируемости. Использование кеша кода операции, такого как APC, является очевидным стартером. Кластерные сессии будут другими. Это то, что я получаю.
По большей части проблемы с php связаны не столько с языком. Проблемы возникают из-за сочетания низкого барьера входа и отсутствия какой-либо инфраструктуры, чтобы избежать общих проблем программирования или проблем безопасности. Это язык, который сам по себе довольно быстро и грязно. Тем не менее, он по-прежнему имеет много преимуществ для крупномасштабных веб-приложений. Вам просто нужно знать, как добавить в некоторый уровень инфраструктуры, чтобы избежать множества распространенных ошибок веб-программирования. См. « Что должен знать разработчик, прежде чем создавать общедоступный веб-сайт для получения помощи в этом.
Вам нужно узнать о причинах, по которым php может сделать ваше веб-приложение неустойчивым или проблематичным, и научиться смягчать эти проблемы. Вы должны узнать, как использовать php для безопасного доступа к вашей базе данных. Вы должны узнать об избежании SQL-инъекции. Вы должны узнать о таких вещах, как register_globals, и почему вы никогда не должны их использовать. Короче говоря, вы должны сделать домашнее задание о своем инструменте перед тем, как просто погрузиться в реальное, крупномасштабное веб-приложение.
После того, как вы будете образованы, все сводится к тому, что вы, вероятно, захотите создать структуру или использовать ранее существовавшую среду, которая будет смягчать эти проблемы. Популярные структуры включают PEAR и Zend.
Кроме того, полезные вопросы, которые могут помочь:
Использование PHP для больших проектов не отличается от любого другого языка. Вам понадобятся опыт и знания в письменном виде для поддерживаемого и расширяемого исходного кода. Вы должны быть в курсе проблем с безопасностью и проблем с производительностью . Вам необходимо исследовать ваш проблемный домен и хорошо знать его.
В конце концов, как и любой другой язык – вам нужны высококачественные и хорошо мотивированные разработчики.
Я знаю, это немного устарело, но все же, я буду искушать ответ … использовать haXe / PHP … я мог бы углубиться в детали … но если вы посмотрите на язык, его функции и хороший способ, которым API-интерфейс PHP инкапсулирован во что-то довольно последовательное, вы скоро увидите, какие проблемы с PHP … а также у вас есть все преимущества haXe в конце …
edit: это был серьезный ответ … haXe / PHP автоматически решает много проблем, упомянутых в сообщении, помеченном как ответ …
если вы хотите использовать другие фреймворки 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