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
😺🐙✅ Как разобраться в Git: краткая инструкция для джунов
Расскажем, как Git хранит данные, отслеживает изменения и позволяет разработчикам управлять историей коммитов.
Расскажем, как Git хранит данные, отслеживает изменения и позволяет разработчикам управлять историей коммитов.
🔥5❤2
Наводим порядок в наших миграциях
Эти советы помогут поддерживать чистоту и порядок в процессе миграции баз данных в Symfony-приложении, особенно когда каталог миграций становится слишком объемным. Вот краткое изложение:
Локальная разработка и тестирование:
🟠Рекомендуется создать отдельную базу данных для локальной разработки.
🟠Использование doctrine:migrations:migrate вместо doctrine:schema:update для получения структуры базы данных из продакшена, включая таблицу migration_versions.
Очистка объемного каталога миграций:
🟠Если каталог миграций становится слишком большим, рекомендуется провести его очистку для локальной разработки.
🟠Можно удалить все миграции и создать новую единую миграцию с помощью symfony console doctrine:migrations:dump-schema.
Пропуск повторной миграции на продакшене:
🟠Переименовать новую миграцию в имя последней выполненной миграции на продакшене, чтобы избежать повторного выполнения.
🟠После этого сгенерировать пустую миграцию и внести SQL-оператор, который удалит предыдущие миграции из таблицы migration_versions.
Удаление ранее выполненных миграций из продакшена:
🟠Генерировать пустую миграцию и добавлять SQL-оператор для удаления предыдущих записей из таблицы migration_versions.
Тестирование и развертывание:
🟠Проверить новые миграции локально перед развертыванием на продакшене.
🟠Убедиться, что таблица migration_versions содержит только актуальные записи.
Эти советы помогут поддерживать чистоту и порядок в процессе миграции баз данных в Symfony-приложении, особенно когда каталог миграций становится слишком объемным. Вот краткое изложение:
Локальная разработка и тестирование:
🟠Рекомендуется создать отдельную базу данных для локальной разработки.
🟠Использование doctrine:migrations:migrate вместо doctrine:schema:update для получения структуры базы данных из продакшена, включая таблицу migration_versions.
Очистка объемного каталога миграций:
🟠Если каталог миграций становится слишком большим, рекомендуется провести его очистку для локальной разработки.
🟠Можно удалить все миграции и создать новую единую миграцию с помощью symfony console doctrine:migrations:dump-schema.
Пропуск повторной миграции на продакшене:
🟠Переименовать новую миграцию в имя последней выполненной миграции на продакшене, чтобы избежать повторного выполнения.
🟠После этого сгенерировать пустую миграцию и внести SQL-оператор, который удалит предыдущие миграции из таблицы migration_versions.
Удаление ранее выполненных миграций из продакшена:
🟠Генерировать пустую миграцию и добавлять SQL-оператор для удаления предыдущих записей из таблицы migration_versions.
Тестирование и развертывание:
🟠Проверить новые миграции локально перед развертыванием на продакшене.
🟠Убедиться, что таблица migration_versions содержит только актуальные записи.
Хабр
Наводим порядок в наших миграциях
Миграции баз данных — это отличный способ безопасно обновить схему базы данных. Это именно то, что нам нужно в продакшене, ведь терять имеющиеся там данные крайне нежелательно. Если вы хотите узнать...
😁4
Как вы обеспечиваете кеширование в ваших приложениях?🔽🔽🔽
🔥3🎉2
Понимание предопределенных констант PHP
Основные группы констант включают информацию о версии PHP, константы для работы с операционной системой и конфигурацией, числовые константы, связанные с целыми и числами с плавающей запятой, константы для работы с путями и директориями файловой системы, а также константы для обработки ошибок и булевы и null-константы.
Статья предоставляет примеры таких констант, как PHP_VERSION, PHP_OS, PHP_SAPI, PHP_INT_MAX, true, false и других, подчеркивая их важность для получения информации о среде выполнения PHP и управления различными аспектами разработки.
Основные группы констант включают информацию о версии PHP, константы для работы с операционной системой и конфигурацией, числовые константы, связанные с целыми и числами с плавающей запятой, константы для работы с путями и директориями файловой системы, а также константы для обработки ошибок и булевы и null-константы.
Статья предоставляет примеры таких констант, как PHP_VERSION, PHP_OS, PHP_SAPI, PHP_INT_MAX, true, false и других, подчеркивая их важность для получения информации о среде выполнения PHP и управления различными аспектами разработки.
DEV Community
Understanding PHP Predefined Constants
PHP, as a dynamic and widely-used scripting language, comes equipped with an array of predefined...
👍5❤3
🧠🧩 Зачем айтишнику психолог?
В современных реалиях все больше специалистов ИТ-индустрии обращаются к психологам, чтобы разобраться с эмоциональными проблемами. Рассмотрим некоторые распространенные запросы и проблемы, с которыми сталкиваются айтишники.
🔗 Читать статью
🔗 Зеркало
В современных реалиях все больше специалистов ИТ-индустрии обращаются к психологам, чтобы разобраться с эмоциональными проблемами. Рассмотрим некоторые распространенные запросы и проблемы, с которыми сталкиваются айтишники.
🔗 Читать статью
🔗 Зеркало
🎉5🌚4
Чему вы бы хотели научиться за эти праздники?
😁11🎉2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
CI/CD Workflow: упрощенный гайд от ByteByteGo (Alex Xu)
CI/CD — это методология, которая позволяет автоматизировать процесс разработки и доставки ПО в продакшн.
Будь вы разработчиком, специалистом по DevOps, тестировщиком или занимаетесь любой современной ролью в ИТ, CI/CD пайплайны стали неотъемлемой частью процесса разработки.
#инфографика
CI/CD — это методология, которая позволяет автоматизировать процесс разработки и доставки ПО в продакшн.
Будь вы разработчиком, специалистом по DevOps, тестировщиком или занимаетесь любой современной ролью в ИТ, CI/CD пайплайны стали неотъемлемой частью процесса разработки.
#инфографика
👍4👏2
PHPCTL
Здесь представлен инструмент под названием phpctl, доступный на GitHub, который призван упростить разработку на PHP, используя контейнеризацию. С помощью phpctl разработчикам достаточно установить Docker, и инструмент настраивает полностью сконфигурированные контейнеры для разработки на PHP, избавляя от необходимости вручную настраивать окружение.
Установка phpctl проста: необходимо склонировать репозиторий и выполнить установочный скрипт. Инструмент предоставляет разнообразные команды, включая php, composer, phpunit, php-cs-fixer и phpstan. Кроме того, существует команда phpctl init для инициализации конфигураций для различных инструментов, таких как PHPUnit.
Преимуществом этого инструмента являются удобство и стандартизация, которые приносит использование контейнеров в разработке на PHP, облегчая управление зависимостями и обеспечивая согласованность между разными окружениями.
Здесь представлен инструмент под названием phpctl, доступный на GitHub, который призван упростить разработку на PHP, используя контейнеризацию. С помощью phpctl разработчикам достаточно установить Docker, и инструмент настраивает полностью сконфигурированные контейнеры для разработки на PHP, избавляя от необходимости вручную настраивать окружение.
Установка phpctl проста: необходимо склонировать репозиторий и выполнить установочный скрипт. Инструмент предоставляет разнообразные команды, включая php, composer, phpunit, php-cs-fixer и phpstan. Кроме того, существует команда phpctl init для инициализации конфигураций для различных инструментов, таких как PHPUnit.
Преимуществом этого инструмента являются удобство и стандартизация, которые приносит использование контейнеров в разработке на PHP, облегчая управление зависимостями и обеспечивая согласованность между разными окружениями.
👍13❤3🤔3🥱1
Gemini API
PHP-клиент Gemini API позволяет использовать генеративные модели искусственного интеллекта Google, такие как Gemini Pro и Gemini Pro Vision.
PHP-клиент Gemini API позволяет использовать генеративные модели искусственного интеллекта Google, такие как Gemini Pro и Gemini Pro Vision.
GitHub
GitHub - gemini-api-php/client: Google Gemini API PHP Client allows you to use the Gemini AI model
Google Gemini API PHP Client allows you to use the Gemini AI model - gemini-api-php/client
👏3😁2
🚀в Docker Desktop версии 4.19.0+ добавили новую команду под названием «docker init». Она автоматизирует создание необходимых Docker-файлов, файлов Compose и .dockerignore для проектов с целью устранения ручной конфигурации. Преимущества включают быстрые эксперименты, улучшенное обучение и безшовную интеграцию с стандартизированными рабочими процессами.
🛠️Команда docker init, представленная в Docker Desktop версии 4.18, автоматически создает Docker-ресурсы для проектов, включая файлы .dockerignore, Dockerfile и docker-compose.yaml. Она поддерживает различные платформы приложений, такие как Go, Node, Python, и в последнем релизе добавлена поддержка PHP.
👩💻Здесь предоставляется пошаговое руководство по настройке базовой среды Apache + PHP с использованием Composer на macOS, а затем демонстрируется использование docker init для контейнеризации PHP-приложения. Dockerfile и docker-compose.yaml генерируются автоматически, обеспечивая быстрое и эффективное создание контейнеров.
❓Команда docker init предлагает выбрать платформу приложения, версию, относительный каталог и предпочтительный порт. Она также предупреждает, если Docker-файлы уже существуют, и предлагает их перезаписать. Сгенерированные Docker-файлы включают этапы установки зависимостей приложения, определенных в Composer, и запуска приложения с минимальными зависимостями времени выполнения.
🛠️Команда docker init, представленная в Docker Desktop версии 4.18, автоматически создает Docker-ресурсы для проектов, включая файлы .dockerignore, Dockerfile и docker-compose.yaml. Она поддерживает различные платформы приложений, такие как Go, Node, Python, и в последнем релизе добавлена поддержка PHP.
👩💻Здесь предоставляется пошаговое руководство по настройке базовой среды Apache + PHP с использованием Composer на macOS, а затем демонстрируется использование docker init для контейнеризации PHP-приложения. Dockerfile и docker-compose.yaml генерируются автоматически, обеспечивая быстрое и эффективное создание контейнеров.
❓Команда docker init предлагает выбрать платформу приложения, версию, относительный каталог и предпочтительный порт. Она также предупреждает, если Docker-файлы уже существуют, и предлагает их перезаписать. Сгенерированные Docker-файлы включают этапы установки зависимостей приложения, определенных в Composer, и запуска приложения с минимальными зависимостями времени выполнения.
DEV Community
Dockerizing PHP Application using Docker Init
Gone are the days of manually wrangling Dockerfiles and configuration files! Enter docker init, your...
👍20🥱1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🥰2👏1