PHP Portal | Программирование
4.85K subscribers
408 photos
20 videos
2 files
209 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для PHP-разработчика

Связь: @devmangx
Download Telegram
Принёс вам классный ресурс для изучения паттернов проектирования

На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как C#, Java, Python, PHP, Rust и ещё куча других.

Всё удобно разложено по категориям — порождающие, структурные, поведенческие.

Примеры суперпонятные, с кодом и пояснениями.

👉 Смотрите сами

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥2
💡 Совет по Laravel

Ускорьте отладку с помощью методов toRawSql() или ddRawSql() на Eloquent Query Builder.

Эти методы выводят сырой SQL-запрос с подставленными реальными значениями вместо привязок — настоящий спасатель в трудную минуту 😉

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3
Полезные проекты для изучения Laravel

Если вы хотите освоить Laravel на практике, вот два отличных проекта для разного уровня подготовки:

Для начинающих — простой личный блог
GitHub

Для продвинутых новичков — небольшая CRM
GitHub

Эти репозитории были созданы несколько лет назад, но их задачи остаются актуальными и в 2025 году. Они помогут освоить основы Laravel и получить практический опыт.

После их прохождения можно переходить к своим небольшим проектам, искать фриланс-заказы или даже пробовать устроиться на работу.

👉 Полный roadmap по Laravel: Laravel Roadmap

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
💡 Совет по Laravel

2 переменные контекста, которые я всегда добавляю в обработчик исключений. Просто и эффективно!

Очень помогают при анализе логов.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
Какой 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Вещи, которые ускорят разработку на проектах с большим количеством pull-реквестов и веток. Используйте GitHub CLI для переключения между ветками

1. Установите CLI от GitHub — gh.
2. Аутентифицируйте CLI в GitHub.
3. Перейдите к pull-реквесту, который хотите выкачать.
4. Скопируйте нужную команду из кнопки «<> Code».
5. Вставьте её в терминал и запустите.

Теперь вам не нужно вручную искать ветку и переключаться на неё или загружать обновления.

У вас будет либо самая актуальная версия с GitHub, либо последняя версия на вашем компьютере, если локальная ветка опережает удалённую.

Этот процесс экономит мне кучу времени на поиске нужной ветки.

👉 @PHPgx
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93
Используешь ли ты команду 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, что хочешь использовать именно ту версию, которая установлена в проекте.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95
💡 Совет по Laravel ✌️

Вы, наверное, уже знакомы с трэйтом Prunable, который есть в Laravel.

Этот трэйт позволяет настроить периодическое удаление ненужных моделей из вашей таблицы.

Но знали ли вы, что можно добавить метод pruning() в ваш класс модели? Он будет автоматически вызываться при удалении модели в процессе очистки.

Это может быть полезно, если вам нужно выполнить дополнительные операции вместе с удалением.

Например, вы можете вызвать API стороннего сервиса, чтобы удалить ресурс там же

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
VK, как НЕ НАДО собеседовать middle разработчиков

Автор подчеркивает проблемы с организацией интервью: вопросы не соответствовали должности, например, задавались вопросы по указателям в C++, которые не имели отношения к PHP.

Также интервью не было четко структурировано, и не было ясно, какие именно навыки ожидаются от кандидата.

В статье критикуется отсутствие ясности и предсказуемости в процессе собеседования, что создает разочарование у кандидатов.

👉 Читать

➡️ @PHPgx | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
⚙️ DeepSeek PHP API-клиент

Этот пакет упрощает работу с API для PHP-разработчиков, обеспечивая удобную поддержку запросов, моделей и потоковой передачи данных

👉 Github

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥3🌭1
Если вы выполняете where in с использованием ID из другого запроса, рассмотрите возможность передать сам запрос, выбрав только столбец id

Это выполнит один запрос вместо двух и предотвратит переполнение памяти из-за необходимости загружать все результаты.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍31
👍

👉 @PHPgx | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁214👍3
В PHP переменная $preference_type соответствует стилю snake_case, а $preferenceTypecamelCase.

Есть ли рекомендуемый стандарт?

Согласно PSR-1, выбор стиля именования переменных — это личное предпочтение, главное, чтобы стиль был последовательным в коде проекта.

Цитата из PSR-1 (раздел 4.2) о свойствах классов (что можно применить и к обычным переменным):

Этот стандарт намеренно избегает рекомендаций по использованию $StudlyCaps, $camelCase или $under_score для имен свойств.
Какой бы стиль именования ни использовался, он ДОЛЖЕН применяться последовательно в разумных пределах. Эти пределы могут быть на уровне вендора, пакета, класса или метода.


Таким образом, оба варианта допустимы, но важно, чтобы стиль был единообразным в коде.

Подробнее можно прочитать здесь: PSR-1 (пункт 4.2)

Также прочитайте эту тему на Reddit: Какой стандарт именования вы используете для переменных?

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
⚙️ Простое решение для параллельного выполнения PHP-кода.

Этот пакет предназначен для параллельного выполнения кода и создания пула процессов для выполнения различных задач (например, queue workers).

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Тестирование маршрутизации поддоменов в Laravel — это довольно сложная задача. Вы не можете просто жестко задать корневой домен, так как, очевидно, у вас не будет доступа к этому домену локально.

Вместо этого рассмотрите возможность добавления макроса "subdomain" в фасад Route, чтобы автоматически устанавливать корневой домен, используя URL из конфигурации вашего приложения.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
💡Совет по PHP

Три версии кода, устанавливающего запасное значение, если переменная не задана.

Какую из них вы предпочитаете?

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Топ-6 стратегий для снижения задержек в системах

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

🔹 Caching
🔹 CDN
🔹 Load Balancers
🔹 Asynchronous Task Processing
🔹 Database Indexing
🔹 Pre-caching

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
💡 Совет по PHP

Используй sprintf(), если хочешь генерировать числа в определенной последовательности с ведущими нулями.

Пример для номеров отелей, например, 101, 102, 103 и так далее.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92