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

Материал из Изи Вики
(Типы данных)
(Шпаргалки вынесены в отдельную статью)
Строка 70: Строка 70:
* Плохо подходит для сложных корпоративных и финансовых решений, где ущерб от сбоя или ошибок слишком высок.
* Плохо подходит для сложных корпоративных и финансовых решений, где ущерб от сбоя или ошибок слишком высок.


== Шпаргалка ==
== Шпаргалки ==
Краткая выдержка часто используемых и полезных штук
Краткая и полезная информация
 
см. [[PHP Шпаргалки]]
{| class="wikitable"
{| class="wikitable"
|+Операторы
!Арифметика
!Сравнение
!Логические
!Побитовые
|-
| + сложение
|=== равно
|&& (and) и
|& и
|-
| - вычитание
|!== не равно
|<nowiki>|| (or) или</nowiki>
|<nowiki>| или</nowiki>
|-
|* умножение
|< меньше
|! отрицание
|~ отрицание
|-
|/ деление
|> больше
|xor искл. или
|^ искл. или
|-
|% остаток
|<= меньше или равно
|
|<< сдвиг влево
|-
|** степень
|>= больше или равно
|
|>> сдвиг вправо
|}
{| class="wikitable"
|+Типы данных
!Тип
!Подтип
!Описание
!Примеры
|-
|bool
|скалярный
|булевый тип
|true, false
|-
|int
|скалярный
|целые числа
|15, 017, 0xf, 0b1111
|-
|float
|скалярный
|числа с плав. точкой
|0.01, 1e-2
|-
|string
|скалярный
|строки
|'abc', "abc"
|-
|array
|смешанный
|массивы
|[1,-0.1,'abc'],
array('key' => 'value')
|-
|object
|смешанный
|объекты
|new stdClass(),
new class {}
|-
|callable
|смешанный
|можно в callback
|function(){},
fn($x) => $x+1
|-
|iterable
|смешанный
|можно в foreach
|[1,2],
(function() { yield 1; yield 2; })()
|-
|resource
|специальный
|внешний ресурс
|fopen('<nowiki>http://www.google.com'</nowiki>, 'r')
|-
|NULL
|специальный
|нет значения
|null
|}
|}

Версия от 07:40, 18 октября 2022

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

Советы новичкам

Большое количество проектов на PHP, означает и большое количество вакансий для работы. Хорошо зная PHP, вы не останетесь без работы. Но не стоит рассчитывать на высокую зарплату, так как порог входа в технологию низкий и у вас будет много конкурентов (в том числе и из стран третьего мира).

Рекомендуемый план обучения (от простого к сложному)

  1. Найдите актуальные учебные онлайн-материалы и используйте самую последнюю версию PHP. Не учитесь по старым учебникам.
  2. Сначала попробуйте написать простой одностраничное веб-приложение с нуля в любом текстовом редакторе, чтобы понять базовые принципы работы.
  3. Тестируйте на практике примеры из учебных материалов. Старайтесь не копировать, а писать код самостоятельно.
  4. На данном этапе начните использовать профессиональную разработки IDE.
  5. Для более глубокого погружения в технологию создайте учебный проект с базой данных MySQL на базе фреймворка, например Laravel.
  6. Разберитесь как работает пакетный менеджер Composer и добавьте с его помощью функционал из сторонних библиотек.
  7. Изучите PSR: PHP Standards Recommendations и примените его, внеся исправления и улучшения в ваш код.
  8. Установите систему контроля версий git, создайте репозиторий и выложите ваш код на GitHub.
  9. Создайте Docker образ вашего приложения и загрузите его в Docker Registry.
  10. Запустите Docker контейнер вашего приложения на внешнем хостинге.

Избегайте типовых ошибок по информационной безопасности

  • Не вставляйте в ваш проект скопированный код, который не до конца понимаете.
  • Готовые PHP-приложения или модули к ним скачивайте только с официальных сайтов или из официальных публичных репозиториев.
  • Любые входящие снаружи данные могут быть подделаны злоумышленником или содержать инъекции чужого кода. Всегда проверяйте их формат и корректность перед использованием.
  • При загрузке файлов на сервер от сторонних пользователей, как минимум проверяйте расширение файла на допустимые. А лучше загружайте файлы в отдельную папку с установленными ограничениями на возможность запуска любых скриптов и программ.
  • Не храните файлы с конфиденциальной информацией в публично доступных папках вашего проекта и не загружайте их в репозитории.

Проблемные места

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

Шпаргалки

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

см. PHP Шпаргалки