В чем разница между «echo» и «print»?
В PHP разница между echo и print заключается в следующем:
1.Возвращаемое значение:
echo: Не возвращает значение. Может принимать несколько аргументов, разделенных запятыми, и выводит их.
print: Всегда возвращает 1, поэтому может использоваться в выражениях.
2.Аргументы:
echo: Может принимать несколько аргументов, и их использование разделяется запятыми.
print: Принимает только один аргумент. Если вы пытаетесь передать ему более одного аргумента или использовать запятые для разделения, это вызовет ошибку.
3.Использование:
echo: Чаще используется для вывода HTML-кода и других строковых данных.
print: Часто используется для вывода единственного значения или переменной, особенно в контексте, где требуется возвращаемое значение.
#вопросы_с_собеседований
В PHP разница между echo и print заключается в следующем:
1.Возвращаемое значение:
echo: Не возвращает значение. Может принимать несколько аргументов, разделенных запятыми, и выводит их.
print: Всегда возвращает 1, поэтому может использоваться в выражениях.
2.Аргументы:
echo: Может принимать несколько аргументов, и их использование разделяется запятыми.
print: Принимает только один аргумент. Если вы пытаетесь передать ему более одного аргумента или использовать запятые для разделения, это вызовет ошибку.
3.Использование:
echo: Чаще используется для вывода HTML-кода и других строковых данных.
print: Часто используется для вывода единственного значения или переменной, особенно в контексте, где требуется возвращаемое значение.
#вопросы_с_собеседований
👍17🥱9❤1🤔1
Как решить исключение «Маршрут не найден» в Laravel 10
Исключение «Маршрут не найден» является распространенной проблемой в Laravel, особенно в 10 версии. В большинстве случаев отображается страница 404, но здесь предлагается возможность перенаправления на любую другую страницу:
🟠На страницу 404
🟠На домашнюю страницу
🟠Перенаправление назад, если маршрут не существует
🟠Перенаправление с использованием обработчика исключений
Осталось только выбрать, что вам по вкусу
Исключение «Маршрут не найден» является распространенной проблемой в Laravel, особенно в 10 версии. В большинстве случаев отображается страница 404, но здесь предлагается возможность перенаправления на любую другую страницу:
🟠На страницу 404
🟠На домашнюю страницу
🟠Перенаправление назад, если маршрут не существует
🟠Перенаправление с использованием обработчика исключений
Осталось только выбрать, что вам по вкусу
DEV Community
How To Solve Route Not Found Exception Laravel 10
Hey there! So, you're working with Laravel 10, and suddenly, you hit a roadblock with the "Route Not...
🥱6🥰4
Обзор LiveWire 3 и Volt
Эта статья-обзор новой, уже третьей версии Livewire. Помимо текстовой версии, есть также видео. Также рассматривается новинка — Volt. Довольно интересный и подробный материал, авторы которого постарались грамотно всё разложить по полочкам
Эта статья-обзор новой, уже третьей версии Livewire. Помимо текстовой версии, есть также видео. Также рассматривается новинка — Volt. Довольно интересный и подробный материал, авторы которого постарались грамотно всё разложить по полочкам
Хабр
Обзор LiveWire 3 и Volt
Приветствую всех поклонников Laravel! Эта статья-обзор новой, уже третьей версии Livewire. Решил сделать эту статью после выпуска на youtube-канале видео обзора Livewire, который понравился аудитории....
👍1🌚1
В сети часто можно увидеть спор на тему лайвкодинга на собесах. Как к этому относитетсь? Достаточно ли тестового задания?
🔥6👍1
🔍Коммуникация в разработке продукта играет ключевую роль. Команда, владеющая навыками коммуникации, может сократить потребность в менеджерах продукта и оптимизировать процессы разработки продукта. Также подчеркивается сложность эффективной коммуникации, особенно при масштабировании команды.
🤔Основная проблема, обсуждаемая здесь, — наличие несогласованных ожиданий, предположений и использование неудачных средств коммуникации. Приводится личный пример, когда месяцы работы над проектом пришлось пересматривать из-за недостаточной эффективной коммуникации. Расширенные документы и долгие разговоры не привели к успешной передаче информации.
🛠️ Решение:
Выбор правильного канала:
📈 Подстраивайте коммуникацию под потребности различных заинтересованных сторон, например, короткие пункты для генеральных директоров, макеты для клиентов и технические требования для разработчиков.
Запрос обратной связи:
🙋 Активно запрашивайте обратную связь по эффективности коммуникации, особенно в отношении понимания проекта и наличия информации.
Показывайте, не рассказывайте:
🎥 Используйте визуальные средства, макеты и демонстрации, чтобы передать информацию более эффективно, чем устные или письменные описания.
Глупые вопросы:
🤷 Запрашивайте ясность, когда это необходимо, поскольку задавание на первый взгляд простых вопросов может улучшить общее понимание.
Удобочитаемость сообщений:
📋 Формулируйте сообщения кратко, структурировано, включайте задачи на действие или четкие указания. Предоставляйте различные форматы для сложной информации, такие как краткое изложение или видеозапись экрана.
Руководства пользователя:
📘 Разрабатывайте индивидуальные руководства, описывающие предпочтения в коммуникации, стиль ответа и предпочтительные средства общения для каждого члена команды. Поощряйте членов команды составлять свои собственные руководства.
🤔Основная проблема, обсуждаемая здесь, — наличие несогласованных ожиданий, предположений и использование неудачных средств коммуникации. Приводится личный пример, когда месяцы работы над проектом пришлось пересматривать из-за недостаточной эффективной коммуникации. Расширенные документы и долгие разговоры не привели к успешной передаче информации.
🛠️ Решение:
Выбор правильного канала:
📈 Подстраивайте коммуникацию под потребности различных заинтересованных сторон, например, короткие пункты для генеральных директоров, макеты для клиентов и технические требования для разработчиков.
Запрос обратной связи:
🙋 Активно запрашивайте обратную связь по эффективности коммуникации, особенно в отношении понимания проекта и наличия информации.
Показывайте, не рассказывайте:
🎥 Используйте визуальные средства, макеты и демонстрации, чтобы передать информацию более эффективно, чем устные или письменные описания.
Глупые вопросы:
🤷 Запрашивайте ясность, когда это необходимо, поскольку задавание на первый взгляд простых вопросов может улучшить общее понимание.
Удобочитаемость сообщений:
📋 Формулируйте сообщения кратко, структурировано, включайте задачи на действие или четкие указания. Предоставляйте различные форматы для сложной информации, такие как краткое изложение или видеозапись экрана.
Руководства пользователя:
📘 Разрабатывайте индивидуальные руководства, описывающие предпочтения в коммуникации, стиль ответа и предпочтительные средства общения для каждого члена команды. Поощряйте членов команды составлять свои собственные руководства.
👍4❤1😁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 г.)
🔎Выпущена 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, предоставляя разработчикам более широкий набор инструментов для работы с числовой точностью.
В предложенных изменениях версии 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, предоставляя разработчикам более широкий набор инструментов для работы с числовой точностью.
DEV Community
4 New Rounding Methods Likely In PHP 8.4
In the ever-evolving world of PHP, the nuances of rounding numbers are set to receive a noteworthy...
🔥12👍6👏3❤1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
😁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, чтобы сохранять их организованными.
Для эффективного версионирования API для управления различными версиями API предлагается использовать метод URI-версионирования, включающий /v* в пути URI, с акцентом на ограничение основной версии для избежания проблем интеграции.
В Laravel-приложении обычно есть файлы маршрутов, такие как web.php и api.php, загружаемые через RouteServiceProvider.php. В коде RouteServiceProvider.php указана загрузка маршрутов с различными группами промежуточных обработчиков для веб- и API-маршрутов. В статье предлагается создавать отдельные каталоги для веб- и API-маршрутов, например, routes/web/routes.php и routes/api/routes.php, чтобы сохранять их организованными.
Treblle Blog
API Versioning in Laravel: The Complete Guide - Treblle
Navigate Laravel's API versioning seamlessly with URI Versioning, ensuring consistent, reliable integration even as your application evolves.
👍5
Объясните функцию сonstant() и ее назначение.
В PHP функция constant() предназначена для получения значения константы по её имени. Константы в PHP — это именованные значения, которые не могут быть изменены в течение выполнения скрипта. Они объявляются с использованием функции define() или ключевого слова const.
#вопросы_с_собеседований
В 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.
Запустите миграцию для применения изменений к базе данных.
Здесь рассказывается, как интегрировать 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.
Запустите миграцию для применения изменений к базе данных.
DEV Community
How to use UUIDs in Laravel 10 Example
Hey there! Today, I want to walk you through a cool enhancement for your Laravel 10 projects - using...
🥱18👍2
Heroicons Micro — значки для интерфейсов высокой плотности
Компания Tailwind Labs представила Heroicons Micro как часть существующего набора Heroicons . Версия Micro включает 288 новых значков, созданных специально для интерфейсов с высокой плотностью размещения. Вместо того, чтобы уменьшать существующий набор иконок, каждая иконка тщательно перерисовывается с нуля до оптимального размера 16х16
Компания Tailwind Labs представила Heroicons Micro как часть существующего набора Heroicons . Версия Micro включает 288 новых значков, созданных специально для интерфейсов с высокой плотностью размещения. Вместо того, чтобы уменьшать существующий набор иконок, каждая иконка тщательно перерисовывается с нуля до оптимального размера 16х16
❤🔥15
Мы продолжаем собирать ваши истории о смене профессии и трудоустройстве в IT, чтобы написать большую аналитическую статью.
👉Если вы еще не рассказывали о своем опыте, пройдите короткий опрос по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱6⚡1
Symfony Docker
Установщик на основе Docker и среда выполнения для веб-фреймворка Symfony использующая FrankenPHP и Caddy
Установщик на основе Docker и среда выполнения для веб-фреймворка Symfony использующая FrankenPHP и Caddy
GitHub
GitHub - dunglas/symfony-docker: A Docker-based installer and runtime for Symfony. Install: download and `docker compose up`.
A Docker-based installer and runtime for Symfony. Install: download and `docker compose up`. - dunglas/symfony-docker
❤4👾2
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии недели для Москвы 👨🏻🏫
PHP-программист в ПЛАТФОРМА
Москва. Информационные технологии, системная интеграция.
Подробнее
Программист PHP в SCORISTA
Москва. Финтех компания.
Подробнее
PHP-разработчик в Дивлаб
Москва. IT-поддержка полного цикла.
Подробнее
Backend Developer PHP в ТолкФинанс
Москва. Финтех компания.
Подробнее
Backend-разработчик в КСА
Москва. Консалтинг, проектирование, разработка решений на платформе 1С.
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии недели для Москвы 👨🏻🏫
PHP-программист в ПЛАТФОРМА
Москва. Информационные технологии, системная интеграция.
Подробнее
Программист PHP в SCORISTA
Москва. Финтех компания.
Подробнее
PHP-разработчик в Дивлаб
Москва. IT-поддержка полного цикла.
Подробнее
Backend Developer PHP в ТолкФинанс
Москва. Финтех компания.
Подробнее
Backend-разработчик в КСА
Москва. Консалтинг, проектирование, разработка решений на платформе 1С.
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
hh.ru
Вакансия PHP-программист в Москве, работа в компании ПЛАТФОРМА (вакансия в архиве c 20 января 2024)
Зарплата: от 80000 до 100000 ₽ за месяц. Москва. Требуемый опыт: 1–3 года. Полная занятость. Дата публикации: 17.01.2024.
🤔15❤2👍1
Светлая или темная тема в IDE?
❤️ — Светлая
👍 — Темная
❤️ — Светлая
👍 — Темная
👍321❤81👾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) и предоставление подробной информации для проверки.
CVE (Common Vulnerabilities and Exposures) представляет собой систему идентификации и обозначения уязвимостей в программном обеспечении и аппаратуре. Эта система предназначена для обеспечения единообразного идентификационного номера для каждой конкретной уязвимости, чтобы облегчить обмен данными между организациями и обеспечить стандартизированный способ отслеживания и обсуждения уязвимостей.
Каждая запись CVE представляет собой уникальный идентификационный номер, присвоенный конкретной уязвимости. Номер состоит из префикса «CVE-», за которым следует уникальный числовой идентификатор. Например, «CVE-2022-12345».
В октябре 2021 года Positive Security сообщили о уязвимости в библиотеке dompdf, но не получили ответа в течение многих месяцев. Затем проблема была вынесена на рассмотрение в репозиторий проекта, что привело к исправлению после публичного раскрытия. DeveloperSteve использовал уязвимость для создания обратной оболочки, в конечном итоге получив CVE через семь месяцев после первоначального отчета.
Есть тонкая грань между классификацией уязвимости как ошибки или угрозы безопасности. Основной акцент на важность раннего выявления проблем безопасности командами безопасности и посвященность организаций, таких как Snyk, в оперативном сообщении о уязвимостях. Процесс запроса CVE включает в себя определение Авторитета по выделению номеров CVE (CNA) и предоставление подробной информации для проверки.
DEV Community
Vulnerability disclosure: Which comes first, the security bug in PHP or the CVE?
In this post, we cover the CVE reporting process using the Use After Free vulnerability type as an example.
👍3👏1🎉1
Расскажите про функции Closure::bindTo и Closure::bind
Closure::bindTo и Closure::bind — это методы в PHP, которые позволяют изменять контекст для замыканий (closures). Они предоставляют возможность явно привязать замыкание к определенному объекту или классу.
Closure::bindTo:
Closure::bindTo используется для создания нового замыкания, связанного с указанным объектом. Этот метод возвращает новый объект замыкания с измененным контекстом.
Closure::bind:
Closure::bind также позволяет изменять контекст замыкания, но вместо создания нового замыкания, этот метод изменяет контекст существующего замыкания. Это статическая версия метода bindTo
#вопросы_с_собеседований
Closure::bindTo и Closure::bind — это методы в PHP, которые позволяют изменять контекст для замыканий (closures). Они предоставляют возможность явно привязать замыкание к определенному объекту или классу.
Closure::bindTo:
Closure::bindTo используется для создания нового замыкания, связанного с указанным объектом. Этот метод возвращает новый объект замыкания с измененным контекстом.
Closure::bind:
Closure::bind также позволяет изменять контекст замыкания, но вместо создания нового замыкания, этот метод изменяет контекст существующего замыкания. Это статическая версия метода bindTo
#вопросы_с_собеседований
👍13🎉2