Организация кода в Laravel. Личный опыт
В статье я расскажу, как организую свой код в проектах, использующих Laravel. Решил немного структурировать, с чем удалось познакомиться после перехода в мир фреймворков из мира чудного (ударение можете сами поставить) Битрикс. Многие вещи стали для меня открытием и особенно переоткрыл для себя ООП. Начнем рассмотрение с практик организации кода проекта. Статья адресована начинающим разработчикам.
https://habr.com/ru/articles/760022/
👉 @php_lib
В статье я расскажу, как организую свой код в проектах, использующих Laravel. Решил немного структурировать, с чем удалось познакомиться после перехода в мир фреймворков из мира чудного (ударение можете сами поставить) Битрикс. Многие вещи стали для меня открытием и особенно переоткрыл для себя ООП. Начнем рассмотрение с практик организации кода проекта. Статья адресована начинающим разработчикам.
https://habr.com/ru/articles/760022/
👉 @php_lib
👍5
Media is too big
VIEW IN TELEGRAM
Введение в графовые БД в PHP
Это видео должно стать введением в использование графовых баз данных для всех представителей php-сообщества. Я объясняю основные причины, по которым стоит начать использовать графовые базы данных, основываясь на своем опыте веб-разработки.
источник
👉 @php_lib
Это видео должно стать введением в использование графовых баз данных для всех представителей php-сообщества. Я объясняю основные причины, по которым стоит начать использовать графовые базы данных, основываясь на своем опыте веб-разработки.
источник
👉 @php_lib
👍1
Асинхронный PHP с использованием ReactPHP
Асинхронное программирование позволяет решить традиционные проблемы синхронного программирования, позволяя выполнять задачи в фоновом режиме, не блокируя выполнение основной программы. Это означает, что программа может продолжать решать другие задачи, в то время как трудоемкие задачи выполняются в фоновом режиме.
https://medium.com/simform-engineering/asynchronous-php-using-reactphp-929185bef98c
👉 @php_lib
Асинхронное программирование позволяет решить традиционные проблемы синхронного программирования, позволяя выполнять задачи в фоновом режиме, не блокируя выполнение основной программы. Это означает, что программа может продолжать решать другие задачи, в то время как трудоемкие задачи выполняются в фоновом режиме.
https://medium.com/simform-engineering/asynchronous-php-using-reactphp-929185bef98c
👉 @php_lib
👍1
Понимание предопределенных констант PHP
PHP, как динамический и широко используемый скриптовый язык, оснащен множеством предопределенных констант.
Эти константы, являясь неотъемлемой частью ядра PHP, служат важными строительными блоками, предоставляющими полезную информацию о среде PHP и его конфигурации.
Давайте отправимся в путешествие, чтобы понять и использовать эти константы для более надежной и эффективной разработки на PHP.
https://dev.to/patricia1988hernandez2/understanding-php-predefined-constants-6db
👉 @php_lib
PHP, как динамический и широко используемый скриптовый язык, оснащен множеством предопределенных констант.
Эти константы, являясь неотъемлемой частью ядра PHP, служат важными строительными блоками, предоставляющими полезную информацию о среде PHP и его конфигурации.
Давайте отправимся в путешествие, чтобы понять и использовать эти константы для более надежной и эффективной разработки на PHP.
https://dev.to/patricia1988hernandez2/understanding-php-predefined-constants-6db
👉 @php_lib
👍3
Idempotency — что это такое и как это может помочь нашим API в Laravel?
При разработке API идемпотентность — это важное понятие, о котором нужно знать. Если API поддерживает идемпотентность, клиент передает уникальный ключ для каждого запроса, который сервер использует, чтобы избежать повторной обработки запросов, отправленных несколько раз.
Это помогает избежать, например, проблем с многократной обработкой платежей или повторной отправкой форм, когда у пользователя нестабильное подключение. Этот концепт поддерживается в одних из самых популярных SDK от таких компаний, как Stripe, Paypal, Amazon и Shopify.
В этом посте мы рассмотрим конкретные преимущества, которые идемпотентность приносит нашим API, а также представим пакет, который позволяет легко добавить поддержку идемпотентности в любой Laravel API!
https://www.conroyp.com/articles/what-is-idempotency-add-to-laravel-apis
👉 @php_lib
При разработке API идемпотентность — это важное понятие, о котором нужно знать. Если API поддерживает идемпотентность, клиент передает уникальный ключ для каждого запроса, который сервер использует, чтобы избежать повторной обработки запросов, отправленных несколько раз.
Это помогает избежать, например, проблем с многократной обработкой платежей или повторной отправкой форм, когда у пользователя нестабильное подключение. Этот концепт поддерживается в одних из самых популярных SDK от таких компаний, как Stripe, Paypal, Amazon и Shopify.
В этом посте мы рассмотрим конкретные преимущества, которые идемпотентность приносит нашим API, а также представим пакет, который позволяет легко добавить поддержку идемпотентности в любой Laravel API!
https://www.conroyp.com/articles/what-is-idempotency-add-to-laravel-apis
👉 @php_lib
👍4
Как проверить, пуста ли коллекция Laravel?
Как веб-разработчику на Laravel, вам часто придется работать с коллекциями, массивами PHP и массивами JavaScript. Одна из распространенных задач, с которой я сталкиваюсь регулярно, — это проверка, пусты ли эти структуры или нет.
Если вы похожи на меня, то, вероятно, вы пытались взаимодействовать с классом Collection так, как если бы это был массив (случайно или намеренно). Хотя в большинстве случаев это возможно, существует одна распространенная «ловушка», о которой нужно знать, чтобы избежать багов в вашем коде! На самом деле, я написал эту статью потому, что сам попался на эту ловушку и потратил немало времени, пытаясь понять, что происходит.
https://ashallendesign.co.uk/blog/how-to-check-if-a-laravel-collection-is-empty
👉 @php_lib
Как веб-разработчику на Laravel, вам часто придется работать с коллекциями, массивами PHP и массивами JavaScript. Одна из распространенных задач, с которой я сталкиваюсь регулярно, — это проверка, пусты ли эти структуры или нет.
Если вы похожи на меня, то, вероятно, вы пытались взаимодействовать с классом Collection так, как если бы это был массив (случайно или намеренно). Хотя в большинстве случаев это возможно, существует одна распространенная «ловушка», о которой нужно знать, чтобы избежать багов в вашем коде! На самом деле, я написал эту статью потому, что сам попался на эту ловушку и потратил немало времени, пытаясь понять, что происходит.
https://ashallendesign.co.uk/blog/how-to-check-if-a-laravel-collection-is-empty
👉 @php_lib
👍3
Профайлинг Laravel приложений с XDebug и PHPStorm
Привет, меня зовут Ваня, я работаю PHP-разработчиком в Санкт-Петербургском электротехническом университете ЛЭТИ. Профайлинг приложений важный этап перед релизом ресурсоёмкой фичи, везде трубят про удобную отладку PHP-приложений при помощи XDebug и PHPStorm, однако напрочь забывают про замеры времени операций, которые, порой, превышают те самые 3 секунды, которые пользователь будет ждать на странице. Если у Вас есть метод API, который долго работает, самое время его проверить профайлером XDebug, а PHPStorm поможет красиво визуализировать и изучить файл профиля.
Я не буду писать про настройку XDebug вместе с Docker контейнером и Laravel Sail, потому что про это есть тонна статей, в том числе и на русском. Однако, эта статья предполагает, что у Вас есть настроенный XDebug в связке с PHPStorm в Docker контейнере или другой среде.
https://habr.com/ru/articles/788946/
👉 @php_lib
Привет, меня зовут Ваня, я работаю PHP-разработчиком в Санкт-Петербургском электротехническом университете ЛЭТИ. Профайлинг приложений важный этап перед релизом ресурсоёмкой фичи, везде трубят про удобную отладку PHP-приложений при помощи XDebug и PHPStorm, однако напрочь забывают про замеры времени операций, которые, порой, превышают те самые 3 секунды, которые пользователь будет ждать на странице. Если у Вас есть метод API, который долго работает, самое время его проверить профайлером XDebug, а PHPStorm поможет красиво визуализировать и изучить файл профиля.
Я не буду писать про настройку XDebug вместе с Docker контейнером и Laravel Sail, потому что про это есть тонна статей, в том числе и на русском. Однако, эта статья предполагает, что у Вас есть настроенный XDebug в связке с PHPStorm в Docker контейнере или другой среде.
https://habr.com/ru/articles/788946/
👉 @php_lib
👍7
Введение в PHPCTL
В первые годы многие люди использовали решения вроде LAMP, WAMP, XAMPP и т.д. Для тех, кто не знаком с тем временем, это были наборы инструментов, которые включали Apache, MySQL и PHP, и их устанавливали как любое другое приложение с помощью знаменитого подхода "Далее, далее, далее...".
Со временем люди перестали использовать подобные инструменты, особенно с появлением встроенного веб-сервера в PHP, поэтому больше нет необходимости настраивать веб-сервер, такой как Apache или Nginx.
Кроме того, появилась и закрепилась еще одна концепция — использование контейнеров, которые стали очень популярны благодаря инструменту Docker (хотя есть и другие среды выполнения).
https://leocavalcante.notion.site/Introduction-to-PHPCTL-aec7224730e245ff889a89d65a4fbe07
👉 @php_lib
В первые годы многие люди использовали решения вроде LAMP, WAMP, XAMPP и т.д. Для тех, кто не знаком с тем временем, это были наборы инструментов, которые включали Apache, MySQL и PHP, и их устанавливали как любое другое приложение с помощью знаменитого подхода "Далее, далее, далее...".
Со временем люди перестали использовать подобные инструменты, особенно с появлением встроенного веб-сервера в PHP, поэтому больше нет необходимости настраивать веб-сервер, такой как Apache или Nginx.
Кроме того, появилась и закрепилась еще одна концепция — использование контейнеров, которые стали очень популярны благодаря инструменту Docker (хотя есть и другие среды выполнения).
https://leocavalcante.notion.site/Introduction-to-PHPCTL-aec7224730e245ff889a89d65a4fbe07
👉 @php_lib
👍2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
💡Советы и хитрости PhpStorm - Store Window Layout
Вам не нравится адаптировать положение окон инструментов при каждом новом проекте? (например, дерево файлов слева направо).
Вы можете сохранить их.
👉 @php_lib
Вам не нравится адаптировать положение окон инструментов при каждом новом проекте? (например, дерево файлов слева направо).
Вы можете сохранить их.
👉 @php_lib
👍4
Gemini API PHP Client
Клиент Google Gemini API для PHP позволяет вам использовать модель искусственного интеллекта Gemini.
Установка
Базовая генерация текста
https://github.com/gemini-api-php/client
👉 @php_lib
Клиент Google Gemini API для PHP позволяет вам использовать модель искусственного интеллекта Gemini.
Установка
composer require gemini-api-php/client
Базовая генерация текста
use GeminiAPI\Client;
use GeminiAPI\Resources\Parts\TextPart;
$client = new Client('GEMINI_API_KEY');
$response = $client->geminiPro()->generateContent(
new TextPart('PHP in less than 100 chars'),
);
print $response->text();
// PHP: A server-side scripting language used to create dynamic web applications.
// Easy to learn, widely used, and open-source.
https://github.com/gemini-api-php/client
👉 @php_lib
👍6
PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами
Известно, что PHP активно использует механизм copy-on-write. Это означает, что при попытке внутри функции что-то записать в переданные ей параметры, вначале будет сделана копия этой переменной, а уж затем в неё что-то запишется. Такая же ситуация наблюдается с итерацией массива с помощью foreach. Отсюда следует, что вам потребуется увеличить количество памяти для создания копии переменной и времени (ресурсов ЦП), чтобы всё это проделать. Т.е. возникнет пауза, прежде чем PHP перейдёт к следующей строчке вашей программы.
https://habr.com/ru/articles/746868/
👉 @php_lib
Известно, что PHP активно использует механизм copy-on-write. Это означает, что при попытке внутри функции что-то записать в переданные ей параметры, вначале будет сделана копия этой переменной, а уж затем в неё что-то запишется. Такая же ситуация наблюдается с итерацией массива с помощью foreach. Отсюда следует, что вам потребуется увеличить количество памяти для создания копии переменной и времени (ресурсов ЦП), чтобы всё это проделать. Т.е. возникнет пауза, прежде чем PHP перейдёт к следующей строчке вашей программы.
https://habr.com/ru/articles/746868/
👉 @php_lib
👍4
Показываем статистику в реальном времени с Laravel Volt
Для реализации этой возможности нам необходим метод отслеживания активных пользователей. Одним из вариантов является запись активных пользователей в таблицу базы данных. Каждая запись будет содержать идентификатор пользователя и временную метку, когда он был активен. Затем можно проверить активность за последние 5 минут или за любой другой желаемый промежуток времени. Другой способ заключается в наличии столбца "last_login_at" в таблице пользователей. Третий вариант - использование сервера web-sockets для получения подсчета активных пользователей в реальном времени.
В данной статье я остановлюсь на использовании Redis. Я люблю Redis за то, что это простая база данных in-memory, но при этом очень мощная. Я уже использовал этот метод, и он способен масштабироваться до тысяч и даже миллионов пользователей.
https://ahmedash.dev/blog/laravel-core-bits/volt-live-users-stats/
👉 @php_lib
Для реализации этой возможности нам необходим метод отслеживания активных пользователей. Одним из вариантов является запись активных пользователей в таблицу базы данных. Каждая запись будет содержать идентификатор пользователя и временную метку, когда он был активен. Затем можно проверить активность за последние 5 минут или за любой другой желаемый промежуток времени. Другой способ заключается в наличии столбца "last_login_at" в таблице пользователей. Третий вариант - использование сервера web-sockets для получения подсчета активных пользователей в реальном времени.
В данной статье я остановлюсь на использовании Redis. Я люблю Redis за то, что это простая база данных in-memory, но при этом очень мощная. Я уже использовал этот метод, и он способен масштабироваться до тысяч и даже миллионов пользователей.
https://ahmedash.dev/blog/laravel-core-bits/volt-live-users-stats/
👉 @php_lib
👍3
🚨 Совет по безопасности Livewire: Всегда выполняйте авторизацию своих действий! 🔒
Никогда не доверяйте пользовательскому вводу — всегда проверяйте права доступа перед выполнением важных операций. Если вы уже используете Gates и Policies, работа с Livewire покажется вам привычной! 🏡💪
#Laravel #Livewire
👉 @php_lib
Никогда не доверяйте пользовательскому вводу — всегда проверяйте права доступа перед выполнением важных операций. Если вы уже используете Gates и Policies, работа с Livewire покажется вам привычной! 🏡💪
#Laravel #Livewire
👉 @php_lib
👍4
Полезная статистика по Laravel: Доля рынка Laravel и тенденции развития в 2024 году
https://techjury.net/blog/laravel-statistics/
👉 @php_lib
https://techjury.net/blog/laravel-statistics/
👉 @php_lib
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Бесплатное IT-образование в 2024
Отобрали для вас полезные телеграм-каналы, которые помогут освоить программирование и другие IT-направления
Выбирайте нужное и подписывайтесь:
👩💻 С/С++: @Cpportal
📱 GitHub: @git_developer
🤓 Книги айти: @portalToIT
👩💻 Golang: @juniorGolang
👩💻 PHP: @PHPortal
👩💻 Моб. разработка: @MobDev
👩💻 Java: @Java_Iibrary
👩💻 Frontend: @FrontendPortal
⚙️ Backend: @BackendPortal
👩💻 Python: @PythonPortal
👩💻 C#: @KodBlog
🖥 Базы Данных & SQL: @SQL
👩💻 Разработка игр: @GameDevgx
👩💻 DevOps: @loose_code
🖥 Data Science: @DataSciencegx
🤔 Хакинг & ИБ: @cybersecinform
🐞 Тестирование: @QAPortal
📱 Маркетинг: @MarketingPortal
🖥 Дизайн: @PortalToDesign
➡️ Сохраняйте себе, чтобы не потерять
Отобрали для вас полезные телеграм-каналы, которые помогут освоить программирование и другие IT-направления
Выбирайте нужное и подписывайтесь:
🐞 Тестирование: @QAPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1