Библиотека пхпшника | 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
В чем разница между «echo» и «print»?

В PHP разница между echo и print заключается в следующем:

1.Возвращаемое значение:

echo: Не возвращает значение. Может принимать несколько аргументов, разделенных запятыми, и выводит их.
print: Всегда возвращает 1, поэтому может использоваться в выражениях.

2.Аргументы:

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

3.Использование:

echo: Чаще используется для вывода HTML-кода и других строковых данных.
print: Часто используется для вывода единственного значения или переменной, особенно в контексте, где требуется возвращаемое значение.

#вопросы_с_собеседований
👍17🥱91🤔1
Как решить исключение «Маршрут не найден» в Laravel 10

Исключение «Маршрут не найден» является распространенной проблемой в Laravel, особенно в 10 версии. В большинстве случаев отображается страница 404, но здесь предлагается возможность перенаправления на любую другую страницу:

🟠На страницу 404
🟠На домашнюю страницу
🟠Перенаправление назад, если маршрут не существует
🟠Перенаправление с использованием обработчика исключений

Осталось только выбрать, что вам по вкусу
🥱6🥰4
Обзор LiveWire 3 и Volt

Эта статья-обзор новой, уже третьей версии Livewire. Помимо текстовой версии, есть также видео. Также рассматривается новинка — Volt. Довольно интересный и подробный материал, авторы которого постарались грамотно всё разложить по полочкам
👍1🌚1
В сети часто можно увидеть спор на тему лайвкодинга на собесах. Как к этому относитетсь? Достаточно ли тестового задания?
🔥6👍1
🔍Коммуникация в разработке продукта играет ключевую роль. Команда, владеющая навыками коммуникации, может сократить потребность в менеджерах продукта и оптимизировать процессы разработки продукта. Также подчеркивается сложность эффективной коммуникации, особенно при масштабировании команды.

🤔Основная проблема, обсуждаемая здесь, — наличие несогласованных ожиданий, предположений и использование неудачных средств коммуникации. Приводится личный пример, когда месяцы работы над проектом пришлось пересматривать из-за недостаточной эффективной коммуникации. Расширенные документы и долгие разговоры не привели к успешной передаче информации.

🛠️ Решение:

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

Запрос обратной связи:
🙋 Активно запрашивайте обратную связь по эффективности коммуникации, особенно в отношении понимания проекта и наличия информации.

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

Глупые вопросы:
🤷 Запрашивайте ясность, когда это необходимо, поскольку задавание на первый взгляд простых вопросов может улучшить общее понимание.

Удобочитаемость сообщений:
📋 Формулируйте сообщения кратко, структурировано, включайте задачи на действие или четкие указания. Предоставляйте различные форматы для сложной информации, такие как краткое изложение или видеозапись экрана.

Руководства пользователя:
📘 Разрабатывайте индивидуальные руководства, описывающие предпочтения в коммуникации, стиль ответа и предпочтительные средства общения для каждого члена команды. Поощряйте членов команды составлять свои собственные руководства.
👍41😁1
#дайджест новостей по PHP за неделю:

🔎Выпущена CakePHP 4.5.2. — Улучшения включают в себя: Значения даты сортировки больше не задают часовой пояс. Исправлено несоответствие между Error.beforeRender и Exception.beforeRender и много чего другого.

🔎Выпущена версия Filament v3.1 — После более чем 100 выпусков патчей для версии Filament v3.0 (это не шутка), наконец-то вышел одно из самых крупных минорных обновлений

🔎Выпущена версия Laravel 10.37 — На этой неделе команда Laravel выпустила версию 10.37 с возможностью хранить пакетные метаданные в DynamoDB, выявлять множественные ошибки в поле и многое другое.

🔎Интеграция MongoDB с Laravel теперь официально поддерживается

🔎Laravel Octane теперь поддерживает FrankenPHP. — Laravel Octane повышает производительность вашего приложения, обслуживая его с помощью мощных серверов приложений, таких как Open Swoole, Swoole и RoadRunner. Начиная с сегодняшнего дня, он также будет поддерживать FrankenPHP.

🔎 Неделя Symfony #885 (11–17 декабря 2023 г.)
👍4
4 новых метода округления, которые могут появиться в PHP 8.4

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

Джорг Зова предлагает внедрение четырех новых методов округления: PHP_ROUND_CEILING, PHP_ROUND_FLOOR, PHP_ROUND_AWAY_FROM_ZERO и PHP_ROUND_TOWARD_ZERO, дополняя уже существующий набор режимов округления.

В предложении:

1️⃣PHP_ROUND_CEILING: Округление до ближайшего целого числа большего заданного.
2️⃣PHP_ROUND_FLOOR: Округление до ближайшего целого числа меньшего заданного.
3️⃣PHP_ROUND_AWAY_FROM_ZERO: Округление в сторону от нуля.
4️⃣PHP_ROUND_TOWARD_ZERO: Округление в сторону нуля.

Важно отметить, что NumberFormatter уже реализует четыре из предложенных режимов (ROUND_CEILING, ROUND_FLOOR, ROUND_DOWN и ROUND_UP). Предложение также вводит два псевдонима из расширения Intl: ROUND_TOWARD_ZERO (эквивалент PHP_ROUND_TOWARD_ZERO) и ROUND_AWAY_FROM_ZERO (эквивалент PHP_ROUND_AWAY_FROM_ZERO), обеспечивая последовательное наименование режимов округления.

Предлагаемые изменения обратносовместимы, что уменьшает опасения относительно возможных нарушений существующего кода. Ожидается, что улучшения в округлении будут включены в PHP 8.4, предоставляя разработчикам более широкий набор инструментов для работы с числовой точностью.
🔥12👍6👏31
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
Доставка кода в продакшен: типичный workflow от ByteByteGo (Alex Xu)

