PHP: различия между версиями

Материал из Изи Вики
(Раздел Как работает PHP)
(Новая картинка + небольшие правки)
 
(не показано 17 промежуточных версий 3 участников)
Строка 1: Строка 1:
[[File:PHP-logo.svg|thumb|200px|логотип PHP]]
'''PHP''' — язык программирования для создания [[Веб-приложение|веб-приложений]]. Обрел популярность благодаря простоте и гибкости. Распространяется по лицензии с [[Open source|открытым исходным кодом]]. Идеально решает задачи создания интернет магазинов, новостных сайтов, справочников, простых социальных сетей.
'''PHP''' — язык программирования для создания [[Веб-приложение|веб-приложений]]. Обрел популярность благодаря простоте и гибкости. Распространяется по лицензии с [[Open source|открытым исходным кодом]]. Идеально решает задачи создания интернет магазинов, новостных сайтов, справочников, простых социальных сетей.


== Главные достоинства ==
== Объясните простыми словами, пожалуйста ==
'''PHP''' — это «''автомат Калашникова»'' в мире [[Информационные технологии|информационных технологий]]. Давайте для простоты временно назовем его «PHP-''47''».
[[Файл:British refugee child putting tools away8d23098v.jpg|мини|204x204пкс|Юный инженер выбирает инструмент для создания веб-приложения]]
🤓'''«PHP-''47''»''' был создан инженером самоучкой, подсмотревшим идеи у других языков программирования, улучшив и упростив их. В настоящий момент является самым '''популярным''' «''оружием''» в мире, правда в своей узкой категории '''веб-приложений'''. Прост и надежен как топор, ''стреляет'' там, где другие языки программирования ломаются, дают осечку «неверный тип ''патронов''-данных». ''Стреляет'' в любой среде: в воздухе, в грязи, в пыли, в Linux, Windows, macOS. Название PHP расшифровывается как «пых-пых» — звуки подражания стрельбе (это шутка), а разработчиков на PHP еще называют «пыхерами» (не шутка).
 
Овладев «PHP-''47''» неопытный программист получает мнимую власть и иногда начинает применять её '''не к месту''' (как эмодзи в этом тексте). Бесспорно, «PHP-''47''» в теории может помочь вам пристроить ребенка в детский сад, получить повышение на работе или написать программу для настольного компьютера. Но свидетели такого поведения удивятся и покрутят пальцем у виска 👎
 
'''Настоящее''' предназначение «PHP-''47''» — это «''стрельба''» '''веб-страницами''' в браузеры пользователей.
 
😱 Звучит опасно, почему же «PHP-''47''» еще не запрещен? Дело в том, что он '''полностью безопасен''' и постоянно хранится вместе с <code>''патронами''.php</code> в надежном и труднодоступном ''сейфе''-сервере. «PHP-''47''» стреляет '''только по запросу''' от самого пользователя и безвредными для него веб-страницами (<code>''пулями''.html</code>).
 
«PHP-''47''» — это язык программирования с подмоченной репутацией, как оружие '''террористо-плохо-кодеров'''. Проблема тут не в самом «PHP-''47''» — это прекрасный и надежный инструмент в умелых руках. Но благодаря своей '''простоте''' и доступности, он получил широкое '''распространение''' в мире и попал в руки новичков-радикалов. Как результат, большинство некачественных и небезопасных веб-приложений в мире написаны именно на «PHP-''47''». Ну и все порносайты, конечно же 😅
 
'''«PHP-''47''»''' — это всё еще популярная и дорабатывающаяся, но уже устаревающая технология. Долгосрочно этот язык проиграет в войне более технологичным и современным инструментам. Но списывать полностью его '''пока рано''' 💪
 
== А если серьезно ==
[[File:Webysther 20160423 - Elephpant.svg|thumb|200px|The elePHPant, талисман PHP]]
=== Главные достоинства ===
 
Что мы имеем на данный момент:
Что мы имеем на данный момент:


Строка 13: Строка 32:
* Программы на PHP простые в обслуживании: быстро разворачиваются, по ним легко провести отладку, нет проблем с утечками памяти
* Программы на PHP простые в обслуживании: быстро разворачиваются, по ним легко провести отладку, нет проблем с утечками памяти


