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

Материал из Изи Вики
(PHP Советы выделены в отдельную статью)
 
мНет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 29: Строка 29:


TBD
TBD
{| class="wikitable"
|+Полезные фичи по обработке null значений
!Версия
!Что добавлено
!Краткое описание
!Примеры использования
|-
|7.0
|Null coalescing <code>??</code>
|Позволяет кратко записывать проверки на <code>null</code> в одну строчку с присвоением альтернативного значения переменной
|Пример кода
|-
|7.4
|Null coalescing assignment  <code>??=</code>
|Позволяет выполнять присваивание в одну строчку с условием, если переменная не была до этого равна <code>null</code>
|Пример кода
|-
|8.0
|Nullsafe operator <code>?-></code>
|В середине цепочки последовательных вызовов методов может встретиться null. В этом случае выполнение цепочки прерывается, конечное значение остается равным <code>null</code>.
|Пример кода
|}
{| class="wikitable"
|+Полезные фичи для строгой типизации
!Версия
!Что добавлено
!Краткое описание
!Примеры использования
|-
|7.4
|Typed properties
|Можно ограничить типы у свойств (полей) класса
|Пример кода
|-
|8.0
|Union types <code><nowiki>x|y</nowiki></code>
|В выражениях определяющих тип можно использовать разделить <code><nowiki>|</nowiki></code> и перечислить несколько допустимых типов. Должен подходить один из списка.
|
|-
|8.1
|Intersection Types <code>x&y</code>
|В выражениях определяющих тип можно использовать разделить <code>&</code> и перечислить несколько допустимых типов. Должны подходить все указанные.
|
|}
{| class="wikitable"
|+Полезные фичи по ООП
!Версия
!Что добавлено
!Краткое описание
!Примеры
|-
|8.0
|<code>$object::class</code>
|Теперь класс объекта можно получить без использования дополнительных функций
|
|-
|8.0
|Promoted properties
|Свойства (поля) объекта теперь можно инициализировать прямо в параметрах конструктора класса. Значения заполняются без необходимости определять присвоение в самом конструкторе.
|
|-
|8.1
|Enums
|Перечисляемый тип или другими словами — это типизированные константы
|Пример кода
|-
|8.1
|<code>readonly</code>  properties
|Признак <code>readonly</code> у свойства (поля) класса означает, что значение в него можно записать только один раз. После записи изменить значение нельзя.
|
|-
|
|
|
|
|}
[[Категория:Незавершённые статьи]]

Текущая версия от 01:50, 7 ноября 2022

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

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

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

TBD

Советы опытным разработчикам[править | править код]

TBD

Полезные фичи по обработке null значений
Версия Что добавлено Краткое описание Примеры использования
7.0 Null coalescing ?? Позволяет кратко записывать проверки на null в одну строчку с присвоением альтернативного значения переменной Пример кода
7.4 Null coalescing assignment ??= Позволяет выполнять присваивание в одну строчку с условием, если переменная не была до этого равна null Пример кода
8.0 Nullsafe operator ?-> В середине цепочки последовательных вызовов методов может встретиться null. В этом случае выполнение цепочки прерывается, конечное значение остается равным null. Пример кода
Полезные фичи для строгой типизации
Версия Что добавлено Краткое описание Примеры использования
7.4 Typed properties Можно ограничить типы у свойств (полей) класса Пример кода
8.0 Union types x|y В выражениях определяющих тип можно использовать разделить | и перечислить несколько допустимых типов. Должен подходить один из списка.
8.1 Intersection Types x&y В выражениях определяющих тип можно использовать разделить & и перечислить несколько допустимых типов. Должны подходить все указанные.
Полезные фичи по ООП
Версия Что добавлено Краткое описание Примеры
8.0 $object::class Теперь класс объекта можно получить без использования дополнительных функций
8.0 Promoted properties Свойства (поля) объекта теперь можно инициализировать прямо в параметрах конструктора класса. Значения заполняются без необходимости определять присвоение в самом конструкторе.
8.1 Enums Перечисляемый тип или другими словами — это типизированные константы Пример кода
8.1 readonly properties Признак readonly у свойства (поля) класса означает, что значение в него можно записать только один раз. После записи изменить значение нельзя.