Библиотека PHP программиста 👨🏼‍💻👩‍💻
2.18K subscribers
326 photos
169 videos
7 files
335 links
Полезные материалы по PHP, Laravel, Symfony, CodeIgniter, CakePHP, Phalcon

По всем вопросам @evgenycarter
Download Telegram
PHP-SPX простой профайлер трейсер для PHP

Работая с различными PHP проектами часто приходится дебажить приложение чтобы найти и исправить ошибку. Во многих случаях вполне хватает xDebug, однако он не подходит для всех задач. Иногда нужно понять почему та или иная страница долго загружается, что съедает так много памяти или просто как работает большой и запутанный код.

https://habr.com/ru/articles/505192/

👉 @php_lib
👍2
Обзор NativePHP. Инструмент для создания собственных нативных desktop приложений на Laravel

В этой статье я сделаю обзор NativePHP, который появился на Laracon US 2023. Видеообзор, который я сделал, вызвал большой интерес у аудитории, и я решил оформить статью про NativePHP, для тех кто любит читать.

https://habr.com/ru/articles/761740/

👉 @php_lib
👍4
Простая аутентификация на PHP

Многие новички до сих пор попадают в тупик при написании простейшей аутентификации в PHP. На Тостере с завидной регулярностью попадаются вопросы о том, как сравнить сохраненный пароль с паролем полученным из формы логина. Здесь будет краткая статья-туториал на эту тему.

Disclaimer: статья рассчитана на совершенных новичков. Умудрённые опытом разработчики ничего нового здесь не найдут, но могут указать на возможные недочёты =).

Для написания системы аутентификации будем использовать базу данных MySQL/MariaDB, PHP, PDO, функции для работы с паролями, для построения интерфейса возьмём bootstrap.

Полный код примера доступен на гитхабе: ссылка на Github.

👉 @php_lib
👍6
Разблокировка Real-Time с помощью WebSockets в Laravel с помощью Soketi

Представьте себе создание веб-приложений, которые реагируют мгновенно, где обновление данных и взаимодействие происходят в мгновение ока. Добро пожаловать в мир веб-разработки в реальном времени. В этой статье мы попытаемся создать простой пример использования соединения WebSocket в приложении Laravel с помощью Soketi.

Мы познакомимся с Soketi, установим необходимые инструменты и настроим Laravel для работы с WebSockets. К концу статьи у вас будет готова базовая система WebSocket.

https://fajarwz.com/blog/unlocking-real-time-with-websockets-in-laravel-with-soketi/

👉 @php_lib
👍4
3 года работы с AWS Lambda в режиме lift-and-shift

Давайте определимся с ситуацией. Мы ищем возможность масштабирования PHP-приложения. Погуглив, мы выяснили, что наиболее масштабируемым сервисом является AWS Lambda. Он не поддерживает PHP нативно, но у нас есть https://bref.sh. Кроме того, у нас есть книга Serverless Visually Explained, в которой рассказывается о том, что нужно знать, чтобы запустить PHP на AWS Lambda. Но у нас есть проект 8-летней давности, который не был разработан с нуля как бессерверный. Это не наследие. Не совсем. Он хорошо работает, имеет приличное тестовое покрытие, над ним работает горстка инженеров, и пока что он успешен. Просто она не была рассчитана на горизонтальное масштабирование. Что теперь?

https://blog.deleu.dev/lift-and-shift-aws-lambda/

👉 @php_lib
👍2
Совет по безопасности: увеличьте количество раундов bcrypt

Приветствую вас, друзья! На этой неделе мы отправимся в интересный и сложный мир, исследуя хэширование паролей, и рассмотрим очень простое изменение, которое вы должны сделать в своих приложениях для повышения безопасности, основываясь на двух PR, которые я недавно отправил в Laravel. Если возникнет интерес, я могу углубиться в тему хэширования в одной из следующих статей, а пока мы просто рассмотрим основы.

https://securinglaravel.com/p/security-tip-increase-your-bcrypt

👉 @php_lib
👍4
Генерация аватаров с инициалами на PHP

Для мобильного приложения я занимаюсь фронтенд-разработкой, и дизайн включает в себя множество аватаров. К сожалению, у нас нет аватаров наших пользователей. К счастью, у нас есть их имена, и я узнал из Outlook и Trello, что можно сделать отличные аватары с инициалами пользователя. В этом посте я покажу, как это сделать с помощью PHP.

https://tqdev.com/2022-generate-avatars-initials-php