== История успеха ==
=== История успеха ===
В 90-е годы большинство веб-сайтов в интернете являлось набором статичных HTML файлов, хранящихся на сервере. В 1994 году датский программист Расмус Лердорф предложил простой и удобный способ доработки таких сайтов. Он добавил в HTML файлы специальный программный код для генерации динамической информации. Данный код выполнялся на лету специальной программой — интерпретатором PHP.
В 90-е годы большинство веб-сайтов в интернете являлось набором статичных HTML файлов, хранящихся на сервере. В 1994 году датский программист Расмус Лердорф предложил простой и удобный способ доработки таких сайтов. Он добавил в HTML файлы специальный программный код для генерации динамической информации. Данный код выполнялся на лету специальной программой — интерпретатором PHP.


Строка 20: Строка 39:
В настоящее время название языка рекомендуется расшифровывать как '''P'''HP: '''H'''ypertext '''P'''reprocessor (PHP: препроцессор гипертекста).
В настоящее время название языка рекомендуется расшифровывать как '''P'''HP: '''H'''ypertext '''P'''reprocessor (PHP: препроцессор гипертекста).


== Примеры проектов ==
=== Примеры проектов ===
PHP стал идеальным инструментом для разработки [[CMS]] приложений — движков веб-сайтов с функционалом хранения и удобного редактирования контента. Как следствие, подавляющая часть небольших простых сайтов в мире работает на PHP.  
PHP стал идеальным инструментом для разработки [[CMS]] приложений — движков веб-сайтов с функционалом хранения и удобного редактирования контента. Как следствие, подавляющая часть небольших простых сайтов в мире работает на PHP.  


Строка 27: Строка 46:
* Facebook (первые версии)
* Facebook (первые версии)
* Вконтакте (первые версии)
* Вконтакте (первые версии)
* Aliexpress
* Taobao
* YouTube (самая первая версия, почти сразу был переписан на phyton)
* YouTube (самая первая версия, почти сразу был переписан на phyton)
* New York Post
* Aliexpress, Taobao
* CNN
* New York Post, CNN, BBC
* TED
* TED, Spotify, Yahoo, Flickr, Vimeo
* BBC
* Spotify
* Yahoo
* Flickr
* Vimeo
* ну и конечно же Wikipedia (движок MediaWiki)
* ну и конечно же Wikipedia (движок MediaWiki)


== Советы новичкам ==
=== Как работает PHP ===
Большое количество проектов на PHP, означает и большое количество вакансий для работы. Хорошо зная PHP, вы не останетесь без работы. Но не стоит рассчитывать на высокую зарплату, так как порог входа в технологию низкий и у вас будет много конкурентов (в том числе и из стран третьего мира).
 
=== Рекомендуемый план обучения (от простого к сложному) ===
# Найдите актуальные учебные онлайн-материалы и используйте самую последнюю версию PHP. Не учитесь по старым учебникам.
# Сначала попробуйте написать простой одностраничное веб-приложение с нуля в любом текстовом редакторе, чтобы понять базовые принципы работы.
# Тестируйте на практике примеры из учебных материалов. Старайтесь не копировать, а писать код самостоятельно.
# На данном этапе начните использовать профессиональную разработки IDE.
# Для более глубокого погружения в технологию создайте учебный проект с базой данных MySQL на базе фреймворка, например Laravel.
# Разберитесь как работает пакетный менеджер Composer и добавьте с его помощью функционал из сторонних библиотек.
# Изучите PSR: PHP Standards Recommendations и примените его, внеся исправления и улучшения в ваш код.
# Установите систему контроля версий git, создайте репозиторий и выложите ваш код на GitHub.
# Создайте Docker образ вашего приложения и загрузите его в Docker Registry.
# Запустите Docker контейнер вашего приложения на внешнем хостинге.
 
=== Избегайте типовых ошибок по информационной безопасности ===
 
* Не вставляйте в ваш проект скопированный код, который не до конца понимаете.
* Готовые PHP-приложения или модули к ним скачивайте только с официальных сайтов или из официальных публичных репозиториев.
* Любые входящие снаружи данные могут быть подделаны злоумышленником или содержать инъекции чужого кода. Всегда проверяйте их формат и корректность перед использованием.
* При загрузке файлов на сервер от сторонних пользователей, как минимум проверяйте расширение файла на допустимые. А лучше загружайте файлы в отдельную папку с установленными ограничениями на возможность запуска любых скриптов и программ.
* Не храните файлы с конфиденциальной информацией в публично доступных папках вашего проекта и не загружайте их в репозитории.
 
