Библиотека пхпшника | 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
Выбираем подходящий PHP-фреймворк для проекта

Здесь обсуждаются различные PHP-фреймворки и их пригодность для различных типов проектов, предоставляя исследования Laravel, Symfony, Yii, Slim и Laminas (Mezzio). Вот некоторые тезисы:

Laravel:

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

Symfony:

🟠Гибкий и настраиваемый фреймворк с активным сообществом.
🟠Используется в крупных корпоративных проектах, таких как Spotify и Yahoo.
🟠Более сложный чем Laravel, с более высоким порогом входа, но предлагает решения для различных случаев.

Yii:

🟠Объектно-ориентированный MVC-фреймворк с генерацией CRUD.
🟠Используется для приложений любой сложности, но утрачивает популярность в сравнении с Laravel.
🟠Известен быстрым развитием, соблюдением принципа DRY, и Ajax-виджетами для валидации данных.

Slim:

🟠Микрофреймворк для простых, но мощных веб-приложений и API.
🟠Быстрый и легкий, подходит для маленьких задач, где Symfony и Laravel могут быть избыточны.
🟠Используется для небольших API, микросервисов и отдельных сервисов в рамках монолита.

Laminas (Mezzio):

🟠Mezzio — это форк Zend Framework, созданный для модульных приложений.
Подходит для различных целей, в основном для API и микросервисов.
Хорошая поддержка, совместимость с Swoole и богатые библиотеки для синхронизации с внешними сервисами.
👍10🥱62
Зачем создавать собственные исключения?

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

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

Следует осторожно обращаться с блоками catch, ведь есть шанс «поглощения» исключений. Например, при работе с базой данных, критические ошибки следует допускать и записывать в лог, чтобы обеспечить прозрачность отслеживание проблем.
👍62🤩1
В чем разница между WHERE и HAVING?

WHERE и HAVING являются двумя различными операторами условий в языке SQL, которые используются для фильтрации данных.

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

В примере оператор WHERE фильтрует строки таблицы employees и выбирает только те строки, где значение столбца 'department' равно 'Sales'.

Оператор HAVING используется после операции GROUP BY в выражении SELECT для фильтрации результатов группировки и агрегации. Он определяет условия, которым должны соответствовать группы записей, чтобы они были включены в результирующий набор данных после группировки.

В примере оператор HAVING фильтрует результаты группировки таблицы employees и выбирает только те группы записей, где количество сотрудников больше 5.

Таким образом, основная разница между WHERE и HAVING заключается в том, что WHERE фильтрует строки до группировки и агрегации, а HAVING фильтрует результаты после группировки и агрегации.

#вопросы_с_собеседований
👍156🥱4🔥21
🤔Некоторые разработчики недооценивают полезность трейтов, обвиняя в «переинжиниринге» или «преждевременной абстракции». Однако, не следует обобщать все случаи использования трейтов, вот яркий пример их эффективного применения в Laravel.

🌐 Практический пример: Livewire Toaster:
Создается пакет «Livewire Toaster» для управления всплывающими уведомлениями, используя трейты и декораторы. Подчеркивается «умное» управление временем отображения сообщений и легкость в использовании.

💻 Реализация:
Автор предоставляет код для регистрации коллекторов в сервис-контейнере Laravel с использованием метода extend. Он демонстрирует создание декораторов, таких как «AccessibleCollector» и «TranslatingCollector».
👍43🔥3🎉2🌚2
📈 Обзор рынка труда в ИТ: III квартал 2023 года

В этой статье обсудим зарплату программистов в III квартале 2023 года, динамику вакансий, тенденции рынка труда в ИТ и многое другое. Присоединяйтесь!

Читать статью
👏7🌚31😁1
Недокументированная возможность в Phpstorm: нативная консоль php -a с автодополнением из IDE

В PhpStorm есть хитрость, позволяющяя использовать консоль PHP как альтернативу Python Console. Здесь рассказывается о возможности интегрировать консоль PHP с IDE, добавив возможность отладки, что обеспечивает автодополнение и другие функции IDE в консоли PHP.
🔥12👍3🥱3
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
2
Обновление Laravel: с 5.7 до 10.x

В Laravel есть возможность прямого перехода к последней версии (Laravel 10.x) независимо от текущей версии, обходя инкрементальные обновления. Процесс подробно описывается в пяти шагах:

1️⃣Настройка окружения:
Создание окружения для Laravel 10.x, требующего PHP 8.1 и указанных расширений.

2️⃣Обновление только Laravel:
Изначально фокус на обновлении базовых пакетов Laravel.
Создание нового файла composer.json на основе ветки Laravel 10.x из GitHub.
Запуск composer install для выявления и пошагового устранения ошибок.

3️⃣Установка зависимостей:
Решение проблем, связанных с фреймворком, сравнив изменения между текущей версией и Laravel 10.x на GitHub.
Ручное объединение изменений там, где это необходимо, особенно в файлах с пользовательскими модификациями.

