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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Опишите три основных типа ошибок в PHP

В PHP ошибки делятся на три основных типа:

Уведомления (Notices):

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

Предупреждения (Warnings):

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

Фатальные ошибки (Fatal Errors):

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

Обработка ошибок:
Для обработки ошибок в PHP разработчики могут использовать функции обработки ошибок, такие как set_error_handler() для определения пользовательской обработки ошибок, error_reporting() для установки уровня отчетности об ошибках, а также блоки try, catch и finally для обработки исключений в PHP 7 и более поздних версиях.

#вопросы_с_собеседований
👏3👍1
PHP 8.4 Release Candidate 1 уже здесь

Команда PHP объявила о выпуске первого релиз-кандидата PHP 8.4! Хотя до выхода общедоступной версии 8.4.0 еще около двух месяцев (ожидается 21 ноября), вы можете начать подготовку к PHP 8.4 уже сейчас. Ознакомьтесь с новыми функциями, путем обновления и ключевыми датами, чтобы быть уверенными в своей готовности.
👍4
💬Если удаляете много записей из таблицы, делайте это частями и с паузами, чтобы не завалить базу данных.
👍20😢7🤔5🌚5👾1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2
Разблокировка производительности ORM: Важнейшая роль моделей чтения

Статья обсуждает проблемы производительности ORM (Object-Relational Mapper) при чтении больших объёмов данных из базы данных, подчеркивая важность хорошего понимания инструментов, которые мы используем.
👍5
Привет, друзья! 👋

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

🤔 С какими ошибками в своей карьере программиста вы сталкивались? Как вы их преодолели?
📚 Какие советы вы бы дали начинающим разработчикам, чтобы избежать распространенных ловушек в программировании?
🖥️ Что, по вашему мнению, важно учитывать при планировании своей карьеры в IT, чтобы минимизировать сожаления в будущем?

Спасибо за ваше участие! 🚀
👍4
Что делает «@» в PHP?

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

Например, рассмотрим следующий код:

$result = @file_get_contents('nonexistentfile.txt');

В данном случае, если файл nonexistentfile.txt не существует, функция file_get_contents обычно вызвала бы предупреждение. Однако, предварив его символом «@», предупреждение подавляется. Переменная $result будет содержать false, и сообщение об ошибке не будет отображено.

Хотя оператор управления ошибками может быть удобен в определенных ситуациях, его использование следует осуществлять с осторожностью. Подавление ошибок может затруднить диагностику и устранение проблем в коде, так как вы не получите обратную связь о возможных проблемах. Общепринятым подходом является явная обработка ошибок с использованием блоков try-catch или других соответствующих механизмов обработки ошибок, а не полагаться на «@» для подавления ошибок.

#вопросы_с_собеседований
😁8👍6👾4
Изучение ключевых обновлений в PHP 8.4

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

Здесь рассказано, как встроить систему приглашений в приложение с помощью Laravel и GraphQL. Эту задачу можно выполнить не только по привычным каналам вроде email, но и через SMS API. Разберется процесс интеграции от создания модели на Laravel и работы с GraphQL до отправки сообщений через API Exolve.
👏3👾2🌚1
Вопрос к сеньорам, в какой момент вы узнали, что достигли этого уровня? Как это произошло?⬇️⬇️⬇️
😁13🌚2
💡8 ключевых концепций в предметно-ориентированном проектировании (Domain-driven design, DDD): на заметку разработчику

👉 Источник
🔥9
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🍇 Подборка лучших статей «Библиотеки программиста» за сентябрь: сохраняй в заметки, чтобы не пропустить #самыйсок

😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных
⚛️🔄 Улучшенная обработка асинхронных операций в React 19
🔟🏩 ТОП-10 перспективных студий разработки: лучшие компании для вашего карьерного роста
🏗 3 основных шаблона событийно-ориентированной архитектуры
🐘🔧 Расширение pg_variables: мощная альтернатива временным таблицам в PostgreSQL
👍 25 полезных HTML тегов, элементов и атрибутов, которые должен знать каждый фронтендер
🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода
🛠 Сага: эффективный шаблон микросервисной архитектуры
🏃 Самоучитель по Go для начинающих. Часть 16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты
💡🎨 Источники вдохновения для UI/UX-дизайнеров и фронтендеров: 50 полезных ресурсов
🤩1
Опрос «Как вы учитесь с помощью телефона: поделитесь своим опытом!»

Дорогие подписчики, мы на миссии улучшений, и вы — наш ключ! 🔑


Мы хотим стать ещё круче, и для этого нужно узнать, как вы учитесь!

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

Займёт всего 5 минут — как раз успеете за чашкой кофе! А за ваш ценный вклад мы дарим 15% скидку на все курсы https://proglib.academy/ 🎁
👍1
💬Еще в Laravel 8 появился Prunable. С его помощью вы можете удалять старые модели по расписанию.

Вам больше не нужно писать пользовательские команды
👍17🥰1🌚1👾1
Что такое Views? Какие преимущества и недостатки?

Представления (Views) в базе данных — это виртуальные таблицы, которые содержат результат выполнения SQL-запроса. Представление не хранит данные самостоятельно, оно отображает данные, которые уже существуют в базовых таблицах, в структурированном виде. Представление может включать строки и столбцы из одной или нескольких таблиц.

Преимущества представлений (Views):

🟢Упрощение сложных запросов:

Представление может быть создано на основе сложных SQL-запросов. Это упрощает использование сложной логики, делая её более доступной и удобной для пользователей.
Вместо того чтобы писать сложный запрос каждый раз, можно просто обращаться к представлению.

🟢Безопасность данных:

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

🟢Абстракция данных:

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

🟢Повторное использование запросов:

Представления позволяют использовать один и тот же запрос в разных частях приложения. Это снижает дублирование кода.

🟢Производительность:

В некоторых случаях, особенно если представление материализованное (materialized view), оно может улучшить производительность, так как результат запроса может быть сохранён и обновлён периодически, а не вычисляться при каждом обращении.

Недостатки представлений (Views):

🔸Ограниченные возможности обновления:

Некоторые представления не поддерживают обновление данных (INSERT, UPDATE, DELETE). Это особенно актуально для представлений, созданных на основе сложных запросов с агрегатами (GROUP BY, SUM и т. д.), объединений (JOIN) или подзапросов.
В этих случаях представление становится «только для чтения», что ограничивает его полезность в ряде ситуаций.

🔸Снижение производительности:

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

🔸Отсутствие индексов:

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

🔸Зависимость от структуры базовых таблиц:

Если структура базовых таблиц меняется (например, удаляются столбцы, используемые в представлении), это может привести к ошибкам в представлении. Поддержка и отслеживание изменений в таких случаях могут быть сложными.

🔸Сложность управления:

Если база данных содержит множество представлений, это может усложнить её структуру и сделать её менее прозрачной для администраторов и разработчиков.
Сложные каскадные представления (когда одно представление использует другое) могут привести к путанице и затруднить поддержку.

#вопросы_с_собеседований
👍71