== Как работает PHP ==
PHP может работать по различным сценариям и схемам, разберем здесь типовую.
PHP может работать по различным сценариям и схемам, разберем здесь типовую.


Строка 77: Строка 66:
# Браузер обрабатывает ответ и отображает данные пользователю на экране.
# Браузер обрабатывает ответ и отображает данные пользователю на экране.


== Проблемные места ==
=== Проблемные места ===
 
* PHP — узконаправленный язык, главное достоинство влечет и недостатки. Плохо подходит для других задач кроме написания веб-приложений. Если вы знаете хорошо только PHP, вам придется работать только веб-разработчиком.
* PHP — узконаправленный язык, главное достоинство влечет и недостатки. Плохо подходит для других задач кроме написания веб-приложений. Если вы знаете хорошо только PHP, вам придется работать только веб-разработчиком.
* Синтаксис языка (набор правил написания) скопирован из различных языков программирования (C, Java, Perl), это вызывает много споров и критики.
* Синтаксис языка (набор правил написания) скопирован из различных языков программирования (C, Java, Perl), это вызывает много споров и критики.
Строка 84: Строка 72:
* Плохо подходит для сложных корпоративных и финансовых решений, где ущерб от сбоя или ошибок слишком высок.
* Плохо подходит для сложных корпоративных и финансовых решений, где ущерб от сбоя или ошибок слишком высок.


== Шпаргалки ==
== Дополнительные статьи ==
Краткая и полезная информация
 
[[PHP Шпаргалки]] Краткая и полезная информация
 
[[PHP Советы]] Рекомендации новичкам и опытным специалистам
 
[[PHP Примеры]] Примеры кода для новичков и не только


см. [[PHP Шпаргалки]]
[[Категория:Информационные технологии]]

Текущая версия от 04:55, 5 апреля 2023

логотип PHP

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

Объясните простыми словами, пожалуйста[править | править код]

PHP — это «автомат Калашникова» в мире информационных технологий. Давайте для простоты временно назовем его «PHP-47».

Юный инженер выбирает инструмент для создания веб-приложения

🤓«PHP-47» был создан инженером самоучкой, подсмотревшим идеи у других языков программирования, улучшив и упростив их. В настоящий момент является самым популярным «оружием» в мире, правда в своей узкой категории веб-приложений. Прост и надежен как топор, стреляет там, где другие языки программирования ломаются, дают осечку «неверный тип патронов-данных». Стреляет в любой среде: в воздухе, в грязи, в пыли, в Linux, Windows, macOS. Название PHP расшифровывается как «пых-пых» — звуки подражания стрельбе (это шутка), а разработчиков на PHP еще называют «пыхерами» (не шутка).

Овладев «PHP-47» неопытный программист получает мнимую власть и иногда начинает применять её не к месту (как эмодзи в этом тексте). Бесспорно, «PHP-47» в теории может помочь вам пристроить ребенка в детский сад, получить повышение на работе или написать программу для настольного компьютера. Но свидетели такого поведения удивятся и покрутят пальцем у виска 👎

Настоящее предназначение «PHP-47» — это «стрельба» веб-страницами в браузеры пользователей.

😱 Звучит опасно, почему же «PHP-47» еще не запрещен? Дело в том, что он полностью безопасен и постоянно хранится вместе с патронами.php в надежном и труднодоступном сейфе-сервере. «PHP-47» стреляет только по запросу от самого пользователя и безвредными для него веб-страницами (пулями.html).

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

«PHP-47» — это всё еще популярная и дорабатывающаяся, но уже устаревающая технология. Долгосрочно этот язык проиграет в войне более технологичным и современным инструментам. Но списывать полностью его пока рано 💪

А если серьезно[править | править код]

The elePHPant, талисман PHP

Главные достоинства[править | править код]

