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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Статистика версий PHP — июль 2023 г.

Регулярный обзор используемых версий PHP на основе данных, которые клиенты отправляют на packagist.org (например, когда они запускают composer update команду). 68,8% клиентов используют PHP 8.*, а на PHP 7.* приходится 29,7%. Медленный, но хороший рост для PHP 8 по сравнению с прошлым годом, когда он составил 59,7%.
Согласно статистике Remi Repository, которая, вероятно, представляет несколько иной сегмент пользователей, 35% пользователей используют PHP 8.* и 63% используют PHP 7.*.
👍61
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📖 ТОП-10 книг, без которых не обойтись ни одному программисту

Мы подготовили для вас подборку из 10 книг, без которых не обойтись ни одному профессионалу в IT. Эти книги станут для вас настольными на долгие годы.

🔗 Основной сайт
🔗 Зеркало
👍133
NativePHP — разработка настольных приложений с помощью PHP

Инструмент Марселя Посиота предоставляет простые API и инструменты для создания кроссплатформенных настольных приложений, как если бы вы создавали обычные веб-приложения.

За кулисами он использует либо Electron, либо Tauri, поэтому «Native» в названии может немного вводить в заблуждение. Но с точки зрения PHP-разработчика, все это красиво упаковано в знакомые инструменты и синтаксис.

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

Вот пример приложения, созданного с помощью NativePHP — simonhamp/cronikl — простой инструмент для управления заданиями cron.
🍌74👍2
Создание PHP-расширения на Rust

Статья начинается с объяснения, что такое расширение PHP и как оно может быть полезно для дополнительной функциональности языка. Затем рассказывается про фреймворк PHPER (PHP Enjoy Rust), с помощью которого можно легко писать расширения на Rust, легко интегрирующиеся с PHP

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

Здесь также представлены примеры кода в виде создания расширения для работы с PDF-файлами
🔥151👍1
LM-nGram-с-php

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

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

Модель обучается на текстовом файле с 7 книгами о Гарри Поттере, сериализуется для будущего использования, а затем используется для создания новых предложений на основе вероятностей последовательностей слов в обучающих данных.
👍71
Еще один #дайджест новостей по PHP за неделю:

🔎 PHPSandbox — это веб-приложение, которое позволяет вам быстро создавать прототипы или делиться проектами PHP без настройки локальной среды.

🔎Вышла версия Filament v3, которая включает в себя множество новых функций, полностью обновленный пользовательский интерфейс, новый веб-сайт, поддержку Livewire 3 и многое другое!

🔎Вышел Symfony 6.2.14. Вот список наиболее важных изменений с момента выпуска 6.2.13

🔎A Week of Symfony #865 (24-30 июля 2023 г.)
👍4🔥21
Чем отличаются модульные тесты от интеграционных?

. Модульные тесты:
- Тестируют отдельные модули или функции программы, обычно на уровне кода.
- Пишутся программистами для проверки корректности работы отдельных компонентов программы.
- Могут быть автоматическими или ручными.
- Могут быть запущены независимо от других компонентов программы.
- Могут использовать заглушки (mocks) или подставные объекты (mock objects) для изоляции тестируемого модуля от зависимостей.

2. Интеграционные тесты:
- Тестируют взаимодействие между различными модулями и компонентами программы.
- Проверяют, что все компоненты взаимодействуют правильно и вместе выполняют заданную функциональность.
- Могут быть автоматическими или ручными.
- Требуют наличия всех зависимостей и окружения, необходимых для запуска тестируемой функциональности.
- Часто выполняются на уровне системы или её компонентов, а не только на уровне кода.

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

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

#вопросы_с_собеседований
👍162🏆1
Эксперимент: Замена Symfony DI на Laravel Container в ECS

Здесь подробно описываются причины, по которым проводится этот эксперимент, а также объясняются ключевые различия между DI контейнерами Symfony и Laravel. Далее определяются задачи, которые надо решить с помощью нового контейнера, и объясняется, как происходит замена контейнера.

В статье автор представляет некоторые проблемы, с которыми столкнулся при замене контейнера, и рассказывает о решениях, которые были найдены для этих проблем. Он также анализирует производительность и преимущества, которые были получены после замены контейнера.
👍7🤔4🍌21
Forwarded from Библиотека программиста | программирование, кодинг, разработка
#проектирование_систем 

📝 Наглядная демонстрация распространенных алгоритмов балансировки нагрузки

🔹 Статические алгоритмы

1️⃣ Round Robin, или алгоритм кругового обслуживания, представляет собой перебор по круговому циклу: первый запрос передаётся одному серверу, затем следующий запрос передаётся другому и так до достижения последнего сервера, после чего всё начинается сначала.

📌 Недостаток алгоритма в том, что в нём не учитывается количество активных на данный момент подключений

2️⃣ Sticky Round Robin — вариация алгоритма Round Robin. Если первый запрос Алисы отправляется к сервису А, то и последующие запросы также отправляются к сервису А.
3️⃣ Weighted Round Robin — вариация алгоритма Round Robin. Каждому серверу присваивается весовой коэффициент в соответствии с его производительностью и мощностью.
4️⃣ Хэш — алгоритм, который применяет хэш-функцию к IP-адресу или URL-адресу входящих запросов. Запросы направляются в соответствующие экземпляры на основе результата хэш-функции.

🔹 Динамические алгоритмы

5️⃣ Least connections — алгоритм, при котором новое подключение передается на сервер, на который в данный момент установлено наименьшее число соединений.
6️⃣ Least response time — алгоритм, который учитывает не только количество соединений, но и среднее время. Тогда первым в списке будет сервер с наименьшим количеством подключений и наименьшим временем ответа.

🔗 Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥2
25 вопросов, которые стоит задать HR-менеджеру на интервью

В этой статье разберемся, что спросить у работодателя, чтобы получить оффер.
😁3👍21
8 вредных привычек у разработчиков Laravel

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

Не отделять валидацию от контроллеров

Несоблюдение принципа SRP

Неиспользование промежуточного ПО

и другие.
👍621🔥1