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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Какая система типов используется в PHP? Опишите плюсы и минусы.

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

Плюсы:

✔️Гибкость: Динамическая типизация делает PHP очень гибким языком программирования, позволяя быстро писать и изменять код.

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

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

✔️Меньше кода: Нет необходимости явно приводить типы или выполнять проверки на соответствие типов, что может сократить объем кода.

Минусы:

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

Уменьшение производительности: Проверка типов во время выполнения может негативно сказаться на производительности приложения, особенно в больших и сложных проектах.

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

Трудности в документации и отладке: Из-за динамической типизации может быть сложно определить типы переменных и их ожидаемое поведение, что может затруднить документирование кода и отладку ошибок.

#вопросы_с_собеседований
10
В Symfony инструкции не всегда достаточны, но Symfony имеет интеграцию с Doctrine ORM, что круто! 🎉

🛠️ Проблема:
Как выполнить запросы к БД на основе данных формы?

📋 Решение:
Предлагается использовать объект типа DTO (DataTransferObject), созданный на основе данных формы, чтобы передавать структурированные данные в методы запросов. Это делает код более надежным и предсказуемым.💼

Далее показывается пример создания формы и обработки данных из неё в контроллере Symfony. Автор использует созданный объект DTO для передачи данных в метод запроса репозитория.

Затем переходим к рассмотрению метода findByFilter в репозитории событий (EventRepository). Этот метод выполняет запрос к базе данных на основе данных из формы, применяя различные фильтры в зависимости от выбранных пользователем параметров. Автор обсуждает компактность и эффективность этого метода, а также его возможность повторного использования благодаря отделению от остального кода.🛠️

🔧 Преимущества:
Код становится более читаемым и надежным 📖
Запросы становятся короткими, эффективными и переиспользуемыми 💪
Можно выполнять стандартные проверки кода на SQL-запросах 👨‍💻

Короткие, эффективные и переиспользуемые запросы к БД — круто! 🚀
🥱7👍32
Почему FilamentPHP — это хорошее решение для создания CMS

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

Конечно, в этом случае можно взять готовое решение вроде Bitrix. Однако порой эти огромные комбайны оказываются действительно слишком уж огромными, и для управления тремя с половиной табличками проще написать свое решение.
🥱133
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
2
4 сайта с бесплатными шаблонами для Laravel

HTMLrev: Огромная коллекция бесплатных HTML-шаблонов, в том числе множество для панелей управления Laravel. Часто обновляются и позволяют легко просматривать по категориям.

Creative Tim: Известный своими готовыми к использованию шаблонами, Creative Tim предоставляет UI-киты, административные панели и системы дизайна для нескольких архитектур, включая Laravel. Их шаблоны поставляются с высококачественным кодом и документацией.

ThemeSelection: Предлагает как бесплатные, так и платные UI-киты и шаблоны панелей управления. Хотя доступно всего несколько бесплатных вариантов, они отличаются замечательным качеством и сравнимы с премиальными пакетами.

JustBoil: JustBoil специализируется на шаблонах панелей управления для различных библиотек, включая Bulma и Tailwind. Их бесплатные шаблоны профессионально разработаны, написаны и документированы, предлагая множество компонентов для создания панелей управления.
🔥102👍2🌚21
🔍💼 Исследование рынка: 8 наиболее востребованных языков программирования в 2024 году

Результаты исследования рынка IT-вакансий, проведенного DevJobsScanner. Были проанализированы 14 миллионов объявлений и выявлены 8 наиболее востребованных языков программирования.

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

#почитать
1
💬Расскажите, какой из своих проектов вы могли бы назвать бесполезным? Или поделитесь примером такого проекта, который наблюдали со стороны.

Ждём вас в комментариях👇

#интерактив
😁9
Как создать LLM чат на WebSocket с помощью llama.cpp

Туториал описывает процесс настройки функционала чата с использованием Large Language Model (LLM) в веб-приложении.
3
Что такое «PHP Extension Community Library» (PECL), и как её использовать для расширения функциональности PHP?

Библиотека сообщества расширений PHP (PECL) служит репозиторием для PHP-расширений. PHP-расширения представляют собой модули, написанные на C, которые могут быть динамически загружены в PHP для предоставления дополнительной функциональности. Эти расширения могут взаимодействовать с PHP на более низком уровне, чем обычные скрипты PHP, позволяя разработчикам использовать системные ресурсы, взаимодействовать с базами данных и выполнять другие задачи, которые могут быть более эффективно реализованы на языке более низкого уровня.

