Библиотека пхпшника | 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
Настройка среды разработки с помощью Laravel Sail (Docker)

Здесь объясняется, как настроить среду разработки для Laravel с помощью Laravel Sail, не устанавливая среду локально на ваш компьютер.
👍5🌚1
Берём под контроль TODO-шки в коде php

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

Мы готовим статью о важных soft skills для сеньоров, тимлидов и других старших IT-специалистов. Нам очень интересно узнать ваше мнение! Поделитесь своими мыслями, ответив на следующие вопросы:

Какой из перечисленных в статье soft skills вы считаете самым важным для успешной работы в IT? 🤔

- Умение говорить «нет» 🚫
- Давать конструктивный фидбэк 💬
- Брать на себя ответственность 💪
- Общаться с токсичными людьми 🧘
- Доводить процессы до завершения
- Организовывать эффективные совещания 📊
- Импровизировать на публике 🎭
- Сохранять спокойствие в сложных ситуациях 😌

Какой дополнительный soft skill вы бы добавили в этот список? 🆕
Как вы развиваете свои soft skills? 📈

Поделитесь своими мыслями и опытом в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙏
👍2👏1
💻 15 продвинутых лайфхаков для работы в терминале Linux

Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.

👉 Ссылка
👍4😢1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🍒 Подборка лучших статей «Библиотеки программиста» за июль: сохраняй в заметки, чтобы не пропустить #самыйсок

🤖 Создание собственного ИИ-бота на Python за 33 строчки кода
🆚 Docker или Podman: что лучше подойдет для вашего проекта
🏅🏃 Кто такие Junior, Middle, Senior и чем они различаются между собой
🎓 Как я перешел из математиков в аналитики данных
🏝️ Решаем очень сложную SQL-задачу об островах и проливах
🚩 Как понять, что с компанией точно что-то не так: 11 красных флагов на собеседовании
🤤 Жадные алгоритмы: все, что нужно знать для собеседования
💬😊 Как найти общий язык с коллегами на новой работе: 11 простых советов
🤔 Инварианты: проектирование эффективных алгоритмов
🐬🐘 PostgreSQL или MySQL: что лучше подойдет для вашего проекта
🐛 5 признаков неопытного разработчика: как избежать типичных ошибок и ускорить профессиональный рост
🏃 Самоучитель по Go для начинающих. Часть 14
🆕 JavaScript эволюционирует: новые методы и функции для эффективной разработки
4
Итераторы PHP для прохода по структурам данных

В этом туториале рассказано про итераторы PHP и то, как использовать их для работы с различными структурами данных.
🔥5👍2🎉2😁1🥱1
🕸 7 HTML-трюков, которые вам нужно знать

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

🔗 Читать статью
🔗 Зеркало
👍1
📣 Многие встроенные классы Laravel имеют метод под названием «macro». Например, Collection, Str, Arr, Request, Cache, File и так далее.

Вы можете определить собственные методы для этих классов, подобно этому ☝️
15😢4🌚3👾3
Какая разница между MyISAM и InnoDB? В каких случаях и что лучше применять?

MyISAM и InnoDB — это два самых распространенных типа таблиц в MySQL. Отличия между ними заключаются в следующем:

1. Система хранения данных: MyISAM использует таблицы с фиксированной длиной строк, в то время как InnoDB использует таблицы с переменной длиной строк. Это означает, что MyISAM обычно быстрее при выполнении операций чтения, а InnoDB более эффективен при выполнении операций записи.

2. Транзакции и целостность данных: InnoDB поддерживает ACID-транзакции (Atomicity, Consistency, Isolation, Durability — Атомарность, Согласованность, Изолированность, Устойчивость). Это означает, что в случае сбоя данных, InnoDB может откатить все изменения, сохраняя целостность данных. MyISAM не поддерживает транзакции и не обеспечивает такую же уровень целостности данных.

3. Блокировка таблиц: MyISAM блокирует всю таблицу во время выполнения операции записи, в то время как InnoDB блокирует только строки, с которыми происходит операция. Это означает, что InnoDB обычно более подходит для многопользовательских приложений, где множество операций происходит одновременно.

4. Внешние ключи: InnoDB поддерживает внешние ключи (foreign keys), что облегчает поддержку связей между таблицами и обеспечивает целостность данных. MyISAM не поддерживает внешние ключи.

Итак, в каких случаях что лучше использовать:

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

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

#вопросы_с_собеседований
👍15🥱8
Поддержка HTML 5 в PHP 8.4

В PHP 8.4 появится парсер, совместимый с HTML 5. Также подчеркивается, что, несмотря на давние недостатки PHP и отсутствие надлежащей поддержки HTML 5, эта новая функция представляет собой значительное улучшение. Новый парсер полностью совместим с предыдущими версиями и расположен в новом пространстве имен под классом \Dom\HTMLDocument, в то время как старый класс \DOMDocument остается в основном без изменений, теперь расширяя абстрактный класс \Dom\Document.

Ключевые особенности нового парсера включают:

🔸Обратная совместимость: Старый класс \DOMDocument сохранен с незначительными изменениями, в то время как новый парсер, совместимый с HTML 5, представлен в отдельном классе.

🔸Статические конструкторы: Новая реализация использует статические конструкторы (например, createEmpty, createFromFile и createFromString), вместо вызова методов на вновь созданных объектах.

🔸Новые объекты DOM: Использование нового парсера приводит к созданию других типов объектов значений (например, \DOM\Node вместо \DOMNode), что отражает различия между старой и новой реализациями.
🔥7👍2🎉2🥱21
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍1
#дайджест #phpdevjob

Вакансии PHP разработчиков уровня Junior

▪️PHP Developer
Санкт-Петербург. KITFORT — производство и продажa бытовой техники нового поколения
Подробнее

▪️PHP-Developer
Воронеж. ОФИСМАГ — обеспечении потребителей товарами и услугами для работы и учёбы
Подробнее

Вакансии PHP разработчиков уровня Middle

▪️Backend разработчик PHP
Набережные Челны. PROFFIT GO — цифровая экосистема решений для управления автопарками
Подробнее

▪️PHP-разработчик
Самара. АИ Технолоджис — программные решения под индивидуальные запросы
Подробнее

Вакансии PHP разработчиков уровня Senior

▪️Разработчик PHP
Норильск. MACRO — разработка IT-решений для строительной отрасли
Подробнее

▪️PHP-программист
Удаленка. Alef — разработка ПО
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
😁61🤔1
Улучшенная «ленивая» загрузка

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

В Tempest используются типизированные свойства, чтобы упростить работу с отношениями между моделями. Например, тип свойства Author сам по себе указывает на отношение «принадлежит», а аннотация /** @var Chapter[] $chapters */ обозначает отношение «имеет много». Модели в этом фреймворке не связаны напрямую с базой данных, что позволяет сохранять их в различных форматах, таких как JSON, Redis или XML.

Важной частью проекта стал механизм отложенной загрузки данных (lazy loading). По умолчанию ORM не загружает отношения при извлечении данных, чтобы избежать проблем с производительностью, таких как проблема n+1 запросов. Если попытаться обратиться к незагруженному отношению, система выдаст ошибку вместо того, чтобы автоматически выполнять дополнительные запросы, как это делает Laravel.

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

Завершая, разработчик размышляет о том, как новая функциональность, предложенная в Lazy Objects для PHP 8.4, может значительно упростить реализацию подобных механизмов в будущем.
🥱54👍1