PHP PHP - Всеми любимый «препроцессор гипертекста»
PHP

Язык программирования PHP

Всеми любимый «препроцессор гипертекста»

Рекомендации PSR для произвольных объектов Foo и Bar

Если вы давно не заглядывали в стандарты PSR PHP-FIG, то многое могли пропустить:) Они развиваются постоянно и добавляются все новые интерфейсы. Сегодня хочу представить спецификацию PSR, которая регламентирует создание произвольных объектов в различных примерах использования. Это относительно новый репозиторий, но недавно вспомнил о нём и теперь расскажу...

Читать далее
2
520

Основные изменения в версиях PHP

В этом списке не ставится целью перечислить все изменения между версиями в PHP, для этого существует официальная документация, но можно попробовать охватить относительно значимые изменения, произошедшие от версии 5.4 до текущего состояния (на момент написания это ...

Читать далее
1
580

Обработка ошибок и исключений в PHP

После выхода PHP 7 механизм встроенных ошибок был сильно изменён и теперь представляет собой разделение на классы Error (Фатальная ошибка) и Exception (Исключение). Первый содержит перечень унаследованных от него типизированных классов для фатальных ошибок PHP, а Exception должен содержать исключения с возможностью обработки, которые будут от него унаследованы. Вместе эти два основных класса объединены интерфейсом Throwable, соответственно и...

Читать далее
2
2014
fomiash fomiash
01 Ноября 2023

Использование замыканий в PHP

Замыкание в PHP - это способность анонимной функции взаимодействовать с её окружением. То есть переменные из контекста замыкания могут быть использованы внутри функции.

Анонимная функция - это обычная функция не имеющая названия. Может быть присвоена переменной и не только, также может быть возвращаемым результатом функции или метода, аналогично экземпляру внутреннего класса Closure, которым представлена.

Пример обычной...

Читать далее
2
1478
1

Для чего нужны атрибуты в PHP

Атрибуты вида #[CustomAttribute] добавлены в PHP 8.0 (RFC, Документация)

Атрибуты предоставляют возможность добавлять различную конфигурацию к конкретным классам, методам, константам класса и тд. При этом, пока вы не начнёте обращаться к этой конфигурации, выполнение PHP никак её не воспринимает, как и обычные комментарии. Через рефлексию можно запросить атрибут конкретного класса/метода и...

Читать далее
2
1178
1
Публикуйте, отвечайте, комментируйте...
Вы еще не зарегистрировались?
Войти
fomiash fomiash
08 Мая 2023

PHP функция compact()

PHP

Довольно редко используемая функция compact() в узкоспециальных случаях значительно упрощает код. В некоторых фреймворках при отображении шаблона (так можно сделать в Laravel, например), если совместить её с передачей параметров, получится так.

Неоптимизированный код:

return view('template', [
        'x' => $x,
        'y' => $y,
    ]);

Оптимизированный при помощи compact():

return view('template', compact('x', 'y'));

Как видно из примера, функция compact из существующих переменных собирает соответствующий массив данных, где название переменной соответствует её значению.

Подробнее в документации

2
353

Самый ужасный код, который когда либо встречал

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

Читать далее
1
1359
3

Мир PHP с высоты птичьего полёта

PHP

Энтузиаст попытался изобразить экосистему PHP в виде городской среды. Инфографика выглядит красиво. Не стоит искать технических отсылок к реальной работе фреймворков, их там нет. Скорее юмористический обзор от автора на технологии, которые ему известны. Дополнительная задачка на внимательность - называется "найди Yii". Этот фреймворк там тоже есть.

Оригинал

3
1056
6

Для чего нужен оператор yield в PHP

Оператор yield — основа генераторной функции. Отдалённо этот оператор похож на оператор return , так как тоже реализует возврат, только вместо того, чтобы останавливать выполнение текущей функции, yield предоставляет значение коду, зацикливающемуся на генераторе, и приостанавливает выполнение функции генератора.

Для понимания, что делает yield, необходимо понимать, что такое генераторы. Генераторам же предшествуют итераторы. Когда вы...

Читать далее
1
285

Использование псевдотипа iterable в качестве параметра

PHP

Тип iterable может использоваться как тип параметра для указания, что функция принимает набор значений, но ей не важна форма этого набора, пока он будет использоваться с foreach.

   function example(iterable $iterable) {
      foreach ($iterable as $param) {
          // ...
      }
   }

Каким типом может быть этот набор? Параметр принимает любой массив (array) или объект, реализующий интерфейс Traversable. Оба этих типа тоже итерируются с помощью foreach.

Псевдотип iterable впервые появился в PHP 7.1.0

1
244

Функция PHP chunk_split — разбивает строку на фрагменты

PHP

chunk_split()

Позволяет разбить строку на фрагменты по заданному количеству символов. Может пригодиться, когда нужно отобразить пользователю многозначный код в читаемом виде или в иных подобных случаях.


Имеет три параметра:

string string — разбиваемая строка.

int length — длина фрагмента. Необязательный, по умолчанию 76.

string separator — последовательность символов, используемая в качестве конца строки. Необязательный, по умолчанию "\r\n".

Возвращает: string


Пример:

Читать далее
1
285

Должен ли код подстраиваться под его тестирование?

«Команда Android пошла ещё дальше — телефоны основной команды разработки почти постоянно работают на ежедневной сборке. Идея в том, что разработчики будут писать меньше кода с ошибками, если от этого зависит их возможность позвонить домой.»

(«Как тестируют в Google» Джеймс Уиттакер, Джейсон Арбон, Джефф Кароло)

Хоть однозначного ответа на этот вопрос нет, можно рассмотреть конкретные случаи, когда тестирование кода влияет в той или...

Читать далее
2
247

SOLID - основные принципы проектирования в ООП

SOLID

SOLID

Это аббревиатура пяти основных принципов проектирования в объектно-ориентированном программировании

В большинстве случаев, если вы желаете добра себе и своим коллегам, а также "набили шишки" на неправильно спроектированных классах, и сделали из этого выводы, то будете и так пользоваться принципами, повторяющими SOLID, а также многими другими, что тоже немаловажно. Это к тому, что на знании...

Читать далее
1
692
2

Что такое трейты в PHP и как их использовать

Трейты в PHP

Трейты в PHP существуют с версии 5.4, то есть относительно давно, они добавляют возможность переиспользования кода без наследования, когда один и тот же код можно использовать в совершенно не связанных между собой классах. Факт использования трейтов во фреймворке Symfony, говорит о том, что они могут без проблем вписаться в современные архитектурные решения кода и ничуть не устарели. В целом, они...

Читать далее
2
848
1


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.