Telegram Web
Как использовать коллекции в Laravel?

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

Создание коллекций: Вы можете создавать коллекции, используя вспомогательную функцию collect, передавая массив или объект, реализующий интерфейс IteratorAggregate:

$collection = collect([1, 2, 3, 4, 5]);


Манипуляция с коллекциями: После того как у вас есть коллекция, вы можете использовать широкий спектр методов для манипуляции данными:
map(): Преобразует каждый элемент в коллекции.
filter(): Фильтрует элементы на основе функции обратного вызова.
reduce(): Сводит коллекцию к единственному значению с использованием функции обратного вызова.
pluck(): Извлекает список конкретных атрибутов из каждого элемента.
sortBy(): Сортирует коллекцию по указанному ключу.
groupBy(): Группирует коллекцию по указанному ключу.
slice(): Извлекает часть коллекции.
И многие другие...

Цепочка методов: Вы можете соединять несколько методов вместе, чтобы выполнять сложные операции в одной строке.
👍42😁1
🪤 Избегите ловушки Enum в Laravel

В Laravel использование enum (перечислений) помогает задать фиксированный набор значений, например, для статусов, ролей или категорий. Применение enum в качестве типа данных позволяет строго контролировать значения при работе с базой данных, что делает код чище и уменьшает вероятность ошибок. Однако с ростом проекта и изменением бизнес-логики этот подход может привести к проблемам, особенно в системах с легаси-кодом.

В идеале разработка начинается с чистой базы данных, которая настраивается под текущие задачи. Это позволяет создавать точные тесты и корректировать их при появлении новых сценариев. Однако в реальных условиях проекты редко остаются неизменными: добавляются новые значения enum, старые устаревают, а данные в базе продолжают храниться. Если удалить устаревший enum из кода, но оставить его в базе, Laravel может выдать ошибку, так как значение больше не соответствует ожидаемому набору.

📌 Основные сложности при использовании enum-кастинга в Laravel:

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

Решение — отказ от жесткой привязки enum к модели через кастинг.

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

Такой подход позволяет:

🔹Избежать неожиданных ошибок — кастер не выбрасывает исключения, а логирует проблему.
🔹Гибко управлять данными — можно настроить, как обрабатывать устаревшие значения (например, заменять их на дефолтные).
🔹Упрощает поддержку — код остается понятным и адаптируемым к изменениям

👉Читать подробнее
😁4🤔2🌚2
💡 Форматирование процентов

Знаете ли вы, что Laravel поставляется с помощником percentage, позволяющим получить процентное отношение к любому показателю? 🚀

#совет
👍6😁4🤔2
Как вы тестируете свой код?⬇️⬇️⬇️
😳 Если бы языки программирования были девушками

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

Мы заглянули в Тиндер разработчика и нашли там PHP. Как вам? 😏

Еще больше прекрасных дам языков программирования в нашем канале Библиотека программиста.

Свайпайте и выбирайте свой мэтч ❤️
🥱10🔥7👍42
🔥История легенды Силиконовой долины: Энди Бехтольсхайм

Если вам интересна история Кремниевой долины из первых уст, прочитайте полное интервью.

➡️ Краткая выжимка

В этом интервью Энди Бехтольсхайм рассказывает о своем детстве в Германии, первых экспериментах с электроникой, учебе в Стэнфорде и работе в Xerox PARC. Он делится историей создания Sun Microsystems, перехода к сетевым технологиям и своими взглядами на будущее IT-индустрии. Также он объясняет, как сделал легендарную инвестицию в Google и почему стартапы должны правильно выбирать момент для выхода на рынок.

🔗 Ссылка на интервью в формате PDF
🥱7😢1
📊 Состояние PHP в 2024 году: результаты исследования состояния экосистемы разработчиков от JetBrains

PHP остается краеугольным камнем веб-разработки, на нем работают миллионы сайтов по всему миру. Его активное и заинтересованное сообщество ценит его гибкость и простоту использования.

В этом году в опросе приняли участие 2 660 PHP-разработчиков со всего мира. По уровню опыта преобладают мидлы. 86% уже используют PHP 8, но его распространение идёт медленнее, чем в своё время у PHP 7.

Среди фреймворков Laravel безоговорочно лидирует, а его популярность продолжает расти. В плане инструментов PhpStorm остаётся главным выбором разработчиков, однако VS Code набирает обороты, особенно среди начинающих.

Читайте в исследовании и узнайте, как PHP-разработчики ориентируются в постоянно меняющемся мире современной веб-разработки.
👍14🤩21
🔥 Как НЕ НАДО собеседовать middle разработчиков

Автор является действующим PHP middle разработчиком в одной средней компании. Занимается разработкой highload микросервисов в B2B сфере. Суммарно обрабатывается около 50к запросов в секунду, хранятся миллиарды записей и находится на поддержке около тысячи интернет‑магазинов.
Он имеет опыт в техническом собеседовании, в том числе и других middle php разработчиков. За свою карьеру провёл пару десятков таких собеседований, по результатам которых было нанято около 5 разработчиков и 2 аутсорс компании.

🔗Читай на Хабре, как автор делится опытом собеседования на позицию middle php разработчика во «ВКонтакте»
👍4😢3😁1🤔1
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
🤔1
🎨 MetaStorm — плагин, расширяющий PHPStorm

