Библиотека пхпшника | 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
Golang убивает PHP

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

В связи с этим планируется публикация ряда статей, которые будут посвящены особенностям разработки, проблемам, которые необходимо учитывать, а также ролям участников разработки, таким как DevOps-инженеры.
🥱32👍6😁3🔥2👾1
Гайд по Query Scopes в Laravel

В Laravel имеются локальные и глобальные запросные области (query scopes), которые позволяют определять ограничения в запросах Eloquent, делая их повторно используемыми и более читаемыми.

Локальные области запросов необходимо применять вручную, а глобальные области запросов автоматически применяются ко всем запросам модели.
4👍1
Как вы используете пагинацию в Laravel?

Laravel предоставляет простой способ постраничной обработки записей базы данных с помощью метода paginate.

В этом примере мы используем метод paginate для получения коллекции пользователей и разбивки результатов на страницы по 10 записей в каждой. Затем мы можем выполнить итерацию по пагинированной коллекции с помощью цикла foreach.

Чтобы отобразить ссылки на пагинацию в представлении, мы можем использовать метод links для пагинационной коллекции.

#вопросы_с_собеседований
5👍1
Как использовать шаблонизатор Laravel Blade в проекте на чистом PHP

Можно интегрировать шаблонизатор Blade из Laravel в проект на чистом PHP. Автор делится пошаговыми инструкциями по реализации этого подхода.
👍7🔥1🌚1
Если в Laravel у вас есть два очень похожих объекта (например, адрес доставки и адрес оплаты) и вам нужно сделать копию одного из них для другого, вы можете использовать метод replicate() и изменить некоторые свойства после этого.
👍35👾32
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
В этом видео рассматривается функция whereAny(), которая была выпущена в Laravel 10.47. Это очень элегантный способ захвата данных на основе условного «любой из следующих столбцов»
👾2
#дайджест #phpdevjob

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

▪️PHP-программист
Липецк, WL — создание и продвижение сайтов
Подробнее

▪️PHP Laravel/Symfony разработчик
Ульяновск, FrameWork Team — аутсорс-разработка
Подробнее

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

▪️PHP-разработчик
Удаленка, ДосЛаб — разработка ПО
Подробнее

▪️Full-stack developer
Удаленка, Первый Бит — интегратор IT-решений
Подробнее

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

▪️Team Lead
Москва, Драфтер — разработка ПО
Подробнее

▪️PHP-программист
Москва, СИНЬЮС — оперативные новости и аналитические материалы
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
👍5🤔3🎉1
Привет, друзья! 👋

Мы готовим статью о самых раздражающих вопросах на собеседованиях и хотим узнать ваше мнение! 🤔💼

📌 Какой вопрос на собеседовании вы считаете самым бесящим или нелепым? Почему?
🎭 Как вы обычно отвечаете на вопрос «Расскажите о своих недостатках»? Поделитесь своими лайфхаками!
🚀 Какой самый неожиданный или креативный вопрос вам задавали на собеседовании? Как вы на него ответили?

Ваши ответы помогут другим кандидатам подготовиться к собеседованиям! Самые интересные истории и советы попадут в нашу статью.

Ждём ваших комментариев! 👇😊
👏1
Опишите жизненный цикл HTTP-запроса.

Жизненный цикл HTTP-запроса в PHP можно разделить на следующие этапы:

1️⃣ Инициация запроса: Когда клиент отправляет HTTP-запрос на сервер, он инициирует процесс обработки запроса. В PHP это может быть инициировано, например, через браузер или с помощью команды curl в командной строке.

2️⃣ Маршрутизация: После получения запроса сервер должен определить, какой код или файл должен обрабатывать этот запрос. В PHP это может быть определено с помощью файла .htaccess или механизма маршрутизации, такого как маршрутизатор в фреймворке.

3️⃣ Обработка запроса: Когда PHP определяет, какой код или файл должен обработать запрос, он запускает этот код или файл. Этот этап включает выполнение кода, чтение и обработку данных, выполнение операций с базой данных и другие операции, необходимые для обработки запроса.

