Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.34K photos
20 videos
26 files
4.03K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
💬array_map() предоставляет только значение массива, но не ключ. Чтобы получить доступ к ключу, используйте дополнительные аргументы и array_keys().

Обратите внимание, что порядок аргументов теперь value, key, а не как обычно $key => $value.
😁7😢21👾1
Saloon

Saloon — это библиотека PHP, которая предоставляет вам инструменты для создания простых интеграций API и SDK. Saloon перемещает ваши запросы API в повторно используемые классы, чтобы вы могли хранить все свои конфигурации API в одном месте. Его можно легко настроить с помощью плагинов, но он поставляется предварительно настроенным для вас, поэтому вы можете сразу же приступить к отправке запросов API. Saloon поставляется со множеством интересных функций, таких как запись запросов в ваших тестах, кеширование, OAuth2 и нумерация страниц.
👍3
Что такое анонимная функция в PHP и как её использовать?

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

#вопросы_с_собеседований
👍9
Нужно динамически настраивать почтовые программы? Метод Mail::build в Laravel позволяет создавать почтовые программы на лету!

Динамическая настройка почтовых ящиков идеально подходит для многопользовательских приложений, пользовательских почтовых провайдеров или любых других сценариев, где почтовые настройки должны быть сконфигурированы во время выполнения.
👍5👏5😢3😁2👾1
📝⚖️ Увольнение по статье: что делать, особенности и нюансы

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

👉 Читать подробнее
Из легаси в конфетку: история трансформации

Разработчики рано или поздно сталкиваются с легаси-кодом — старым, не всегда понятным и порой пугающим набором строк, в которых легко потеряться. Такой код вызывает смешанные чувства: с одной стороны, он отражает результат чьей-то работы и является частью истории компании, с другой — представляет собой постоянный вызов, требующий не только поддержки, но и регулярных улучшений. Превратить его в «конфетку» — задача сложная, но выполнимая.

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

Данная статья описывает опыт команды, которая за год работы обновила и модернизировала подобный проект.
👍1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👏21
Улучшения в PHPStan для анализа типов

Здесь показаны достижения в области улучшения анализа типов в PHPStan, выполненные за последние годы.

Проблема типов mixed
Тип mixed используется, когда информация о типе отсутствует, что может приводить к ошибкам анализа или ложным срабатываниям. Работа автора была сосредоточена на сужении таких типов, чтобы повысить точность анализа.

Узкие типы на основе условий
PHPStan давно использует метод «вычитания» типов. Вместо того чтобы описывать, чем является переменная, анализ строится на исключении того, чем она не является. Например:

Если переменная проверяется на истинность (if ($mixed)), исключаются ложные значения.
Если переменная ложна (if (!$mixed)), исключаются истинные значения.
Этот подход расширен на такие операции, как приведение типов в условиях.

Примеры улучшений
🔸Приведение типов: Приведение переменной к числу, строке или булевому типу теперь лучше учитывается при анализе. Например, int, bool или string помогают уточнять тип переменной в конкретных контекстах.

🔸Сравнение строк: Улучшена работа с функциями вроде strlen() и substr(). Сравнение длины строки или её части теперь помогает определять, является ли строка пустой, ложной или непустой.

🔸isset() и массивы: Анализ использования isset() теперь точнее определяет тип ключа массива. Например, isset($array[$mixed]) исключает невозможные значения для $mixed.

🔸IIFE (immediate-invoked-function-expression): Этот подход, популярный в JavaScript, иногда используется и в PHP. PHPStan научился корректно анализировать изменения типов внутри таких функций.

Новые phpdoc-типы
Для улучшения анализа в PHPStan добавлены новые аннотации:

non-falsy-string: строка, которая не является ложным значением.
@param-out: уточняет, как изменяется переданный по ссылке параметр.
value-of и другие.
Эти аннотации помогают разработчикам и инструментам анализировать код быстрее и точнее.

Расширения PHPStan
В PHPStan появилась возможность учитывать контекст вызовов. Например, расширения для анализа preg_match() теперь используют дерево синтаксиса регулярных выражений. Также разработан инструмент phpstan-dba для анализа запросов к базе данных с учётом схемы данных.
👍52
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
😁3
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.

В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования

👉Подписаться👈
👏1
PHP-GLFW

Полнофункциональное расширение OpenGL и GLFW для PHP.

Оно позволяет создавать 2D и 3D приложения в реальном времени на PHP. Также предоставляет разработчикам совершенно новый набор инструментов для создания графических приложений, таких как игры, научные симуляции, пользовательские интерфейсы и многое другое.
👍10😁3🤔1
Какова цель функции «spl_autoload_register» в PHP?

Функция spl_autoload_register в PHP используется для автоматической загрузки классов гибким и эффективным способом. Она часто используется в объектно-ориентированных приложениях PHP, где классы организованы в соответствии со стандартом PSR-4 или аналогичными соглашениями.

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

Как это работает:

1️⃣Вы определяете одну или несколько функций автозагрузки, которые сопоставляют имена классов с путями к файлам.
2️⃣Регистрируете эти функции автозагрузки с помощью spl_autoload_register.
3️⃣Когда класс создается или ссылается, и его определение еще не загружено, PHP вызывает зарегистрированные функции автозагрузки через spl_autoload_register, чтобы попытаться загрузить определение класса.
4️⃣Этот процесс позволяет более организованной и эффективной загрузке классов в приложениях PHP, уменьшая необходимость вручную включать файлы классов.
👍3🔥3👏3🤩1🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
🥳Официальный мануал по PHP научился новому трюку: теперь вы можете запускать код прямо в браузере!
🔥94👍97
При обновлении моделей Laravel всегда срабатывают «Model Events», которые представляют собой хуки, позволяющие выполнять дополнительные действия. Вы можете отключить это поведение, обновляя их «без шума» 🤫.
👍14🌚3🔥1😢1
💬 Сколько часов в день вы тратите на рабочие созвоны?

❤️ — меньше часа
👍 — от часа до двух
👾 — от двух до трёх часов
🌚 — почти весь рабочий день состоит из созвонов

#интерактив
103👍60👾16🌚9
Оптимистические 🆚 Пессимистические блокировки: наглядная #инфографика для разработчика

👉 Источник
🔥5😢1
#дайджест #PHPdevjob

Вакансии PHP разработчиков уровня Junior

▪️ Junior PHP (Symfony) разработчик
Удалёнка, ТМК
Подробнее

▪️ Junior backend developer (PHP/Laravel) / разработчик PHP
Офис (Санкт-Петербург), Матрикс
Подробнее

Вакансии PHP разработчиков уровня Middle

▪️ PHP-разработчик
Удалёнка / Гибрид (Екатеринбург), TradeDealer
Подробнее

▪️ PHP-разработчик (middle backend php developer)
Офис (Новосибирск), М+1
Подробнее

Вакансии PHP разработчиков уровня Senior

▪️ PHP разработчик
Удалёнка, Петрович-Тех
Подробнее

▪️ PHP/Go developer (Quality Сontrol)
Удалёнка, Lamoda Tech
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
🤔4😁31👍1🔥1