TGViewer
Channel Public Channel
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

@phpproglib

Все самое полезное для пхпшника в одном канале.

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

Учиться у нас: clc.to/M561SQ

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Subscribers
10.5K
Photos
1.8K
Videos
31
Links
4.6K

Showing posts older than #4774 · Back to latest

Older Posts 20 shown
Post #4773 2.62K

Forwarded from Proglib.academy | IT-курсы

🤥 Наврал в резюме: 5 вариантов, что делать

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

Не хочешь преукрашивать в резюме — тогда забирай курс по Алгоритмам от базы до эксперт уровня:
🔵 Алгоритмы и структуры данных

🔗 Ссылка на статью
  • 👍 2
Post #4771 3K
⚒️ Шардирование базы данных: шпаргалка для разработчика

👉 Источник
  • ❤ 6
  • 🔥 1
Post #4769 2.88K
Когда вам нужно проверить поле, но на самом деле оно не требуется ни для чего, например, «принять условия использования», воспользуйтесь правилом exclude. Таким образом проверяемый метод не вернет его.
  • 🔥 8
  • 🥱 5
  • 👍 4
Post #4768 2.9K
Советы по моделям в Laravel

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

✅1. Избегайте проблемы N+1 запросов
N+1 запросы возникают, когда для каждого элемента в коллекции данных выполняется отдельный запрос к базе данных, что замедляет приложение. Чтобы избежать этого, используйте eager loading для подгрузки связанных данных заранее.

✅2. Предотвращение доступа к несуществующим атрибутам
Если вы случайно попытаетесь получить доступ к несуществующему атрибуту модели, Laravel может вернуть null, что может вызвать неожиданные ошибки. Включите функцию, которая будет выбрасывать исключение при попытке доступа к несуществующему полю.

✅3. Защита от молчаливого игнорирования атрибутов
При попытке обновить модель с использованием полей, которые не указаны в списке fillable, Laravel просто проигнорирует эти данные. Включите функцию, которая будет выбрасывать исключение в таких случаях, чтобы избежать ошибок.

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

✅5. Использование UUID вместо автонумерации
Для повышения безопасности можно использовать UUID (уникальные идентификаторы) в качестве первичных ключей или для публичных идентификаторов. Это затрудняет предсказание ID и может защитить приложение от атак.

✅6. Использование кастомных коллекций
Laravel позволяет создавать собственные коллекции моделей с дополнительными методами для удобства работы с ними.
  • ❤ 9
  • 👍 3
Post #4767 2.98K
Как хранить координаты точки на карте в БД?

Рассмотрим несколько возможных подходов:

1. Хранение отдельных полей с широтой и долготой:
- Создайте две числовые колонки в таблице БД, например, «latitude» и «longitude», представляющие широту и долготу соответственно.
- Для каждой точки, сохраните ее координаты в эти поля.
- При поиске точек на карте, вы можете использовать операторы сравнения или функции, поддерживаемые БД, для поиска точек в определенном радиусе или в пределах определенной географической области.

2. Использование географических типов данных:
- Некоторые реляционные БД, такие как MySQL с расширением Spatial, PostgreSQL с расширением PostGIS или SQLite с поддержкой расширения SpatiaLite, предоставляют специальные типы данных для работы с географическими объектами.
- Создайте колонку с типом данных для хранения географической информации, например, тип «Point», который позволяет хранить точку с заданными координатами.
- Сохраняйте информацию о точках на карте в этой колонке.
- Используйте функции и операторы, поддерживаемые соответствующим расширением БД, для выполнения географических запросов, таких как поиск точек в определенном радиусе или внутри границ определенного полигона.

#вопросы_с_собеседований
  • 👍 4
  • ❤ 2
Post #4766 2.99K
#memes
  • 😁 40
  • 🌚 3
Post #4765 3.25K
LLPhant — комплексная PHP-инфраструктура генеративного искусственного интеллекта

Эта платформа разработана так, чтобы она была максимально простой, но при этом предоставляла вам инструменты, необходимые для создания мощных приложений. Он совместим с Symfony и Laravel.

