Это может помочь вам обнаружить нестабильные тесты или потенциальные ошибки, так как вы можете ожидать, что данное поле всегда будет заполнено в вашем приложении.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Наткнулся на интересный проект — php-wasm.
Это библиотека, которая позволяет запускать PHP прямо в браузере с использованием WebAssembly
👉 https://github.com/seanmorris/php-wasm
👉 @PHPgx | #ресурсы
Это библиотека, которая позволяет запускать PHP прямо в браузере с использованием WebAssembly
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - seanmorris/php-wasm: PHP in Browser, powered by WebAssembly.
PHP in Browser, powered by WebAssembly. Contribute to seanmorris/php-wasm development by creating an account on GitHub.
👍3
Media is too big
VIEW IN TELEGRAM
Если вы ищете самый простой способ сгенерировать документацию по API для вашего приложения на Laravel, которая также будет красивой, попробуйте следующее:
1. Установите Scribe через Composer (knuckleswtf/scribe) Это генератор документации API, который использует ваши маршруты, запросы, модели и ресурсы для автоматической генерации.
2. Настройте вывод Scribe Установите параметры конфигурации scribe.type в значение 'external_laravel' и scribe.theme в значение 'scalar'.
3. Запустите команду php artisan scribe:generate
Результаты впечатляют! Вы получаете массу возможностей бесплатно, включая автоматическую генерацию примеров на различных языках программирования, светлый/тёмный режим, поиск, версионность и многое другое. Попробуйте сами!
👉 https://github.com/knuckleswtf/scribe
👉 @PHPgx | #tips
1. Установите Scribe через Composer (knuckleswtf/scribe) Это генератор документации API, который использует ваши маршруты, запросы, модели и ресурсы для автоматической генерации.
2. Настройте вывод Scribe Установите параметры конфигурации scribe.type в значение 'external_laravel' и scribe.theme в значение 'scalar'.
3. Запустите команду php artisan scribe:generate
Результаты впечатляют! Вы получаете массу возможностей бесплатно, включая автоматическую генерацию примеров на различных языках программирования, светлый/тёмный режим, поиск, версионность и многое другое. Попробуйте сами!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Это расширение для Chrome, которое позволяет встраивать PHP-консоль в панель разработчика DevTools. Оно использует пакет Spatie Laravel Web Tinker и встраивает его в панель инструментов, предоставляя доступ к консоли PHP прямо внутри DevTools.
Установка:
🔹 Скачайте и распакуйте проект.
🔹 Перейдите по адресу chrome://extensions/ в вашем браузере.
🔹 Включите "Режим разработчика" в правом верхнем углу (если он еще не включен).
🔹 Нажмите "Загрузить распакованное расширение" и выберите папку php-ext.
🔹 В вашем Laravel проекте установите пакет Spatie Laravel Web Tinker командой:
Теперь в панели консоли Chrome появится новая вкладка PHP. Кликнув по ней, вы получите доступ к PHP консоли, где сможете выполнять код Laravel или PHP прямо из браузера
👉 https://github.com/tnylea/php-ext
👉 @PHPgx | #ресурсы
Установка:
composer require spatie/laravel-web-tinker
Теперь в панели консоли Chrome появится новая вкладка PHP. Кликнув по ней, вы получите доступ к PHP консоли, где сможете выполнять код Laravel или PHP прямо из браузера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤2🌭1
Самая недооценённая особенность Laravel?
Фабрики баз данных.
Я бы даже осмелился сказать, что хорошо построенные фабрики — это признак кодовой базы для СТАРШИХ разработчиков, в отличие от кодовой базы для МОЛОДЫХ.
Позвольте объяснить.
Если я вижу кодовую базу, где фабрики отсутствуют или определены плохо, это обычно говорит о большем:
🔹 Нет автоматизированных тестов.
🔹 Нет тестирования с большими объемами данных.
🔹 И отсутствие внимания к реалистичным сценариям, приближённым к продакшн-окружению.
Если у вас есть ПРАВИЛЬНЫЕ фабрики, вероятно, вы гораздо больше заботитесь о тестировании и надежности приложения.
Подождите, а что такое эти СИЛЬНЫЕ фабрики? Это когда разработчик тратит ДОПОЛНИТЕЛЬНОЕ время на продумывание реалистичных форматов данных.
Они показывают, насколько разработчик ЗАБОТИТСЯ:
🔹 Заботится достаточно, чтобы симулировать реалистичные данные: fake()->paragraphs() вместо fake()->text().
🔹 Заботится достаточно, чтобы настроить вероятности: fake()->boolean(90) вместо статичного true.
Согласны?
✅ #tips by Povilas Korop
👉 @PHPgx
Фабрики баз данных.
Я бы даже осмелился сказать, что хорошо построенные фабрики — это признак кодовой базы для СТАРШИХ разработчиков, в отличие от кодовой базы для МОЛОДЫХ.
Позвольте объяснить.
Если я вижу кодовую базу, где фабрики отсутствуют или определены плохо, это обычно говорит о большем:
Если у вас есть ПРАВИЛЬНЫЕ фабрики, вероятно, вы гораздо больше заботитесь о тестировании и надежности приложения.
Подождите, а что такое эти СИЛЬНЫЕ фабрики? Это когда разработчик тратит ДОПОЛНИТЕЛЬНОЕ время на продумывание реалистичных форматов данных.
Они показывают, насколько разработчик ЗАБОТИТСЯ:
Согласны?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
Используйте методы Arr::get() или хелпер data_get для получения значения из глубоко вложенного массива с помощью удобной "точечной" нотации. Метод data_get также поддерживает объекты!
Они также принимают значение по умолчанию, которое будет возвращено, если указанный ключ не существует.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥2
Только что нашел утечку исходного кода Facebook за 2007 год 😃
Тогда не было Composer, PSR еще не существовал, а внедрение ООП шло медленно... но при этом на PHP строились огромные приложения!
Посмотрите исходный код здесь: https://gist.github.com/nikcub/3833406
👉 @PHPgx
Тогда не было Composer, PSR еще не существовал, а внедрение ООП шло медленно... но при этом на PHP строились огромные приложения!
Посмотрите исходный код здесь: https://gist.github.com/nikcub/3833406
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Перестаньте писать сложные запросы в контроллерах
Используйте специальные классы для запросов, чтобы элегантно обрабатывать агрегированные данные из нескольких моделей.
Преимущества:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
Принёс вам классный ресурс для изучения паттернов проектирования
На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как C#, Java, Python, PHP, Rust и ещё куча других.
Всё удобно разложено по категориям — порождающие, структурные, поведенческие.
Примеры суперпонятные, с кодом и пояснениями.
👉 Смотрите сами
👉 @PHPgx | #ресурсы
На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как C#, Java, Python, PHP, Rust и ещё куча других.
Всё удобно разложено по категориям — порождающие, структурные, поведенческие.
Примеры суперпонятные, с кодом и пояснениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥2
Полезные проекты для изучения Laravel
Если вы хотите освоить Laravel на практике, вот два отличных проекта для разного уровня подготовки:
✅ Для начинающих — простой личный блог
— GitHub
✅ Для продвинутых новичков — небольшая CRM
— GitHub
Эти репозитории были созданы несколько лет назад, но их задачи остаются актуальными и в 2025 году. Они помогут освоить основы Laravel и получить практический опыт.
После их прохождения можно переходить к своим небольшим проектам, искать фриланс-заказы или даже пробовать устроиться на работу.
👉 Полный roadmap по Laravel: Laravel Roadmap
👉 @PHPgx | #ресурсы
Если вы хотите освоить Laravel на практике, вот два отличных проекта для разного уровня подготовки:
— GitHub
— GitHub
Эти репозитории были созданы несколько лет назад, но их задачи остаются актуальными и в 2025 году. Они помогут освоить основы Laravel и получить практический опыт.
После их прохождения можно переходить к своим небольшим проектам, искать фриланс-заказы или даже пробовать устроиться на работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Какой PHP-фреймворк вам наиболее интересен? (Это поможет мне создавать контент, который вам будет полезен)
Anonymous Poll
63%
Laravel
34%
Symfony
4%
CodeIgniter
15%
Yii
3%
Zend Framework / Laminas
3%
CakePHP
3%
Phalcon
5%
Slim
33%
Хочу читать больше про чистый PHP
2%
Другое (пишите в комментариях)
👍13
Ты знаешь о пакетах Polyfill?
Возможно, ты встречал концепцию полифилов во фронтенде для обеспечения совместимости с разными браузерами. Но версии PHP тоже можно "полифиллить" благодаря Symfony.
Что такое полифил? Это устанавливаемый пакет, который добавляет функциональность новых версий PHP в более старые.
Например, ты можешь использовать функцию json_validate из PHP 8.2, хотя она была добавлена только в PHP 8.3. Существует даже полифил для PHP 8.4.
Ты когда-нибудь добавлял полифил в свой проект?
👉 Документация здесь: https://github.com/symfony/polyfill
👉 @PHPgx
Возможно, ты встречал концепцию полифилов во фронтенде для обеспечения совместимости с разными браузерами. Но версии PHP тоже можно "полифиллить" благодаря Symfony.
Что такое полифил? Это устанавливаемый пакет, который добавляет функциональность новых версий PHP в более старые.
Например, ты можешь использовать функцию json_validate из PHP 8.2, хотя она была добавлена только в PHP 8.3. Существует даже полифил для PHP 8.4.
Ты когда-нибудь добавлял полифил в свой проект?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Вещи, которые ускорят разработку на проектах с большим количеством pull-реквестов и веток. Используйте GitHub CLI для переключения между ветками
1. Установите CLI от GitHub —
2. Аутентифицируйте CLI в GitHub.
3. Перейдите к pull-реквесту, который хотите выкачать.
4. Скопируйте нужную команду из кнопки «<> Code».
5. Вставьте её в терминал и запустите.
Теперь вам не нужно вручную искать ветку и переключаться на неё или загружать обновления.
У вас будет либо самая актуальная версия с GitHub, либо последняя версия на вашем компьютере, если локальная ветка опережает удалённую.
Этот процесс экономит мне кучу времени на поиске нужной ветки.
👉 @PHPgx
1. Установите CLI от GitHub —
gh.2. Аутентифицируйте CLI в GitHub.
3. Перейдите к pull-реквесту, который хотите выкачать.
4. Скопируйте нужную команду из кнопки «<> Code».
5. Вставьте её в терминал и запустите.
Теперь вам не нужно вручную искать ветку и переключаться на неё или загружать обновления.
У вас будет либо самая актуальная версия с GitHub, либо последняя версия на вашем компьютере, если локальная ветка опережает удалённую.
Этот процесс экономит мне кучу времени на поиске нужной ветки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Полный курс PHP для начинающих и продвинутых
Плейлист 'Learn PHP The Right Way' предлагает полный курс по PHP 8, охватывая темы от основ до продвинутых практик. Видеоуроки включают работу с безопасностью, кэшированием, тестированием и многим другим.
Отличный выбор для тех, кто хочет изучить PHP с нуля и применять его на практике
На данный момент доступно 139 видео
👉 @PHPgx | #курсы #en
Плейлист 'Learn PHP The Right Way' предлагает полный курс по PHP 8, охватывая темы от основ до продвинутых практик. Видеоуроки включают работу с безопасностью, кэшированием, тестированием и многим другим.
Отличный выбор для тех, кто хочет изучить PHP с нуля и применять его на практике
На данный момент доступно 139 видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
Используешь ли ты команду
Это функция Composer, о которой не часто упоминают, поэтому я решил поделиться своими мыслями на этот счет.
Для разработчиков пакетов она не так полезна, но если ты пишешь приложение, то это может быть довольно мощным инструментом.
— Что же делает команда
Она берет версию зависимостей верхнего уровня, которая указана в файле
Например, предположим, что в файле
— Зачем это нужно?
При использовании Composer всегда есть небольшой риск, что ты случайно откатишь версию и не заметишь этого в выводе Composer. Это может случиться, если ты запустил обновление, которое привело к даунгрейду.
Запустив
👉 @PHPgx | #tips
composer bump в своих PHP-приложениях?Это функция Composer, о которой не часто упоминают, поэтому я решил поделиться своими мыслями на этот счет.
Для разработчиков пакетов она не так полезна, но если ты пишешь приложение, то это может быть довольно мощным инструментом.
— Что же делает команда
composer bump?Она берет версию зависимостей верхнего уровня, которая указана в файле
composer.lock, и обновляет файл composer.json с этой новой версией.Например, предположим, что в файле
composer.json у тебя указано laravel/framework как ^11.0, но в composer.lock установлена версия 11.38.2. Тогда при запуске команды bump, версия laravel/framework в composer.json автоматически обновится до ^11.38.2.— Зачем это нужно?
При использовании Composer всегда есть небольшой риск, что ты случайно откатишь версию и не заметишь этого в выводе Composer. Это может случиться, если ты запустил обновление, которое привело к даунгрейду.
Запустив
composer bump, ты автоматически укажешь в файле composer.json, что хочешь использовать именно ту версию, которая установлена в проекте.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5
Вы, наверное, уже знакомы с трэйтом Prunable, который есть в Laravel.
Этот трэйт позволяет настроить периодическое удаление ненужных моделей из вашей таблицы.
Но знали ли вы, что можно добавить метод pruning() в ваш класс модели? Он будет автоматически вызываться при удалении модели в процессе очистки.
Это может быть полезно, если вам нужно выполнить дополнительные операции вместе с удалением.
Например, вы можете вызвать API стороннего сервиса, чтобы удалить ресурс там же
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
VK, как НЕ НАДО собеседовать middle разработчиков
Автор подчеркивает проблемы с организацией интервью: вопросы не соответствовали должности, например, задавались вопросы по указателям в C++, которые не имели отношения к PHP.
Также интервью не было четко структурировано, и не было ясно, какие именно навыки ожидаются от кандидата.
В статье критикуется отсутствие ясности и предсказуемости в процессе собеседования, что создает разочарование у кандидатов.
👉 Читать
➡️ @PHPgx | #cтатья
Автор подчеркивает проблемы с организацией интервью: вопросы не соответствовали должности, например, задавались вопросы по указателям в C++, которые не имели отношения к PHP.
Также интервью не было четко структурировано, и не было ясно, какие именно навыки ожидаются от кандидата.
В статье критикуется отсутствие ясности и предсказуемости в процессе собеседования, что создает разочарование у кандидатов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7