#проектирование_систем
😁12🔥4👍1
Управление версиями API в Laravel

Для эффективного версионирования API для управления различными версиями API предлагается использовать метод URI-версионирования, включающий /v* в пути URI, с акцентом на ограничение основной версии для избежания проблем интеграции.

В Laravel-приложении обычно есть файлы маршрутов, такие как web.php и api.php, загружаемые через RouteServiceProvider.php. В коде RouteServiceProvider.php указана загрузка маршрутов с различными группами промежуточных обработчиков для веб- и API-маршрутов. В статье предлагается создавать отдельные каталоги для веб- и API-маршрутов, например, routes/web/routes.php и routes/api/routes.php, чтобы сохранять их организованными.
👍5
Объясните функцию сonstant() и ее назначение.

В PHP функция constant() предназначена для получения значения константы по её имени. Константы в PHP — это именованные значения, которые не могут быть изменены в течение выполнения скрипта. Они объявляются с использованием функции define() или ключевого слова const.

#вопросы_с_собеседований
🥱9👍5👏2🎉2
Как использовать UUID в Laravel 10

Здесь рассказывается, как интегрировать UUID (Универсально Уникальные Идентификаторы) в ваше приложение Laravel 10, предоставляя преимущества в распределенных системах. Вот краткое изложение шагов:

Генерация UUID с использованием Str Facade:

Используйте фасад Str в Laravel для генерации UUID.
Приведен пример в UserController с методами index и view.

Генерация UUID с использованием Composer-пакета ramsey/uuid:

Установите пакет ramsey/uuid с помощью Composer.
Обновите схему вашей базы данных, заменив традиционное поле id на поле uuid в миграциях.
Укажите UUID в качестве первичного ключа в модели и отключите инкрементирование для UUID.
Используйте метод boot для генерации UUID перед сохранением модели.
Внесите соответствующие изменения в контроллеры и представления.
Убедитесь, что маршруты принимают UUID.
Запустите миграцию для применения изменений к базе данных.
🥱18👍2
Heroicons Micro — значки для интерфейсов высокой плотности

Компания Tailwind Labs представила Heroicons Micro как часть существующего набора Heroicons . Версия Micro включает 288 новых значков, созданных специально для интерфейсов с высокой плотностью размещения. Вместо того, чтобы уменьшать существующий набор иконок, каждая иконка тщательно перерисовывается с нуля до оптимального размера 16х16
❤‍🔥15
🔍Насколько легко «войти в айти»?

Мы продолжаем собирать ваши истории о смене профессии и трудоустройстве в IT, чтобы написать большую аналитическую статью.

👉Если вы еще не рассказывали о своем опыте, пройдите короткий опрос по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱61
#дайджест #phpdevjob

Вакансии недели для Москвы 👨🏻‍🏫

PHP-программист в ПЛАТФОРМА
Москва. Информационные технологии, системная интеграция.
Подробнее

Программист PHP в SCORISTA
Москва. Финтех компания.
Подробнее

PHP-разработчик в Дивлаб
Москва. IT-поддержка полного цикла.
Подробнее

Backend Developer PHP в ТолкФинанс
Москва. Финтех компания.
Подробнее

Backend-разработчик в КСА
Москва. Консалтинг, проектирование, разработка решений на платформе 1С.
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
🤔152👍1
Светлая или темная тема в IDE?

❤️ — Светлая
👍 — Темная
👍32181👾4🎉3🌚2
Раскрытие уязвимостей: что первично: ошибка безопасности в PHP или CVE?

CVE (Common Vulnerabilities and Exposures) представляет собой систему идентификации и обозначения уязвимостей в программном обеспечении и аппаратуре. Эта система предназначена для обеспечения единообразного идентификационного номера для каждой конкретной уязвимости, чтобы облегчить обмен данными между организациями и обеспечить стандартизированный способ отслеживания и обсуждения уязвимостей.

Каждая запись CVE представляет собой уникальный идентификационный номер, присвоенный конкретной уязвимости. Номер состоит из префикса «CVE-», за которым следует уникальный числовой идентификатор. Например, «CVE-2022-12345».

В октябре 2021 года Positive Security сообщили о уязвимости в библиотеке dompdf, но не получили ответа в течение многих месяцев. Затем проблема была вынесена на рассмотрение в репозиторий проекта, что привело к исправлению после публичного раскрытия. DeveloperSteve использовал уязвимость для создания обратной оболочки, в конечном итоге получив CVE через семь месяцев после первоначального отчета.

Есть тонкая грань между классификацией уязвимости как ошибки или угрозы безопасности. Основной акцент на важность раннего выявления проблем безопасности командами безопасности и посвященность организаций, таких как Snyk, в оперативном сообщении о уязвимостях. Процесс запроса CVE включает в себя определение Авторитета по выделению номеров CVE (CNA) и предоставление подробной информации для проверки.
👍3👏1🎉1
Расскажите про функции Closure::bindTo и Closure::bind

Closure::bindTo и Closure::bind — это методы в PHP, которые позволяют изменять контекст для замыканий (closures). Они предоставляют возможность явно привязать замыкание к определенному объекту или классу.

Closure::bindTo:
Closure::bindTo используется для создания нового замыкания, связанного с указанным объектом. Этот метод возвращает новый объект замыкания с измененным контекстом.

Closure::bind:
Closure::bind также позволяет изменять контекст замыкания, но вместо создания нового замыкания, этот метод изменяет контекст существующего замыкания. Это статическая версия метода bindTo

#вопросы_с_собеседований
👍13🎉2