👉 @php_lib
👍4
🔥 Совет по Laravel: wherePivot.

В отношениях "многие-ко-многим" можно добавить операторы where в таблицу pivot, используя метод `wherePivot`.

👉 @php_lib
👍6
Советы по работе с Laravel: Views

Совместное использование одной переменной с несколькими представлениями.

Возникала ли у вас необходимость в совместном использовании одной переменной с несколькими представлениями в Laravel? Вот простое решение.

use App\Models\Post;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
public function boot()
{
if (Schema::hasTable('posts')) {
View::share('recentPosts', Post::latest()->take(3)->get());
}
}
}

👉 @php_lib
👍4👎1
Встраиваем Lua в PHP через FFI

Foreign Function Interface — это перспективная альтернатива для традиционных PHP-расширений.

Сегодня мы будем разбирать FFI-библиотеку для работы с liblua5 из PHP, которая позволит исполнять скрипты на Lua из нашего приложения.

https://habr.com/ru/companies/vk/articles/681400/

👉 @php_lib
👍2
Расшифровка функций пустых значений в PHP: Когда какие функции использовать

В PHP проверка пустых значений является распространенной операцией, и существует несколько способов ее выполнения. Понимание различий между использованием !, is_null() и isset() очень важно, поскольку каждый из них проверяет различные условия:

https://dev.to/salmazz/php-check-for-empty-values-vs-isnull-vs-isset-vs-isempty-46k4

👉 @php_lib
👍4
Представляем Laravel Pulse. 💓

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

На следующей неделе на GitHub. Подарок от Laravel для вас.

https://pulse.laravel.com/

👉 @php_lib
👍7
Совет по безопасности: увеличьте количество раундов bcrypt

https://securinglaravel.com/p/security-tip-increase-your-bcrypt

👉 @php_lib
👍2
Исповедь ничтожества

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

P.S. Извиняюсь за кликбейтный заголовок, но, мне кажется, он лучше всего описывает содержание этой статьи.

P.P.S. Очень много текста внутри.

https://habr.com/ru/articles/683674/

👉 @php_lib
👍2👎2🤔1
Типичный Swagger без гмо

Кто из нас не был одурманен сказками про свагер? Мол, добавь эту волшебную штуку — да заживешь! Но плата за магию — зеленое болото нотаций. А нельзя ли обойтись только типизацией самого php?

https://habr.com/ru/articles/775056/

👉 @php_lib
👍2
Совет Laravel 🔥

В конструктор запросов Laravel входит функция `lockForUpdate()`. Она останавливает любые обновления или другую общую блокировку выбранной записи до тех пор, пока транзакция не будет завершена.

👉 @php_lib
👍5
Как успешно пройти собеседование на php-программиста? Рассказывает Айгуль Билык, HR-директор компании Hopper IT👇

👉 Заранее подумайте, как будете презентовать себя на интервью. Постарайтесь, чтобы ваша речь была не дольше 2-3 минут.
👉 Подготовьте ответы на самые популярные вопросы HR. Это поможет не теряться во время беседы.
👉 Внимательно ознакомьтесь с вакансией и ее требованиями. Подготовьте пример того, как вы использовали нужные работодателю скиллы на прежнем месте работы и как это помогло компании.
👉 Освежите в памяти нужные знания – и теорию, и практику. Это особенно пригодится на техническом этапе интервью.
👉 Внимательно ознакомьтесь с вакансией и требованиями работодателя. Подготовьте пример того, как вы использовали их раньше в своей работе.
👉 Посмотрите на YouTube записи публичных собеседований на подобные вакансии – это поможет понять, как проходит интервью и что могут спрашивать.

Не бойтесь ходить на собеседования и откликаться на вакансии! Посмотреть, кто прямо сейчас нужен в Hopper IT, можно здесь: https://vk.cc/cmH3yi
👍3👏1
Когда использовать трейты?

Когда использовать трейты? Никогда.
Ну, можно считать, что у трейта есть несколько преимуществ:

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

https://matthiasnoback.nl/2022/07/when-to-use-a-trait/

👉 @php_lib
👍41
Мутации в микросервисах: ставим задачу

Всем привет! Меня зовут Эмин Чернов, я руководитель платформенных команд и архитектор в компании Профи. Сегодня расскажу про то, как мы столкнулись с проблемой консистентных изменений данных в микросервисах и каким образом планируем её порешать.

https://habr.com/ru/articles/770122/

👉 @php_lib
👍4