На данный момент поддерживается только OpenAI, если вы хотите использовать другие LLM, вы можете использовать genossGPT в качестве прокси.
GitHub GitHub - LLPhant/LLPhant: LLPhant - A comprehensive PHP Generative AI Framework using OpenAI GPT 4. Inspired by Langchain LLPhant - A comprehensive PHP Generative AI Framework using OpenAI GPT 4. Inspired by Langchain - LLPhant/LLPhant
  • 👍 3
  • 🤔 1
Post #4764 2.98K
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
  • 👍 1
Post #4762 2.88K
Преимущества написания чистого, поддерживаемого кода.

Здесь обсуждается важность написания чистого и поддерживаемого кода. Автор, имеющий двадцатилетний опыт программирования, признаёт, что ранее его основной целью было просто заставить код работать, не задумываясь о его качестве и поддерживаемости. Но после знакомства с Laravel он начал обращать внимание на чистоту кода и его удобочитаемость для других разработчиков.

Почему важно писать чистый код:

✔️Высокое качество кода: Обдумывая код и стараясь сделать его максимально чистым, вы автоматически улучшаете его качество.

✔️Удобочитаемость: Чистый код проще для понимания, что облегчает работу другим разработчикам.

✔️Лёгкость поддержки: Чистый и понятный код легче поддерживать, так как снижается риск ошибочных изменений.

✔️Самодокументирование: Чистый код может не требовать дополнительных комментариев, так как он уже говорит сам за себя.

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

✔️Простота для новых разработчиков: Новым членам команды проще разобраться в чистом коде, что ускоряет их адаптацию.

Простые техники для написания чистого кода:

🔸Соблюдение стандартов и соглашений: Следуйте общепринятым стандартам (например, PSR-12), а также рекомендациям вашей команды.

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

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

🔸Пространство для кода: Добавляйте отступы между блоками кода для улучшения его читаемости.

🔸Ранний выход, отсутствие else, отрицательные проверки: Эти подходы помогают упростить логические блоки и делают код более читаемым.

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

🔸Минимизация вложенности: Старайтесь избегать глубоких вложенных структур, чтобы код не становился запутанным.
  • 👍 7
  • 🥱 3
Post #4759 2.97K

Forwarded from Proglib.academy | IT-курсы

💀 Как гарантированно провалить собеседование: 10 верных способов

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

Чтобы не завалить собеседование — забирайте наш курс:
🔵 Базовые модели ML и приложения

🔗 Ссылка на статью
  • 🤩 1
Post #4757 2.95K
Состояние дженериков и коллекций

На сайте PHPFoundation вышла интересная статья, которая посвящена внедрению дженериков. В ней рассматриваются различные подходы к этой проблеме и их текущее состояние.
thephp.foundation State of Generics and Collections The PHP Foundation — Supporting, Advancing, and Developing the PHP Language
  • 👍 9
Post #4756 3.19K
Как хранить координаты точки на карте в БД?

Рассмотрим несколько возможных подходов:

1. Хранение отдельных полей с широтой и долготой:
- Создайте две числовые колонки в таблице БД, например, «latitude» и «longitude», представляющие широту и долготу соответственно.
- Для каждой точки, сохраните ее координаты в эти поля.
- При поиске точек на карте, вы можете использовать операторы сравнения или функции, поддерживаемые БД, для поиска точек в определенном радиусе или в пределах определенной географической области.

2. Использование географических типов данных:
- Некоторые реляционные БД, такие как MySQL с расширением Spatial, PostgreSQL с расширением PostGIS или SQLite с поддержкой расширения SpatiaLite, предоставляют специальные типы данных для работы с географическими объектами.
- Создайте колонку с типом данных для хранения географической информации, например, тип «Point», который позволяет хранить точку с заданными координатами.
- Сохраняйте информацию о точках на карте в этой колонке.
- Используйте функции и операторы, поддерживаемые соответствующим расширением БД, для выполнения географических запросов, таких как поиск точек в определенном радиусе или внутри границ определенного полигона.

#вопросы_с_собеседований
  • 👍 17
  • 🤔 2
  • ❤ 1
Post #4755 3.36K
#memes
  • 😁 39
  • 🤩 2
Post #4753 2.92K
Топ модулей для распознавания рекапчи на Python, Node js и PHP

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