Цель PECL заключается в предоставлении централизованного места для разработчиков, где они могут делиться и распространять PHP-расширения. Это гарантирует, что разработчики PHP могут легко находить, устанавливать и использовать расширения для расширения возможностей PHP.

Чтобы использовать PECL для расширения функциональности PHP, обычно следуют следующим шагам:

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

Поиск расширений: Просмотрите веб-сайт PECL или используйте команду pecl search, чтобы найти расширения, предоставляющие необходимую функциональность.

Установка расширений: После того как вы нашли нужное расширение, вы можете установить его с помощью команды pecl install, за которой следует имя расширения.

Включение расширения: После установки расширения вам нужно включить его в файле конфигурации PHP (php.ini). Вы можете сделать это вручную, добавив строку вроде extension=имя_расширения.so в файл php.ini, или с помощью команды phpenmod, если вы используете систему с хранилищем расширений и приложений PHP (PEAR)

Перезапуск веб-сервера: После включения расширения необходимо перезапустить веб-сервер (например, Apache или Nginx), чтобы изменения вступили в силу.

Тестирование расширения: Наконец, вы можете протестировать функциональность, предоставляемую расширением, в ваших PHP-скриптах. Вы можете использовать функции или классы расширения, как это указано в его документации.

#вопросы_с_собеседований
👍10
Пользовательские настройки в приложениях Symfony с JBtronics/Settings-Bundle

Это руководство по использованию пакета jbtronics/settings-bundle в Symfony для управления настройками приложения. Основная идея заключается в том, что параметры настроек организованы вокруг классов, что обеспечивает типобезопасность и удобство разработки.
2
Предупреждение для всех, кто использует PHP

Серьёзная уязвимость была обнаружена в GLIBC, что может привести к вмешательству в PHP-сайты по всему миру. Смотрите это в этом видео.
🤔7🥱6🔥21
PHP в 2024 году

В 2024 году значительно вырос интерес к php и здесь описываются причины этого:

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

🔸FrankenPHP, представляющий собой сервер приложений для PHP, написанный на Go, который значительно повышает производительность существующих PHP-приложений.

🔸Успех Laravel и его экосистемы, в том числе инструмента Laravel Livewire, который позволяет создавать интерактивные приложения без использования JavaScript.

🔸Растущий интерес к PHP со стороны разработчиков из других сообществ, таких как JavaScript, и рост экосистемы благодаря Composer и Packagist, которые достигли отметки в 100 миллиардов загрузок.
👍41👏10😁4
Еще один #дайджест новостей по PHP за неделю:

🔎Команда Laravel выпустила v11.5 — улучшение производительности Blade, создание URL-адресов с параметрами запроса и многое другое.

🔎Привязка свойств(Property Hooks) в PHP 8.4 — Property Hooks RFC преодолела важный рубеж, получив подавляющее число голосов «за» — 34, и только 1 голос «против». Это намного выше требуемого большинства в 2/3 голосов, необходимого для принятия решения.

🔎Неделя Symfony #903 (15-21 апреля 2024 г.)
👍71
Мастерство изменения легаси кода

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

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

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

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

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

🟢Преодоление паралича выбора: Слишком много вариантов может привести к параличу выбора. Разбиение задач на меньшие, управляемые шаги может помочь преодолеть этот паралич и способствовать прогрессу.

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

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

🟢Конкретные стратегии обновления: В статье описаны конкретные стратегии обновления различных аспектов устаревших проектов, таких как уровни PHPStan, наборы Rector, типовые объявления и обнаружение неиспользуемого кода.
🌚3👏1🎉1
🦾🧠🏋Качаем мозги к лету!

Все качают пресс, а мы — мозги, чтобы получить крутой оффер, уехать на Бали и больше не быть онлайн 😎

⚡️Распродажа Proglib.Academy: с 24 апреля до 5 мая — скидка 40% на все наши курсы!

➡️ Математика для Data Science 29 990 ₽ 17 994 ₽

➡️ Алгоритмы и структуры данных 35 990 ₽ 21 594 ₽

➡️ Основы программирования на Python 19 990 ₽ 11 994 ₽

Почему мы?

⭐️Курсы разрабатывались при поддержке топовых преподавателей из Яндекса, Сбера, МГУ
⭐️У нас есть менторы, которые поддерживают студентов на каждом этапе
⭐️Мы разбираем задачи с реальных собеседований в крупнейшие компании и готовим к поступлению в ШАД
⭐️Вход с любого уровня: например, на курсе математики сначала освежаем знания из школьной программы

Save the dates!
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1