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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
#дайджест #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
😺🐙 Как разобраться в Git: краткая инструкция для джунов

Расскажем, как Git хранит данные, отслеживает изменения и позволяет разработчикам управлять историей коммитов.
🔥52
Наводим порядок в наших миграциях

Эти советы помогут поддерживать чистоту и порядок в процессе миграции баз данных в 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 и управления различными аспектами разработки.
👍53
🧠🧩 Зачем айтишнику психолог?

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

🔗 Читать статью
🔗 Зеркало
🎉5🌚4
Чему вы бы хотели научиться за эти праздники?
😁11🎉2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
CI/CD Workflow: упрощенный гайд от ByteByteGo (Alex Xu)

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, облегчая управление зависимостями и обеспечивая согласованность между разными окружениями.
👍133🤔3🥱1
Gemini API

PHP-клиент Gemini API позволяет использовать генеративные модели искусственного интеллекта Google, такие как Gemini Pro и Gemini Pro Vision.
👏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, и запуска приложения с минимальными зависимостями времени выполнения.
👍20🥱1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🥰2👏1