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

Older Posts 20 shown
Post #4654 3.16K
Как использовать шаблонизатор Laravel Blade в проекте на чистом PHP

Можно интегрировать шаблонизатор Blade из Laravel в проект на чистом PHP. Автор делится пошаговыми инструкциями по реализации этого подхода.
DEV Community How to Use Laravel Blade Templating Engine with a Pure Vanilla PHP Project? Today, I challenged myself to implement a Laravel MVC (Model, View, Controller) approach using pure...
  • 👍 7
  • 🔥 1
  • 🌚 1
Post #4653 3.13K
Как вы используете пагинацию в Laravel?

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

В этом примере мы используем метод paginate для получения коллекции пользователей и разбивки результатов на страницы по 10 записей в каждой. Затем мы можем выполнить итерацию по пагинированной коллекции с помощью цикла foreach.

Чтобы отобразить ссылки на пагинацию в представлении, мы можем использовать метод links для пагинационной коллекции.

#вопросы_с_собеседований
  • ❤ 5
  • 👍 1
Post #4652 3.22K
#memes
  • 😁 36
  • 😢 4
Post #4651 3.28K
Гайд по Query Scopes в Laravel

В Laravel имеются локальные и глобальные запросные области (query scopes), которые позволяют определять ограничения в запросах Eloquent, делая их повторно используемыми и более читаемыми.

Локальные области запросов необходимо применять вручную, а глобальные области запросов автоматически применяются ко всем запросам модели.
Laravel News Learn to master Query Scopes in Laravel In this article, we're going to take a look at local query scopes and global query scopes
  • ❤ 4
  • 👍 1
Post #4650 3.32K
Golang убивает PHP

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

В связи с этим планируется публикация ряда статей, которые будут посвящены особенностям разработки, проблемам, которые необходимо учитывать, а также ролям участников разработки, таким как DevOps-инженеры.
Хабр Golang убивает PHP Последние несколько лет на рынке, по моему сугубо личному мнению, golang вытесняет PHP с рынка, а многие компании считают, что проекты, которые сейчас написаны и работают на PHP должны быть переписаны...
  • 🥱 32
  • 👍 6
  • 😁 3
  • 🔥 2
  • 👾 1
Post #4649 2.56K

Forwarded from Proglib.academy | IT-курсы

✅❌ За и против: становиться ли айтишником в 2024 году

В 2024 году IT-специалисты остаются на пике популярности. Но стоит ли вам становиться одним из них? Рассмотрим основные аргументы, чтобы понять, стоит ли вам становиться IT-специалистом в нашей статье.👇

🔗 Читать статью
  • ❤ 4
  • 👍 1
Post #4647 2.8K
✍️ «Библиотека программиста» находится в поиске автора на написание книжных рецензий

Кто нужен?
● Энтузиасты (джуны и выше), которые которые разбираются в IT
● Любители книг, которые хотели бы получать деньги за чтение и написание рецензий
● Работаем с самозанятыми (компенсируем налог), ИП

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

✉️ Станьте частью нашей команды — присылайте резюме и примеры работ hello@proglib.io
  • 👍 2
Post #4646 2.95K
Алгоритмы в PHP: Deque (и круговые буферы + связанные списки)

PHP массивы хорошо подходят для многих задач, но операции добавления элементов в начало массива (array_unshift) являются медленными, поскольку требуют сдвига всего массива. Решение для этого проблемы — использование deque (двусторонней очереди).

Очереди и стеки

В программировании, очереди и стеки играют важную роль:

Очередь (FIFO): первый пришел — первый ушел. Работает как очередь в магазине.
Стек (LIFO): последний пришел — первый ушел. Работает как стопка тарелок.

Двусторонняя очередь (Deque)

Deque позволяет добавлять и удалять элементы с обоих концов с эффективностью O(1). Обычно реализуется на основе связанных списков или кольцевого буфера и идеально подходит для реализации функций отмены (undo).

Реализация кольцевого буфера

Для улучшения производительности можно использовать кольцевой буфер, что минимизирует затраты на операции добавления и удаления элементов. Кольцевой буфер использует два курсора (head и tail), что позволяет добавлять и удалять элементы с обоих концов массива.