Был проведен анализ рынка модулей для распознавания капчи, и на основе этого составлен субъективный топ модулей для трех популярных языков программирования.
Хабр Топ модулей для распознавания рекапчи на Python, Node js и PHP В наш век автоматизации большинство решений можно найти в свободном доступе, и я говорю сейчас не про решение задач по математике, а чуть более сложные задачи, типа парсинга данных, и как в нашем...
  • 👍 5
Post #4752 2.8K
Эта статья посвящена потенциальным уязвимостям, связанным с использованием слабого сравнения (==) в PHP. В отличие от строгого сравнения (===), слабое сравнение не учитывает типы данных и может привести к непредсказуемым результатам, что делает код уязвимым для атак.

PHP Loose Comparison (Слабое сравнение в PHP)

Слабое сравнение происходит, когда два значения сравниваются оператором ==, который не проверяет типы данных. PHP пытается привести сравниваемые значения к общему типу перед сравнением, что может приводить к неожиданным результатам. Например, строка 'string' при сравнении с true будет считаться эквивалентной true.

Уязвимые сценарии

Автор приводит два примера, где слабое сравнение может стать причиной серьезных проблем:

✔️Небезопасная система авторизации:

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

✔️Небезопасная авторизация с использованием switch:

В этом примере хакер может получить доступ к привилегиям администратора, просто подставив true в качестве значения $_POST['user_role'], так как switch-case также использует слабое сравнение.

Смягчение уязвимостей

Чтобы избежать таких проблем, рекомендуется использовать строгое сравнение (===), которое проверяет и значение, и тип данных. Также, начиная с PHP 8.0, можно использовать конструкцию match, которая работает как switch, но использует строгое сравнение, что делает код более безопасным.
  • 👍 15
  • 😁 7
  • 🔥 2
  • ❤ 1
  • 🌚 1
Post #4751 2.75K
#дайджест новостей по PHP за неделю:

🔎Стратегии предварительной выборки активов с Vite в Laravel 11.21 — На этой неделе команда Laravel выпустила версию 11.21, которая включает стратегии предварительной выборки активов для Vite, удобный метод принудительного уничтожения моделей с мягким удалением, обновления помощников для тестирования и многое другое.

🔎Symfony 7.1 с новыми возможностями

🔎PHP 8.4.0 Beta 3 теперь доступен для тестирования — Команда PHP рада сообщить о выходе PHP 8.4.0, Beta 3. Это первая бета-версия, продолжающая цикл выпуска PHP 8.4, примерный план которого указан в PHP Wiki.

🔎Неделя Symfony #921 (19-25 августа 2024 года) — На этой неделе в грядущей версии Symfony 7.2 была добавлена возможность рендеринга блока Twig с атрибутом Template, улучшен Serializer с конвертером имен из змеиного регистра в верблюжий, а также добавлена поддержка новых операторов в компоненте ExpressionLanguage.
  • 👍 4
  • ❤ 2
Post #4750 3.39K
Топ-5 стратегий кэширования

➡️ Реальное использование:

🔹 Cache Aside + Write Through: обеспечивает согласованную синхронизацию кэша/БД, позволяя при этом осуществлять контроль заполнения кэша во время чтения. Немедленные записи в базу данных могут нагружать БД.
🔹 Read Through + Write Back: абстрагирует БД и хорошо справляется с потоком трафика записи, задерживая синхронизацию. Однако это сопряжено с риском большей потери данных, если кэш выйдет из строя до синхронизации буферизованных записей с базой данных.

👉 Источник
  • 👍 6
Post #4749 3.02K
Привет, друзья! 👋

Мы готовим статью о прокрастинации среди разработчиков и хотим узнать ваше мнение! 🤓 Поделитесь своим опытом, а самые интересные и полезные советы мы обязательно включим в нашу статью.
❓ Какая самая необычная причина прокрастинации у вас была в работе над проектом?
❓ Какой метод борьбы с прокрастинацией оказался для вас наиболее эффективным?
❓ Как вы справляетесь с когнитивной перегрузкой во время работы над сложными задачами?

Не стесняйтесь делиться своими историями и лайфхаками в комментариях! 💬 Ваш опыт может помочь другим разработчикам справиться с прокрастинацией. Спасибо за участие!
  • 👍 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →