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 #5136 · Back to latest

Older Posts 20 shown
Post #5135 2.46K
❗Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
job.proglib.io Вакансии в медиа «Библиотека программиста»‎ Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
  • ❤ 1
Post #5134 2.57K
Знаете ли вы, что в Laravel есть трейт Prunable, позволяющий удалять записи, в том числе и мягко удаленные, на основе заданного вами условия? 🚀
  • 👍 20
  • 🔥 1
  • 👾 1
Post #5133 2.77K
Оптимизированная ленивая загрузка в Symfony Doctrine для повышения производительности

Во время работы над проектом Symfony возникла проблема с производительностью из-за неожиданного поведения Doctrine. В одной из сущностей была настроена связь OneToOne с параметром fetch="LAZY», чтобы загружать связанные данные только при необходимости. Однако Doctrine загружал связанные сущности заранее, что приводило к избыточной нагрузке.

Проблема
Пример: сущность Store имела связь OneToOne с сущностью StoreDetail, содержащей метаданные о магазине. Даже при включённой ленивой загрузке Doctrine автоматически добавлял JOIN, что влияло на производительность:

Усложнённые запросы: ненужные операции JOIN увеличивали нагрузку на базу данных.
Избыточное использование памяти: данные загружались в память даже при их ненужности.
Замедление работы API: запросы, возвращающие списки магазинов, замедлялись из-за лишних данных.

Решение
1. Перепроектирование связи
Связь была преобразована из OneToOne в ManyToOne. Теперь StoreDetail ссылался на Store, что позволило Doctrine корректно применять ленивую загрузку.

2. Обновление схемы базы данных
С помощью Doctrine Migrations была изменена структура базы данных: старый внешний ключ для связи OneToOne был удалён, и добавлен ключ для ManyToOne.

3. Корректировка запросов
Теперь детали магазина загружаются только по необходимости

4. Профилирование
С помощью инструментов Symfony была подтверждена оптимизация. Теперь связанные сущности не загружаются без явного запроса.

Результаты
🟢Скорость выполнения запросов: уменьшилась в среднем на 35%.
🟢Использование памяти: значительно сократилось, так как избыточные данные больше не загружаются.
🟢Время ответа API: улучшилось на 20–30% для запросов с большими объёмами данных.

👉Ссылка на Medium
  • 🥱 10
  • 👍 3
  • 🤔 3
  • ❤ 1
Post #5132 2.49K
Post #5131 2.08K

Forwarded from Библиотека программиста

👑🧟 Король спама: насколько сильно ты бесишь коллег в рабочих чатах

Признайся, ты тоже иногда отправляешь голосовые сообщения из маршрутки? Или может быть, ты тот самый человек, который пишет «Привет» и исчезает на час? Всего 10 вопросов, которые помогут понять, являешься ли ты мастером цифрового этикета или главным спамером офиса. Готов узнать правду?

👉 Пройти тест
  • ❤ 2
  • 👍 1
  • 😁 1
  • 👾 1
Post #5130 2.68K
🙇‍♂️ Отобрать одного разраба на стек PHP + Vanilla JS после нескольких десятков созвонов-собеседований — вот они, современные реалии.

Почему выпускники курсов присылают резюме пачками, но выхлоп от обучения собственных юристов компании оказывается выше, чем от собеседований по вакансии?

— рассказывает Виталий Квитковский, руководитель отдела разработки и DevOps.

Под катом вас ждет:

☑️ Кратко о структуре собеседования.
☑️ Разбор задач.
☑️ Чего обычно не хватает джунам и как это добрать?
☑️ Что такое базовое программирование?
☑️ Как этому научиться?

👉 Читать
  • 👍 5
  • 😁 2
Post #5129 2.72K
💬 Пишите ли вы тесты на свой код?

❤️ — всегда пишу тесты, которые покрывают важные места
👍 — иногда пишу, зависит от проекта
🥱 — еще не разбирался с тестами
  • 👍 84
  • 🥱 60
  • ❤ 40
  • 🎉 3
  • 👾 2
Post #5128 3.04K
Знаете ли вы, что Laravel предоставляет метод missing() для настройки поведения привязки модели маршрута по умолчанию, когда модель не найдена? 🚀
  • 👍 12
  • 😁 7
  • 👾 1
Post #5127 3.98K
Xdebug, работающий с Docker и PHP 8.4, за одну минуту

Настройка Xdebug может показаться сложной, но на самом деле её можно выполнить быстро, особенно если использовать Docker. В этой статье показано, как за несколько минут настроить Xdebug в проекте на Laravel с использованием PHP 8.4 и Xdebug 3.4.0.
Laravel News Get Xdebug Working With Docker and PHP 8.4 in One Minute - Laravel News Xdebug has a history of being complex to get going, but I am here to show you how to use it in under a minute with Docker in a Laravel project.
  • 👍 4
  • ❤ 2
Post #5126 2.88K
Как передаются переменные (по значению или по ссылке)?

В PHP переменные могут передаваться как по значению, так и по ссылке.

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

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

#вопросы_с_собеседований
  • 👍 13
  • 🥱 3
Post #5124 2.72K
#memes
  • 😁 34
  • 🥱 2
  • 👍 1
Post #5123 3K
Большой пополняемый список знаний, в который включены теории, законы, принципы, паттерны разработки и многое другое, что однозначно будет полезно знать каждому разработчику.
GitHub GitHub - dwmkerr/hacker-laws: 🧠 Laws, Theories, Principles and Patterns for developers and technologists. 🧠 Laws, Theories, Principles and Patterns for developers and technologists. - dwmkerr/hacker-laws
  • 👍 3
Post #5122 2.61K
#хочу_спросить

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

Подделка межсайтовых запросов (CSRF) — это уязвимость веб-безопасности, позволяющая злоумышленнику обманом заставить аутентифицированного пользователя выполнить нежелательные действия на сайте, на котором он в данный момент находится под своим логином. Атака осуществляется путем злоупотребления доверием сайта к браузеру пользователя.
DEV Community CSRF Protection in PHP What is CSRF? Cross-Site Request Forgery (CSRF) is a web security vulnerability that...
  • 👍 2
Post #5120 2.54K
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Post #5119 2.59K
Пример HTTP-сервера на PHP с использованием файберов

PHP часто подвергается критике за отсутствие встроенных возможностей для создания конкурентных приложений. В версии 8.1 был добавлен класс Fiber, который, согласно RFC, должен упростить создание конкурентных приложений. Однако, материалов, демонстрирующих использование данного функционала для построения приложений практически нет, напротив, говорится, что файберы — это функционал, предназначенный для использования разработчиками фреймворков и приводятся какие-то малоинформативные отрывки кода. В этой статье будет продемонстрирован концептуальный пример конкурентного приложения на PHP с использованием файберов.
Хабр Пример HTTP-сервера на PHP с использованием файберов Платформа PHP часто подвергается критике за отсутствие встроенных возможностей для создания конкурентных приложений. В версии 8.1 был добавлен класс Fiber , который, согласно RFC , должен упростить...
  • 👍 8
  • 🔥 1
Post #5117 2.32K
5 способов оптимизации производительности приложений Symfony

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

Оптимизация запросов к базе данных
Медленные запросы замедляют отклик приложения и создают нагрузку на сервер. Чтобы этого избежать:

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

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

Кэширование для ускорения работы
Кэширование снижает нагрузку на сервер и ускоряет отклик приложения.

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

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

Оптимизация настроек Symfony для production
Некоторые изменения в конфигурации позволяют заметно повысить производительность:

🔸В режиме production отключите отладку и сократите количество логов, чтобы снизить нагрузку на процессор.
🔸Включите PHP-кэширование (OPcache), чтобы ускорить выполнение скриптов за счет их предварительной компиляции.
🔸Настройте загрузчик классов, чтобы ускорить процесс запуска приложения.
Эти меры помогают снизить затраты на системные ресурсы и ускоряют загрузку страниц.

Анализ и исправление узких мест
Профилирование помогает выявить скрытые проблемы производительности.

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

Применяя эти данные, можно устранить «узкие места», которые тормозят работу приложения.

Управление статическими ресурсами
Эффективная работа с файлами CSS, JavaScript и изображениями значительно ускоряет загрузку страниц.

🔸Уменьшайте размер файлов через минификацию, чтобы ускорить их загрузку.
🔸Объединяйте файлы, чтобы сократить количество запросов к серверу.
🔸Используйте «ленивую загрузку» для изображений и других ресурсов, которые не нужны сразу.
🔸Для хранения и доставки ресурсов применяйте CDN, чтобы снизить нагрузку на сервер.

Эти меры заметно улучшают пользовательский опыт.
  • 🥱 5
  • 👍 4
Post #5116 2.09K
Самые полезные каналы для программистов в одной подборке!

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

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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 запрещена на территории РФ
Post #5115 2.44K

Forwarded from Библиотека собеса по PHP | вопросы с собеседований

Расскажите о regexp.

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

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

preg_match_all(): Похожа на preg_match(), но находит все совпадения в тексте.

preg_replace(): Заменяет все вхождения шаблона регулярного выражения на заданную строку.

preg_split(): Разделяет строку на подстроки с помощью регулярного выражения в качестве разделителя.

preg_quote(): Экранирует все специальные символы в строке, чтобы они могли быть использованы в регулярном выражении без изменения их значения.

Это лишь базовые примеры использования регулярных выражений в PHP. Регулярные выражения очень мощный инструмент, и для их полного понимания рекомендуется ознакомиться с документацией PHP и углубиться в изучение регулярных выражений в целом.
  • 👍 6
  • 😁 1
Post #5114 2.75K
#memes
  • 😁 46
  • 👏 2
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 →