Добавление элемента в начало буфера
🔸Проверить, заполнен ли буфер.
🔸Если курсор уже в начальной позиции, переместить его в конец массива.
🔸Иначе, декрементировать курсор.
🔸Добавить элемент в массив.

Добавление элемента в конец буфера
🔸Проверить, заполнен ли буфер.
🔸Если курсор уже в конце массива, переместить его в начало.
🔸Иначе, инкрементировать курсор.
🔸Добавить элемент в массив.
  • 👍 5
  • ❤ 1
  • 🔥 1
  • 🥰 1
  • 👏 1
Post #4645 2.61K
#дайджест новостей по PHP за неделю:

🔎Версионирование API в Laravel 11 — С выходом Laravel 11 скелет приложения был урезан, чтобы удалить лишние файлы, которые не нужны в каждом проекте. Частью этого изменения стало удаление из исходного кода приложения всех поставщиков услуг, кроме AppServiceProvider.

🔎Built with Laravel — BuiltWithLaravel.com — список компаний и организаций, использующих Laravel в мире, не связанном с Laravel.

🔎PHP 8.4.0 Alpha 2 доступен для тестирования — Команда PHP рада объявить о выходе второго тестового релиза PHP 8.4.0, Alpha 2. Это продолжение цикла выпуска PHP 8.4, примерный план которого указан в PHP Wiki.

🔎Неделя Symfony #916 (15-21 июля 2024 года) — На этой неделе активность разработчиков была медленнее, чем обычно, и была сосредоточена на исправлениях и доработках во всех поддерживаемых ветках.
  • ❤ 3
  • 👍 1
Post #4643 2.45K

Forwarded from Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js

🆕 JavaScript эволюционирует: новые методы и функции для эффективной разработки

Нововведения нацелены на повышение читаемости и эффективности кода. Рассмотрим, как Object.groupBy, регулярные выражения с V-флагом, Promise.withResolvers и методы мутации массивов решают актуальные задачи программирования.

🔗 Читать статью
🔗 Зеркало
  • 🥱 2
Post #4642 2.65K
💵⚡️ДАРИМ 40 000₽ ЗА ВИДЕО

Конкурс года в «Библиотеке программиста»: смонтируйте короткий вертикальный ролик формата Shorts/Reels* на тему программирования и разработки — лучший автор получит 40 тысяч рублей 🤑

Подробные условия:
➡️смонтируйте короткий смешной вертикальный ролик (можно и нужно использовать мемы)
➡️отправьте нам в бота @ProglibContest_bot
➡️лучшие ролики (по мнению редакции) мы будем выкладывать в канал и в наш инстаграм*
➡️тот, чей ролик соберет больше всего просмотров в инстаграм*, получит приз — 40 тысяч рублей

Какие ролики мы не принимаем:
😟не вашего авторства (проверим!)
😟длинные, невертикальные, несмешные

Таймлайн:
2 августа — заканчиваем принимать видео
⬇️
3 августа — начинаем загружать лучшие видео в инстаграм
⬇️
9 августа — подводим итоги

*Организация Meta признана экстремистской в РФ
  • 🥱 4
  • 👍 1
  • 🔥 1
  • 🎉 1
Post #4641 2.82K
Использование Temporal для эффективного управления жизненным циклом документов

В современном мире важно эффективно управлять большими объемами данных и сложными рабочими процессами. Temporal.io предлагает мощное решение для создания масштабируемых и надежных рабочих процессов. Рассмотрим, как использовать Temporal для управления жизненным циклом документов, обрабатывая изменения документов без перегрузки системы.

Проблема

Представьте, что нужно отслеживать изменения файлов или документов. Эти документы обычно неактивны и не потребляют много ресурсов, пока пользователь не внесет изменения или не загрузит новый файл. В этот момент начинается активная работа системы. Некоторые процессы (например, создание сводок с помощью ИИ) не могут выполняться одновременно с активностью пользователя и должны накапливать изменения или ждать завершения работы.

Решение

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

Шаги реализации:

