Был задан вопрос: Нет PHP для больших проектов? Почему нет? Это повторяющаяся тема, и разработчики PHP - по какой-то причине - вынуждены использовать защищать PHP.
Все эти вопросы действительны, и были некоторые ответы, но это заставило меня задуматься. Исходя из принципа, что вы можете писать хороший код на любом языке и плохой код на любом языке, я подумал, что стоит задать положительный, а не отрицательный вопрос. Вместо почему ты не можешь я хотел попросить как ты можешь использовать PHP для больших проектов.
Итак, как написать большое, сложное, масштабируемое, безопасное и надежное PHP-приложение?
Обновлено: Хотя я понимаю, что организационные аспекты важны, они применимы к большому проекту любой. В первую очередь я стремлюсь к техническому руководству и способам решения распространенных проблем масштабируемости. Использование кеша опкодов, такого как APC, - очевидное начало. Другой вариант - сеансы с поддержкой кластера. Я к этому прихожу.






Вы поступаете так же, как на любом другом языке или в любой другой среде.
В разработке проекта есть пара простых шагов:
Организация; Перед тем, как приступить к программированию, вам необходимо все организовать, имея документацию, uml-диаграммы и другую предварительную работу.
Состав; Перед тем, как вы начнете кодировать, а также после старта, вам нужно сосредоточиться на структуре, а это означает, что вам всегда нужно делать это правильно и не делать никаких спагетти-решений. Код должен быть простым и хорошо комментированным.
Эти два пункта просты и применимы во всех областях разработки, независимо от языка. Сделайте это простым и хорошо задокументированным, и вы обнаружите, что разработать крупномасштабное веб-приложение на PHP так же просто, как это было бы в ASP.NET, Ruby или чем-то еще.
Однако, когда мы подходим к стадии разработки, вам нужно получить хорошую IDE, использовать хорошую базу данных, использовать репозиторий, получить систему MVC / Template, хотя это выполняется в части «Структура».
Как побочный момент, разделение приложения на разные уровни: DLF (Data, Logic, Front). Используйте хотя бы эти три слоя, и вы обнаружите, что разработка пойдет легко.
По большей части проблемы с php связаны не столько с языком. Проблемы возникают из-за низкого барьера входа и отсутствия какой-либо инфраструктуры, позволяющей избежать общих проблем программирования или проблем безопасности. Это язык, который сам по себе довольно шустрый и грязный. Тем не менее, он по-прежнему имеет много преимуществ для крупномасштабных веб-приложений. Вам просто нужно знать, как добавить какой-то уровень инфраструктуры, чтобы избежать множества типичных ошибок веб-программирования. См. - Что должен знать разработчик перед при создании общедоступного веб-сайта для помощи в этом.
Вам нужно узнать о причинах, по которым php может сделать ваше веб-приложение небезопасным или проблемным, и научиться устранять эти проблемы. Вы должны узнать, как использовать php для безопасного доступа к вашей базе данных. Вы должны научиться избегать SQL-инъекций. Вы должны узнать о злых вещах, таких как register_globals, и почему вы никогда не должны их использовать. Короче говоря, вы должны Делай свою домашнюю работу о своем инструменте, прежде чем просто погрузиться в реальное крупномасштабное веб-приложение.
Как только вы получите образование, все сводится к тому, что вы, вероятно, захотите создать фреймворк или использовать уже существующий фреймворк, который смягчит эти проблемы. Популярные фреймворки включают PEAR и Zend.
Также полезные вопросы, которые могут помочь:
Использование PHP для больших проектов ничем не отличается от использования любого другого языка. Вам потребуется опыт и знания в написании исходного кода ремонтопригодный и расширяемый. Вы должны знать о ловушки безопасности и проблемы с производительностью. Вы должны исследовать свой проблемная область и хорошо его знать.
В конце концов, как и любой другой язык - вам нужны разработчики высокого качества и хорошо мотивированный.
Используйте фреймворк модель-представление-контроллер. Было сказано, да. И для каждой части должен быть хотя бы один инженер.
Модель: ваш администратор базы данных должен написать код модели. Никто другой не должен иметь права писать операторы SQL.
Просмотр: Часть просмотра должен выполнять тот, кто лучше всех знает CSS и Javascript. Он / она должен написать минимум PHP-кода, он тот, кто использует PHP-переменные.
Контроллер: Она настоящий PHP-кодер, а также, надеюсь, серверный инженер, с использованием или без использования других языков сценариев.
я знаю, это немного устарело, но все же я соблазню ответ ... используйте Haxe / PHP ... я мог бы углубиться в детали ... но если вы посмотрите на язык, его функции и красивый способ, которым PHP API инкапсулирован во что-то довольно последовательное, вы скоро увидите, в чем заключаются проблемы PHP. .. а также, в конце концов, у вас есть все преимущества Haxe ...
редактировать: это был серьезный ответ ... Haxe / PHP автоматически решает множество проблем, упомянутых в сообщении, помеченном как ответ ...
если вы хотите использовать другие PHP-фреймворки, вам нужно только написать внешние классы, и все будет работать так, как ожидалось ...
я думаю, что Haxe - очень хороший ответ на вопросы «большой», «сложный», «безопасный» и «надежный» ... масштабируемость, конечно, не исходит от самого Haxe ... но все же, если вы посмотрите на haxelib, то вы найти много вещей, которые помогут для масштабируемости ... например, memcached (вам нужно будет изменить neko.net.Socket на php.net.Socket в memcached.Connection) ...
если вы действительно хотите использовать язык PHP, а не только платформу, Haxe, конечно, вам не поможет ...
Меня беспокоит, когда кто-то (все еще) упоминает register_globals. Большинство новичков не знают о них. Ради всего святого, пусть будет так.