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

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

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
25
0
6 129
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

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

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

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

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

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

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

Ответ принят как подходящий

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

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

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

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

Меня беспокоит, когда кто-то (все еще) упоминает register_globals. Большинство новичков не знают о них. Ради всего святого, пусть будет так.

mixdev 25.03.2010 23:13

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по теме