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

Материал из Artem Aleksashkin's Wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
= Общие сведения =
= Общие сведения =
PHP: Hypertext Preprocessor - интерпретируемый язык программирования, который завоевал популярность благодаря легкой интеграции с HTML позволяя вставлять блоки кода <?php echo $someVar; ?> прямо в html код. Сейчас правда от такого отказались большинство движков и используют шаблоны и всякие паттерны.
= Установка =
= Установка =
<pre>
<pre>

Версия от 16:49, 3 ноября 2024

Общие сведения

PHP: Hypertext Preprocessor - интерпретируемый язык программирования, который завоевал популярность благодаря легкой интеграции с HTML позволяя вставлять блоки кода <?php echo $someVar; ?> прямо в html код. Сейчас правда от такого отказались большинство движков и используют шаблоны и всякие паттерны.

Установка

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.1

Переключить версию PHP

sudo update-alternatives --config php
# OR sudo update-alternatives --set php /usr/bin/php5.6

История

5.3

5.4

5.5

5.6

7.0

7.1

7.2

7.3

7.4

  • https://www.php.net/manual/ru/migration74.php
  • Типизированные свойства
  • Стрелочные функции
  • Ограниченная ковариация возвращаемого типа и контравариантность типа аргумента
  • Присваивающий оператор объединения с null
  • Распаковка внутри массивов
  • Разделитель в числовых литералах
  • Слабые ссылки
  • Обработка исключений из метода __toString()

8.0

8.1

8.2

8.3

Паттерны

Типы данных

    • null
      • Скалярные:
      • bool
      • int
      • float
      • string
    • array
    • object
    • resource
    • never
    • void
    • self, parent, static
    • true, false

Магические методы

    • __construct(mixed ...$values = ""): void - конструктор, вызывается при new ClassName($param1, $param2, $param3)
    • __destruct() - деструктор - вызывается при уничтожении объекта
    • __call(string $name, array $arguments): mixed - вызывается при вызове метода с параметрами
    • __callStatic(string $name, array $arguments): mixed - вызывается при вызове статического метода с параметрами
    • __get(string $name): mixed - будет выполнен при чтении данных из недоступных (защищённых или приватных) или несуществующих свойств.
    • __set(string $name, mixed $value): void - будет выполнен при записи данных в недоступные (защищённые или приватные) или несуществующие свойства.
    • __isset(string $name): bool - будет выполнен при использовании isset() или empty() на недоступных (защищённых или приватных) или несуществующих свойствах.
    • __unset(string $name): void - будет выполнен при вызове unset() на недоступном (защищённом или приватном) или несуществующем свойстве.
    • __sleep(): array - Если метод определили, он выполняется перед сериализацией. Метод может очистить объект и должен вернуть массив с именами всех переменных этого объекта, которые должны быть сериализованы. Если метод ничего не возвращает, то сериализуется константа null и выдаётся предупреждение E_NOTICE.
    • __wakeup(): void - восстановить соединения с базой данных, которые могли потеряться во время сериализации, и выполнить другие задачи повторной инициализации.
    • __serialize(): array - Если метод определили, функция выполняется перед сериализацией. Метод должен создать и вернуть ассоциативный массив пар ключ и значение, которые представляют сериализованную форму объекта.
    • __unserialize(array $data): void - Если метод определили, PHP передаст методу массив, который восстановил и вернул метод __serialize(). Затем, если нужно, метод восстанавливает свойства объекта из этого массива.
    • __toString(): string - разрешает классу выбирать, как класс будет реагировать, когда с ним обращаются как со строкой.
    • __invoke( ...$values): mixed - вызывается, когда скрипт пытается выполнить объект как функцию.
    • __set_state(array $properties): object - Этот статический метод вызывается для тех классов, которые экспортируются функцией var_export().
    • __clone(): void - После завершения клонирования, если метод __clone() определён, то будет вызван метод __clone() вновь созданного объекта для возможного изменения всех необходимых свойств.
    • __debugInfo(): array - Этот метод вызывается функцией var_dump(), когда необходимо вывести список свойств объекта. Если этот метод не определили, выводится каждое свойство объекта c модификаторами public, protected и private

Суперглобальные переменные

    • $GLOBALS - Ссылается на переменные глобальной области видимости
    • $_SERVER - это массив (array), содержащий такую информацию, как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером, поэтому нет гарантии, что каждый веб-сервер будет предоставлять любую из этих переменных
    • $_GET - Ассоциативный массив переменных, переданных скрипту через параметры URL (известные также как строка запроса).
    • $_POST - Ассоциативный массив данных, переданных скрипту через HTTP методом POST при использовании application/x-www-form-urlencoded или multipart/form-data в заголовке Content-Type запроса HTTP.
    • $_FILES - Ассоциативный массив элементов, загруженных в текущий скрипт через метод HTTP POST.
    • $_COOKIE - Ассоциативный массив значений, переданных скрипту через HTTP Cookies.
    • $_SESSION - Ассоциативный массив, содержащий переменные сессии, которые доступны для текущего скрипта.
    • $_REQUEST - Ассоциативный массив, который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.
    • $_ENV - Ассоциативный массив значений, переданных скрипту через переменные окружения.

Установка

Синтаксис

ООП

IDE

Отладка

Организация кода

Библиотеки

CMS

  • WordPress
  • Drupal
  • Joomla
  • Livestreet

Фреймворки

  • Symfony
  • Laravel
  • Zend Framework
  • Yii
  • CodeIgniter
  • Nette Framework
  • CakePHP
  • Slim

Ссылки и доп. информация