📋 Предпосылки: Определите основные классы для событий и очередей событий.

🛠️ Создание базового рабочего процесса: Создайте Workflow с методами для сигналов и запуска.

📤 Отправка событий в Workflow: Реализуйте метод для отправки событий в Workflow.

⏱️ Введение таймеров: Добавьте таймеры для более эффективного управления поведением пользователей.

🔄 Продолжение как новый: Реализуйте механизм перезапуска Workflow при достижении лимита истории.

🚀 Продвинутые таймеры и дедупликация: Реализуйте RollingTimer и дедупликацию в очереди для более эффективного управления событиями.
  • 👍 3
  • 🔥 1
Post #4640 2.74K
Сколько раз в неделю вы ездите в офис? Вы бы хотели перейти на удалёнку?
#интерактив
Post #4638 3.15K
Анонимные и стрелочные функции: как использовать их вместо create_function в PHP 8

В статье рассказано, как команда проводила рефакторинг кода при переходе с PHP 7.4 на PHP 8 и на что заменили одну из самых популярных функций — create_function.
Хабр Анонимные и стрелочные функции: как использовать их вместо create_function в PHP 8 Привет, Хабр! Меня зовут Виталий Киреев, я руководитель разработки SpaceWeb. В статье расскажу, как мы с командой проводили рефакторинг кода при переходе с PHP 7.4 на PHP 8 и на что заменили одну из...
  • 🌚 9
  • 🥱 5
  • 👍 4
  • 😁 2
Post #4637 2.97K
WeakMaps — скрытая жемчужина в PHP

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

Сложность возросла, когда потребовалось создать структуру узлов (Node), где каждый узел может содержать дочерние узлы и элементы. Для нахождения нужного узла использовался MagicNodeFinder, но при удалении элементов возникли проблемы: не было способа точно определить, в каком узле находится элемент, что приводило к неэффективному обходу дерева.

Решение пришло с использованием WeakMap, нового в PHP 8.0. WeakMap позволяет хранить объекты без увеличения их ссылочного счетчика, поэтому при удалении объекта из памяти, он автоматически удаляется и из WeakMap. Это позволило легко управлять элементами в узлах без необходимости обхода дерева при удалении.

Использование WeakMap улучшило производительность и упростило код. Теперь, когда элемент удаляется из массива, он автоматически удаляется и из WeakMap узла.
  • 👍 3
  • 🔥 2
  • ❤ 1
  • 💯 1
Post #4636 3.19K
Что означает сложность алгоритма?

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

Существуют два основных типа сложности алгоритма: временная сложность и пространственная сложность.

Временная сложность алгоритма оценивает время, необходимое для его выполнения, в зависимости от размера входных данных. Обычно время выполнения алгоритма измеряется в тактах процессора или в секундах. Примеры временной сложности включают константную сложность O(1) (выполнение за постоянное время), линейную сложность O(n) (выполнение занимает время, пропорциональное размеру входных данных) и квадратичную сложность O(n^2) (выполнение занимает время, пропорциональное квадрату размера входных данных).

Пространственная сложность алгоритма оценивает объем памяти, необходимый для его выполнения, в зависимости от размера входных данных. Обычно пространственная сложность измеряется в байтах. Примеры пространственной сложности включают константную сложность O(1) (не зависит от размера входных данных), линейную сложность O(n) (потребляет память, пропорционально размеру входных данных) и квадратичную сложность O(n^2) (потребляет память, пропорционально квадрату размера входных данных).

#вопросы_с_собеседований
  • 👏 3
  • 😢 1
Post #4635 3.1K
#memes
  • 🥰 10
  • 😁 10
  • 👍 3
  • 😢 3
  • 🔥 2
Post #4633 3.01K
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Post #4632 3.26K
Практическое логирование для PHP-приложений с помощью OpenTelemetry

Это самый полный гайд по логированию в PHP с использованием OpenTelemetry
Betterstack Practical Logging for PHP Applications with OpenTelemetry | Better Stack Community Learn how to use the OpenTelemetry framework to instrument your PHP applications with code that gathers log data for observability pipelines
  • 👍 4
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 →