Этот плагин позволяет расширить поведение PhpStorm и добавить поддержку ваших собственных фреймворков с помощью нескольких строк в файле конфигурации. Он разблокирует ссылки и автодополнение в обычных местах, таких как method($object,), render() и т. д.

👉Официальный сайт

#инструменты
🔥1
Какова цель использования функций array_count_values() и array_search() в PHP?

array_count_values(): Функция array_count_values() используется для подсчёта количества вхождений значений в массиве. Она возвращает ассоциативный массив, где ключи — это уникальные значения из входного массива, а значения — количество их появлений.

array_search(): Функция array_search() ищет определённое значение в массиве и возвращает первый ключ, соответствующий этому значению. Если значение не найдено, функция возвращает false.

#вопросы_с_собеседований
👍4🔥21
🔗 В PHP 8.4 улучшено именование замыканий для упрощения отладки

В PHP 8.4 улучшена читаемость стека вызовов при использовании замыканий. Ранее в трассировке ошибок замыкания обозначались просто как {closure}, без указания их расположения в коде. Это усложняло отладку, особенно если в одном пространстве имен использовалось несколько замыканий.

Теперь в стеке вызовов указывается место объявления замыкания. Например, вместо {closure} теперь отображается {closure:Shopware\Storefront\Controller\StorefrontController::renderStorefront():26}, что позволяет точно определить, где было создано и вызвано замыкание.

Кроме того, при использовании var_dump теперь можно увидеть файл и строку, где объявлено замыкание. Этот функционал ранее использовался в Tideways Profiler и Xdebug, а теперь стал частью PHP благодаря вкладу одного из разработчиков.

👉Читать подробнее
🔥30
💡 Предварительный просмотр почтовых отправлений

При работе с почтовыми файлами мы часто отправляем их в MailHog или Mailtrap, чтобы быстро просмотреть отрисованное письмо. Знаете ли вы, что Laravel позволяет просматривать письма в браузере, как если бы это были обычные файлы Blade? 🚀

#совет
👍11
🤔 Прекратите использовать псевдотипы

PHP использует псевдотипы callable и iterable для удобной валидации данных, но они не являются полноценными типами, как string или array.

Callable появился в PHP 5.4 и объединяет замыкания, строки и массивы, ссылающиеся на функции. Он удобен, но создаёт сложности при статическом анализе, так как строка может содержать несуществующую функцию.

Iterable, введённый в PHP 7.1, проверяет, является ли значение массивом или реализует интерфейс Traversable. В PHP 8.2 он перестал быть псевдотипом и теперь представляет собой объединение двух типов. Его использование может вызвать ошибки, если, например, массив заменяется генератором, что делает невозможным прямой доступ по индексу.

Псевдотипы удобны, но их использование может затруднить анализ кода и привести к неожиданным ошибкам. Вместо callable лучше использовать Closure, а iterable заменять конкретными типами (array или Iterator) для большей предсказуемости.

💬Читать подробнее
👍4🤔3🌚2
Какой метод принимает имя класса или ссылку на объект и возвращает массив имен интерфейсов, которые он реализует?
Anonymous Quiz
68%
class_implements()
4%
is_subclass()
3%
is_subclass_of()
25%
class_interface()
TwigStan — статический анализатор для Twig'а

Это статический анализатор для шаблонов Twig, основанный на PHPStan. Он предназначен для выявления ошибок в шаблонах Twig на этапе разработки, что способствует повышению качества и надежности кода. Инструмент компилирует шаблоны Twig в PHP-код, оптимизирует его для лучшего анализа и сообщает об ошибках, указывая исходный шаблон и номер строки, где возникла проблема.

Обратите внимание, что проект находится на экспериментальной стадии

🔗Github

#инструменты
👍81🔥1
Какова цель «Gii» в Yii2?

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

Возможности Gii в Yii2:
🔸Ускоряет разработку:
Автоматически генерирует шаблонный код, сокращая рутинные задачи.

🔸Создает модели из базы данных:
Генерирует Active Record модели, анализируя структуру базы данных.

🔸Генерирует CRUD (Создание, Чтение, Обновление, Удаление):
Создает контроллеры, представления и модели для работы с данными.

🔸Уменьшает вероятность ошибок:
Обеспечивает единообразие и правильный синтаксис в сгенерированном коде.

🔸Поддерживает кастомизацию:
Разработчики могут изменять шаблоны кода под нужды проекта.

🔸Расширяет функциональность:
Позволяет создавать собственные шаблоны кода для повторного использования.

Как использовать Gii в Yii2

1. Включите Gii в config/web.php:

'modules' => [ 'gii' => [ 'class' => 'yii\gii\Module', ],],


2. Откройте Gii в браузере:
http://your-app-url/index.php?r=gii

3. Выберите нужный генератор (Модель, CRUD, Контроллер и т. д.), введите данные и создайте код.

Использование в командной строке
Gii можно запускать через консоль Yii2:
php yii gii/model --tableName=your_table_namephp yii gii/crud --modelClass=app\models\YourModel --controllerClass=app\controllers\YourController
🥱8👍4😁1
2025/07/14 12:09:20
Back to Top
HTML Embed Code: