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

Older Posts 20 shown
Post #5900 2.11K
#memes
  • 😁 47
  • 🌚 7
Post #5899 2.42K
🐞 Тренировка по дебагу

Если ваши коллеги пишут идеальный код, пора развивать навыки поиска ошибок.

Чтобы стать мастером отладки, важно не только понимать, как писать правильный код, но и уметь находить и исправлять ошибки, которые могут скрываться даже в самых «идеальных» решениях.

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

Напиши функцию на PHP, которая <ДЕЛАЕТ ЧТО-ТО>. Включи как минимум три различных ошибки, которые разработчик может часто допускать при реализации этой функции. Ошибки должны приводить к некорректным результатам или потенциальным ошибкам времени выполнения.


С каждым багом вы становитесь только сильнее.

Библиотека пхпшника
  • 😁 3
Post #5898 2.29K
📚 Генераторы и их мифы: как экономия памяти на самом деле работает

Недавняя статья о «ленивых вычислениях в PHP» поднимала популярную тему: генераторы экономят память. Однако, как это часто бывает, под видом оптимизации скрывается простая подмена понятий.

🔍 Про генераторы
Генераторы — полезный инструмент в программировании, который активно используется, например, в Symfony. Они помогают решать задачи от управления ходом выполнения программы до добавления элементов в массив «на лету». Однако утверждение, что генераторы экономят память, — это миф. Реальная экономия памяти происходит благодаря принципу «чтение данных по одной записи», а генератор всего лишь маскирует обычный цикл и упрощает код.

🛠️ Как это работает на практике
Генератор помогает писать более чистый и понятный код, но сам по себе он не освобождает память. Это работает только в случае, когда код уже использует массивы — генератор позволяет их заменить, не теряя в производительности. Но не нужно воспринимать это как «магическую» экономию памяти. В действительности, экономия происходит за счет потоковой обработки данных.

📝 Про статью
Статья предлагает пример «реального кейса из продакшена», который на самом деле лишь подтверждает подмену понятий. Автор рассказывает, как генераторы могут сократить использование памяти, но на деле это не так. Интересно, что после критики статьи автор изменил нарратив и признал, что экономия памяти достигается через стриминг данных.

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

👉 Хабр

Библиотека пхпшника
  • ❤ 5
  • 👏 2
Post #5897 2.44K
🚦 composer/semver — библиотека для работы с версиями

Эта библиотека стоит за самим Composer и отвечает за то, чтобы корректно сравнивать версии пакетов и интерпретировать условия вроде ^7.4 || ^8.0.

Что умеет:
📌 Проверять, подходит ли версия под ограничение
🔢 Сортировать список версий по семантическим правилам
🛠️ Разбирать сложные условия (>=, <=, ||, -dev, beta) так же, как это делает Composer.

Зачем это вам?
⚙️ Можно встроить в свои скрипты проверки зависимостей.
🧪 Удобно для CI/CD — проверять версии PHP или расширений.
🚀 Используется самим Composer, так что поведение будет на 100% совпадать.

🔗 Github

Библиотека пхпшника

#инструменты
  • ❤ 1
Post #5893 2.59K
  • 🥱 7
  • ❤ 1
Post #5892 2.4K
#memes
  • ❤ 11
Post #5891 2.4K
🚀 PHP Enums: когда стоит, а когда нет

Enums в PHP — это не просто «ещё один класс», а особый тип данных, который позволяет жёстко зафиксировать набор возможных значений. Это повышает надёжность кода и избавляет от лишних проверок вроде in_array() или громоздких switch-конструкций.

Но ✋ не спешите вставлять их повсюду:
❌ Если набор значений часто меняется или расширяется пользователями/третьими системами.
❌ Если список тривиален и не планируется расти.
❌ При рефакторинге легаси — Enums не для того, чтобы заменить всё подряд.

🔑 Где Enum действительно уместен
Фиксированные списки (статусы поста, роли пользователей, сетевые состояния).
Там, где нужна строгая типизация и меньше защитного кода.
В DDD — как часть доменной модели (например, value objects).

⚡ Бонусы:
Меньше ручных проверок и исключений.
Код становится чище, предсказуемее.
Удобнее работать с типами при сериализации, хранении в БД и локализации.

💡 Практика:
Для хранения в базе → используйте backed enum (enum UserRole: string).
Для сложной логики или локализации → лучше чистый enum с методами (label()).
Договоритесь в команде о единых правилах (например, всегда использовать метод label()).

🔗 Читать статью

Библиотека пхпшника
  • 🔥 2
Post #5890 2.16K
🔥 Последняя неделя перед стартом курса по AI-агентам

Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место

На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах

📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями

И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»

Промокод на 5.000₽: LASTCALL

👉 Курс здесь
Post #5889 2.24K
🎯 Команда дня: Сжатие и минификация CSS/JS через Node или PHP

📌 Команда (Node.js + Terser для JS):

npx terser src/app.js -o dist/app.min.js -c -m

💡 Команда минифицирует ваш JavaScript, сокращает код и уменьшает размер файлов, используя Terser.

📌 Команда (Node.js + CleanCSS для CSS):

npx clean-css-cli -o dist/style.min.css src/style.css

💡 Минифицирует CSS, удаляя пробелы, комментарии и упрощая записи, что ускоряет загрузку страницы.

🔍 Зачем это нужно?
🔹 Ускорение загрузки страниц: Меньший размер JS и CSS сокращает время передачи данных.
🔹 Оптимизация производительности: Минифицированный код обрабатывается браузером быстрее.
🔹 Чистый продакшн: Убираются ненужные пробелы и комментарии, что делает код компактным.

⚙️ Дополнительные опции Terser:
-c или --compress: Сжимает код, удаляя лишние конструкции.
-m или --mangle: Переименовывает переменные и функции, уменьшая размер.
--source-map: Генерирует source map для удобного дебага минифицированного кода.
Пример с source map:

npx terser src/app.js -o dist/app.min.js -c -m --source-map

⚙️ Дополнительные опции CleanCSS:
--compatibility — задаёт совместимость с браузерами.
--level — уровень оптимизации (1 или 2).

Пример:

npx clean-css-cli -o dist/style.min.css src/style.css --level 2

💡 Советы:
Для больших проектов удобно автоматизировать минификацию через npm scripts или Gulp/Webpack.

Минифицируйте только для production, чтобы не усложнять отладку на development.

Используйте source maps для удобного дебага минифицированного кода.
  • ❤ 1
  • 👍 1
Post #5888 2.31K
⭐️ Что спрашивать на собесе у HR

На собеседовании обычно всё внимание сосредоточено на вас: опыт, проекты, навыки. Но важно помнить — интервью это обоюдный процесс. Вы тоже выбираете компанию. И тут возникает вопрос: а что спрашивать в ответ?

Вопросы к HR:

• Как устроен процесс адаптации новых сотрудников?
• Какие возможности для роста есть у специалистов на моей позиции?
• Как компания относится к переработкам и work-life balance?
• Есть ли внутреннее обучение или компенсация внешних курсов?

Вопросы к будущей команде:

• Как проходит рабочий день: митинги, планирования, коммуникация?
• Как распределяются задачи и кто принимает решения по приоритетам?
• Как команда решает конфликты или технические споры?
• Чем гордятся в проекте, а что считают слабым местом?

👉 Какие вопросы вы задаёте на собеседованиях?

🐸Библиотека пхпшника

#междусобойчик
  • ❤ 2
Post #5887 2.19K

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

🎮 Добавь интерактива в свой contribution graph

GitHub Breakout — GitHub Action, который превращает твои коммиты в SVG в стиле Breakout, ежедневно обновляется и переключается между светлым/тёмным режимом 🤯

Это мы используем

🐸 Библиотека программиста
  • 🥰 3
Post #5886 2.37K
#memes
  • 😁 10
Post #5885 2.62K
Берём под контроль TODO-шки в коде php

Проблема со сложностью управления TODO/FIXME комментариями в коде очень стара. Ей больше 50 лет. Дошло до того, что в некоторых проектах начали запрещать их со словами: «или исправь сразу или не создавай мусор». Вот о том как можно автоматизировать управление ими и превратить из мусора в полезный инструмент и пойдет речь.

🔗 Хабр
Post #5884 2.64K
composer/pcre — Библиотека-обертка для стандартных функций

Это обёртка над стандартными функциями PHP preg_*, которая:

✅ Делает вызовы функций регулярных выражений безопаснее и удобнее.
✅ Генерирует исключения при ошибках (вместо того, чтобы просто возвращать false и молчать).
✅ Возвращает более предсказуемые результаты (например, всегда массив строк, а не false|null).
✅ Упрощает написание кода и улучшает читаемость — не нужно постоянно проверять preg_last_error() или === false.

Для чего нужна
📦 В первую очередь библиотека используется внутри Composer, чтобы избежать неожиданных багов при работе с регулярками.
👨‍💻 Её можно использовать и в своих проектах, если хотите работать с регулярными выражениями в более строгом и типобезопасном стиле.

🔗 Github

Библиотека пхпшника

#инструменты
  • ❤ 4
  • 👍 2
  • 🔥 1
  • 🌚 1
Post #5883 2.34K
Единый код валидаторов на фронте и бэке (PHP + FFI + Go + JS)

Когда фронт и бэк на разных языках (например, JS + PHP), часто приходится писать одинаковые валидаторы дважды. Это не только лишняя работа, но и риск ошибок, когда логика валидации на фронте и бэке не совпадает.

🎯 Решение: Используем FFI (Foreign Function Interface) для запуска JavaScript-кода на PHP с помощью Go. Это позволяет использовать один и тот же валидатор и на фронте, и на бэке, обеспечивая синхронизацию логики.

✅ Преимущества: Один код для валидации на двух уровнях, меньше ошибок и проще поддержка.

🚨 Недостатки: Может быть немного медленно из-за FFI и проблемы с поддержкой юникодных символов в Go.

🔧 Хабр

Библиотека пхпшника
  • 😁 21
  • ❤ 3
  • 😢 1
  • 🌚 1
Post #5882 2.18K
How to: Использование SQLite в продакшене с Laravel

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

Преимущества использования SQLite:

Легкость в настройке: Для работы SQLite достаточно лишь одного файла, что упрощает резервное копирование и перенос данных.

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

Простота использования: Для большинства небольших и внутренних приложений SQLite может быть быстрее и проще, чем более сложные решения, такие как MySQL.

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

В статье рассмотрены основные практические советы для использования SQLite с Laravel, включая улучшение производительности с помощью режима WAL и особенности работы с транзакциями.

👉 Читать статью

Библиотека пхпшника
  • ❤ 1
Post #5881 2.17K
Иногда реально ощущение, что нас держат в Матрице.

Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё.

❗ Сегодня последний день промокода Lastcall (−5000 ₽).
Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы.

Кто готов вырваться из симуляции и ворваться в сезон найма?

👾 — я уже в команде Нео
👍 — хочу красную таблетку
🤔 — пока думаю, но интересно

Забирай полный комплект для ML-разработки: Python + Математика + Машинное обучение.
🔥 Скидка 30% действует только до 9 сентября → забираем себе
  • 🌚 1
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 →