4️⃣Установка оставшихся зависимостей:
Установка оставшихся зависимостей, учитывая изменения между файлами composer.json.back и новым composer.json.
Использование сравнения в Git для выявления и избегания установки зависимостей, удаленных Laravel.

5️⃣Финальные рекомендации:
Уделять особое внимание тестированию для обеспечения успешного обновления и правильной работы системы.
Регулярная проверка обновлений в репозитории Laravel и обращение к руководствам по обновлению Laravel для дополнительных идей.
🥱8🔥42
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
3👍2
Узнавайте обо всех ваших уведомлениях Laravel с помощью нового пакета Paragraphs.

Это представление нового пакета от компании Paragraph, который обеспечивает более полный контроль над процессом отправки уведомлений. Речь идет о том, как этот инструмент может улучшить видимость и анализ исходящих коммуникаций.
2
В чем разница между «echo» и «print»?

В PHP разница между echo и print заключается в следующем:

1.Возвращаемое значение:

echo: Не возвращает значение. Может принимать несколько аргументов, разделенных запятыми, и выводит их.
print: Всегда возвращает 1, поэтому может использоваться в выражениях.

2.Аргументы:

echo: Может принимать несколько аргументов, и их использование разделяется запятыми.
print: Принимает только один аргумент. Если вы пытаетесь передать ему более одного аргумента или использовать запятые для разделения, это вызовет ошибку.

3.Использование:

echo: Чаще используется для вывода HTML-кода и других строковых данных.
print: Часто используется для вывода единственного значения или переменной, особенно в контексте, где требуется возвращаемое значение.

#вопросы_с_собеседований
👍17🥱91🤔1
Как решить исключение «Маршрут не найден» в Laravel 10

Исключение «Маршрут не найден» является распространенной проблемой в Laravel, особенно в 10 версии. В большинстве случаев отображается страница 404, но здесь предлагается возможность перенаправления на любую другую страницу:

🟠На страницу 404
🟠На домашнюю страницу
🟠Перенаправление назад, если маршрут не существует
🟠Перенаправление с использованием обработчика исключений

Осталось только выбрать, что вам по вкусу
🥱6🥰4
Обзор LiveWire 3 и Volt

Эта статья-обзор новой, уже третьей версии Livewire. Помимо текстовой версии, есть также видео. Также рассматривается новинка — Volt. Довольно интересный и подробный материал, авторы которого постарались грамотно всё разложить по полочкам
👍1🌚1
В сети часто можно увидеть спор на тему лайвкодинга на собесах. Как к этому относитетсь? Достаточно ли тестового задания?
🔥6👍1
🔍Коммуникация в разработке продукта играет ключевую роль. Команда, владеющая навыками коммуникации, может сократить потребность в менеджерах продукта и оптимизировать процессы разработки продукта. Также подчеркивается сложность эффективной коммуникации, особенно при масштабировании команды.

🤔Основная проблема, обсуждаемая здесь, — наличие несогласованных ожиданий, предположений и использование неудачных средств коммуникации. Приводится личный пример, когда месяцы работы над проектом пришлось пересматривать из-за недостаточной эффективной коммуникации. Расширенные документы и долгие разговоры не привели к успешной передаче информации.

🛠️ Решение:

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

Запрос обратной связи:
🙋 Активно запрашивайте обратную связь по эффективности коммуникации, особенно в отношении понимания проекта и наличия информации.

Показывайте, не рассказывайте:
🎥 Используйте визуальные средства, макеты и демонстрации, чтобы передать информацию более эффективно, чем устные или письменные описания.

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

Удобочитаемость сообщений:
📋 Формулируйте сообщения кратко, структурировано, включайте задачи на действие или четкие указания. Предоставляйте различные форматы для сложной информации, такие как краткое изложение или видеозапись экрана.

Руководства пользователя:
📘 Разрабатывайте индивидуальные руководства, описывающие предпочтения в коммуникации, стиль ответа и предпочтительные средства общения для каждого члена команды. Поощряйте членов команды составлять свои собственные руководства.
👍41😁1
#дайджест новостей по PHP за неделю:

🔎Выпущена CakePHP 4.5.2. — Улучшения включают в себя: Значения даты сортировки больше не задают часовой пояс. Исправлено несоответствие между Error.beforeRender и Exception.beforeRender и много чего другого.

🔎Выпущена версия Filament v3.1 — После более чем 100 выпусков патчей для версии Filament v3.0 (это не шутка), наконец-то вышел одно из самых крупных минорных обновлений

🔎Выпущена версия Laravel 10.37 — На этой неделе команда Laravel выпустила версию 10.37 с возможностью хранить пакетные метаданные в DynamoDB, выявлять множественные ошибки в поле и многое другое.

🔎Интеграция MongoDB с Laravel теперь официально поддерживается

🔎Laravel Octane теперь поддерживает FrankenPHP. — Laravel Octane повышает производительность вашего приложения, обслуживая его с помощью мощных серверов приложений, таких как Open Swoole, Swoole и RoadRunner. Начиная с сегодняшнего дня, он также будет поддерживать FrankenPHP.

🔎 Неделя Symfony #885 (11–17 декабря 2023 г.)
👍4