Что мы имеем на данный момент:

  • Около 75% сайтов в мире работают на PHP.
  • Язык качественно документирован, имеется большое количество платных и бесплатных обучающих материалов.
  • Вокруг технологии сформировалось дружное активное сообщество. Регулярно выходят новые версии и обновления, новички получают поддержку, проводится много встреч и конференций.
  • Это один из самых простых языков программирования. Отлично подходит для обучения как первый язык, легко пишется и читается, не требует сложной настройки.
  • Отличный выбор для стартапов. Вы можете быстро разработать прототип, чтобы проверить концепцию и вашу идею на практике. Если ваш проект не станет популярным, вы не потеряете много денег на разработке.
  • PHP поддерживается всеми хостинг провайдерами. Это означает возможность быстрого разворота вашего приложения в любом дата-центре.
  • Для языка написано множество полезных инструментов, библиотек, в открытом доступе есть много наработок и готовых движков под вашу задачу.
  • Программы на PHP простые в обслуживании: быстро разворачиваются, по ним легко провести отладку, нет проблем с утечками памяти

История успеха[править | править код]

В 90-е годы большинство веб-сайтов в интернете являлось набором статичных HTML файлов, хранящихся на сервере. В 1994 году датский программист Расмус Лердорф предложил простой и удобный способ доработки таких сайтов. Он добавил в HTML файлы специальный программный код для генерации динамической информации. Данный код выполнялся на лету специальной программой — интерпретатором PHP.

Изначально такой подход мог решать только простые задачи и технология назывался Personal Home Page Tools (инструменты для персональной веб-страницы). В дальнейшем язык активно развивался и в 2004 году вышла пятая версия PHP с поддержкой объектно-ориентированного программирования. В 2020 году вышел PHP 8 и сейчас это высокопроизводительный язык программирования с поддержкой современных стандартов и богатым функционалом.

В настоящее время название языка рекомендуется расшифровывать как PHP: Hypertext Preprocessor (PHP: препроцессор гипертекста).

Примеры проектов[править | править код]

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

Этот язык применялся при разработке таких известных сайтов:

  • Facebook (первые версии)
  • Вконтакте (первые версии)
  • YouTube (самая первая версия, почти сразу был переписан на phyton)
  • Aliexpress, Taobao
  • New York Post, CNN, BBC
  • TED, Spotify, Yahoo, Flickr, Vimeo
  • ну и конечно же Wikipedia (движок MediaWiki)

Как работает PHP[править | править код]

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

  1. Пользователь хочет посмотреть страницу https://izi.wiki/index.php.
  2. Запрос от браузера пользователя передается на сервер по HTTP протоколу (та самая аббревиатура из ссылок)
  3. На сервере установлена специальная программа "веб-сервер" (примеры Nginx, Apache). Она умеет обрабатывать HTTP запросы.
  4. Веб-сервер разбирает запрос и по внутренним правилам принимает решение: вернуть ошибку, перенаправить на другой адрес, вернуть пользователю файл или запустить PHP приложение.
  5. Если требуется запустить приложение, веб-сервер передает данные запроса пользователя в другую программу: PHP-интерпретатор.
  6. Здесь происходит сложная магия. PHP-интерпретатор проводит лексический и синтаксический анализ php файлов на сервере, генерирует промежуточный байт-код (opcodes - operation codes) и запускает виртуальную машину Zend Engine. В этом не нужно разбираться новичку.
  7. Итог: PHP программа записанная в php файле выполняется. Если требуется, в процессе выполнения она может обращаться к базе данных и другим сторонним приложениям.
  8. Результат выполнения в виде набора заголовков и текста ответа PHP-интерпретатор возвращает веб-серверу.
  9. Веб-сервер из полученных от PHP данных формирует корректный ответ по HTTP протоколу и возвращает пользователю в браузер. В большинстве случаев результат выполнения PHP программы - это HTML страница.
  10. Браузер обрабатывает ответ и отображает данные пользователю на экране.

Проблемные места[править | править код]

  • PHP — узконаправленный язык, главное достоинство влечет и недостатки. Плохо подходит для других задач кроме написания веб-приложений. Если вы знаете хорошо только PHP, вам придется работать только веб-разработчиком.
  • Синтаксис языка (набор правил написания) скопирован из различных языков программирования (C, Java, Perl), это вызывает много споров и критики.
  • Язык прост для новичков, так как не ограничивает их в написании некачественного, низкопроизводительного и небезопасного кода.
  • Плохо подходит для сложных корпоративных и финансовых решений, где ущерб от сбоя или ошибок слишком высок.

Дополнительные статьи[править | править код]

PHP Шпаргалки Краткая и полезная информация

PHP Советы Рекомендации новичкам и опытным специалистам

PHP Примеры Примеры кода для новичков и не только