4️⃣ Генерация и отправка ответа: После обработки запроса PHP генерирует данные, которые должны быть отправлены обратно клиенту. Это может включать в себя генерацию HTML-страницы, отправку изображений, создание и отправку JSON-ответов и т. д. Затем PHP отправляет созданный ответ обратно на клиентскую сторону.

5️⃣ Завершение обработки запроса: После отправки ответа PHP завершает обработку запроса, освобождает ресурсы, которые были использованы во время обработки, и завершает свое выполнение.

#вопросы_с_собеседований
👍9🌚1👾1
Использование вспомогательных функций для преобразования Markdown в HTML в Laravel 11

В этом руководстве показано, как создать вспомогательную функцию в приложении Laravel для преобразования содержимого Markdown в HTML с использованием библиотеки league/commonmark.
PHP функции и способы их применения

В PHP становится все больше способов работы с функциями. Хотя ООП и является основной парадигмой для этого языка, процедурный и функциональный подходы тоже имеет право на жизнь в PHP. Давайте рассмотрим различные примеры работы с функциями в PHP 8.3
👍21
Руководство по событиям модели в Laravel

В Laravel, события моделей (model events) позволяют автоматически запускать определенную логику при выполнении действий с моделями Eloquent, таких как создание, обновление или удаление записей. Это может быть очень удобно, но важно правильно их использовать, чтобы избежать нежелательных побочных эффектов.

События моделей

В Laravel некоторые события моделей автоматически запускаются при выполнении определенных действий с моделями Eloquent. Вот некоторые из них:

retrieved — запись извлечена из базы данных.
creating — запись создается.
created — запись создана.
updating — запись обновляется.
updated — запись обновлена.
saving — запись сохраняется (создается или обновляется).
saved — запись сохранена.
deleting — запись удаляется.
deleted — запись удалена.
trashed — запись помечена как удаленная (soft delete).
forceDeleting — запись принудительно удаляется.
forceDeleted — запись принудительно удалена.
restoring — запись восстанавливается после soft delete.
restored — запись восстановлена после soft delete.
replicating — запись клонируется.

Прослушивание событий моделей

Существует несколько способов прослушивания событий моделей:

🔸Свойство dispatchesEvents в модели: Позволяет связать события моделей с классами событий, которые должны быть запущены.

🔸Замыкания (closures) в методе booted модели: Позволяют определять слушатели прямо в модели.

🔸Наблюдатели (observers): Классы, которые содержат методы для обработки различных событий модели.

Возможные проблемы и альтернативные подходы

🔸События моделей: События не запускаются, если манипуляции с данными выполняются напрямую через фасад DB или при массовых операциях (bulk operations).

🔸Альтернативы: Для более сложных операций или если нежелательные побочные эффекты вызывают проблемы в тестах, можно использовать сервисы или классы действий (actions) для более явного управления логикой.
🔥3👏2
🍇 18 основных паттернов микросервисной архитектуры

Рассказываем о паттернах, которые представляют собой набор проверенных решений типичных проблем и задач в микросервисной архитектуре. Их правильное применение может значительно улучшить масштабируемость и надежность системы.

Читать статью
👍3🌚1
😨 Страх ошибок: как он мешает вам писать код

Страх совершить ошибку при внесении изменений в код может серьезно ограничивать профессиональный рост программиста. Как преодолеть этот психологический барьер и стать более эффективным разработчиком? Ответы — в нашей статье.
🔥1
«Я перестал использовать Copilot после 2 месяцев. И вот почему»

Автор делится своим опытом работы с Copilot, приводя как положительные, так и отрицательные аспекты его использования. В статье рассмотрены следующие моменты:

Сетап: Copilot использовался с языками PHP (Laravel) и TypeScript (React) в редакторе nvim, работая над фронтендом, бекендом и тестами.

Плюсы:

Copilot впечатляет способностью предугадывать код, особенно если он повторяющийся.
Он предлагает простые решения, которые могут не приходить сразу в голову программисту.
Автокомплит Copilot помогает быстро генерировать шаблонный код, который затем можно исправить.

Минусы:

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

Итог:

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

Обычный автокомплит вместе с моторной памятью оказывается быстрее и приятнее в использовании.

В некоторых случаях проще использовать копипасту и обращаться к ChatGPT для уточнения вопросов.
🎉13💯3🥱2👍1🔥1