Является ли PHP на самом деле веб-фреймворком?[закрыто]

softwareengineering.stackexchange https://softwareengineering.stackexchange.com/questions/205004

  •  29-09-2020
  •  | 
  •  

Вопрос

Я читал статью статья/интервью (Языковая война:PHP противРубин (автор: Джеффри Уэй;Март 2011)) разработчиком для Envato, использующим Ruby.Он говорит: "PHP - это веб-фреймворк, замаскированный под язык".

Он не стал подробно останавливаться на этом утверждении, поэтому это заставило меня задуматься, правда ли это, и если да, то как.Я провел небольшое исследование, но не смог найти никакой информации по этой теме.Мне интересно, насколько это утверждение верно и что делает PHP не языком программирования.И почему другие языки, такие как python или ruby, не вписываются в эту категорию?

Это было полезно?

Решение

Официально:

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

Согласно http://us.php.net/

Но это не обязательно очень APT описание.

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

Поэтому, когда посмотрел на этот путь, PHP либо:

каркас с собственным уникальным языком Turing Clange.

или

Язык, завернутый в массивную веб-каркас, из которого он не может быть удален.

Однако, если мы посмотрим на имя «PHP: HyperText Preprocessor» (PHP), это подразумевает, что PHP представляет собой «препроцессор» (который предварительно обработаны гипертекстовым) - ни рамки, ни языка, а не являются частью программного обеспечения.

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

Следовательно: PHP не может быть должным образом классифицирован как рамка, либо как язык. Истина состоит в том, что есть язык, рамки и приложение, которое все имеют одно и то же имя (потому что все они свернуты в одну вещь)! Таким образом, «PHP» может относиться к любой части системы.

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

У меня нет источников - но утверждение имеет некоторое смысл, даже если это может быть просто попытка перемешать противоречие.

php определенно язык, и очень не является структурой - но если вы посмотрите на руководство PHP против, скажем, спецификации C или C ++, тело функциональности, которые предлагает PHPЭто было бы рассмотрено в области рамок: PDO, обработка XML и т. Д. - Это то, что обычно будет включено в рамки, такие как Qt.

Особенность PHP в том, что это не просто язык программирования, а целая экосистема, состоящая из:

  • Сам язык программирования PHP
  • Среда выполнения, которая может подключаться к веб-серверу (через mod_php или CGI / FastCGI) и предоставляет множество способов взаимодействия с ним
  • Большая библиотека встроенных функций и классов, многие из которых связаны с Интернетом

PHP предоставляет в самом языке функции, которые очень специфичны для веб-программирования, такие как суперглобальные ($_SERVER, $_GET, $_POST, $_COOKIE, и т.д.), переключаясь между режимом PHP и режимом HTML с помощью <?php ?> теги и т.д. И их семантика построены вокруг модели выполнения одного процесса на запрос, которая была нормой на заре серверного веб-программирования.PHP начинался как инструмент для создания веб-сценариев и только позже превратился в (в некоторой степени) язык программирования общего назначения;версия CLI и другие не веб-функции, хотя их часто можно использовать довольно эффективно, являются запоздалой мыслью, и при достаточном знакомстве с языком и его экосистемой временами это может стать болезненно очевидным.

Напротив, большинство других языков программирования с самого начала разрабатывались как языки общего назначения, системные или прикладные, и все, что относится к веб-программированию, поставляется в библиотеках.Если вы хотите заниматься веб-программированием, скажем, на Python, вам нужен веб-фреймворк или, по крайней мере, библиотека для реализации привязок веб-сервера и таких вещей, как синтаксический анализ запросов, создание шаблонов HTML и управление сеансами, и, возможно, также некоторые привязки к базе данных (если вы действительно хардкорщик и не пишете все это с нуля).

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

Для веб-приложения "Hello, world!" на Python вы обычно настраиваете virtualenv, устанавливаете некоторые библиотеки, настраиваете некоторый шаблон для веб-фреймворка, определяете маршруты и пишете обработчик, который генерирует ответ с "Hello, world!" в теле;в PHP это вопрос написания <?php echo "Hello, world!" в index.php скопируйте его в docroot apache и включите mod_php.Все остальное (подключение к серверу, синтаксический анализ запросов, генерация ответов и т.д.) Все еще происходит, но PHP позаботится об этом за вас.

PHP не является веб-языком.Он построил функции, чтобы сделать программирование в веб-приложении.Разработка веб-приложения в PHP очень легко по сравнению с другими языками, такими как Java, ASP, C #.

Если вы хотите разработать веб-приложение, которое не очень огромно и использует базу данных с меньшими размерами (несколько ГБ), то вы можете разработать PHP веб-приложение.Существует множество компаний Web-хостов, которые обеспечивают зарядку веб-хостинга на основе PHP, очень дешевую цену со всеми функциями. Лауреат.PHP является легким весом веб-приложения.

Райан, вероятно, формирует свое мнение, основанное на исторической перспективе. Исторически PHP должен был быть веб-языком. Исторически много функций на языке было разработано для этого случая использования, и на самом деле PHP используется для подставки для «личной домашней страницы». http://www.nusphere.com/php/php_history.htm

Но теперь PHP многое разработал, и я бы лично утверждал, что это еще не правда.

всего 2 примера:

Нитки были добавлены только на язык недавно. Долгое время это просто не было возможно. Темы - это то, что не имеет смысла в веб-среде (вместо этого вы склонны пинать совершенно нового фонового процесса или пройти сообщение через очередь к рабочему в другом месте). http://uk3.php.net/manual/en/book.pthreads.php

Управление памятью и ресурсами. PHP предоставляет метод __dess () на объектах, поэтому вы можете очистить ресурсы. Но чтобы начать с того, что это называли только отключение скрипта. Сейчас в веб-среде это имеет смысл, потому что вы хотите только для того, чтобы ваш скрипт запускал 0,5SECS в Max, поэтому выключение скрипта никогда не далеко. Но для длительного фона или скрипта оболочки это ужасно. Последние версии PHP фиксировали это. http://php.net/manual/en/language.oop5.decon.php

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

Лицензировано под: CC-BY-SA с атрибуция
scroll top