Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.34K 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
Расскажите про функции 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
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Laravel Octane и FrankenPHP

🌐Laravel Octane использует подход жизненного цикла приложения, запуская его один раз и храня его в памяти для быстрого ответа на запросы. Основной мощью Octane является использование серверов приложений, таких как Swoole, OpenSwoole, Roadrunner и FrankenPHP.🚀

🤖FrankenPHP — это сервер приложений, созданный специально для PHP, предлагающий продвинутые функции, такие как поддержка PHP 8.3, режим работников, поддержка современных форматов сжатия, поддержка HTTPS, HTTP/2 и HTTP/3, автоматическая генерация, обновление и отзыв сертификатов HTTPS, а также плавная перезагрузка.

⚙️Процесс установки Laravel Octane с FrankenPHP включает создание нового приложения Laravel, установку Octane и выбор FrankenPHP в качестве сервера. После установки можно запустить сервер с указанием числа работников для эффективной обработки конкурентных запросов.

Это поможет значительно улучшить время ответа благодаря запуску приложения один раз и его хранению в памяти для последующих запросов. Это обеспечивает эффективную обработку входящих запросов и значительное сокращение времени ответа, особенно после того, как все работники ответили на первоначальные запросы.
👍4😁4🥱31🎉1
Расскажите про функции defined и get_defined_constants

defined():
Функция defined() используется для проверки существования константы с заданным именем. Она возвращает true, если константа существует, и false, если нет.

get_defined_constants():
Функция get_defined_constants() возвращает ассоциативный массив, содержащий все определенные константы в текущем скрипте. Этот массив имеет два уровня: глобальные константы и локальные (если они определены внутри функции).

#вопросы_с_собеседований
👍10😁4👾2🔥1