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

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

Зачем нужен статический анализ кода, кажется, никому объяснять сегодня уже не нужно. Но одно дело — поддерживать код «чистым» с первого коммита, и совсем другое — встраивать новый инструмент в проект, который за несколько лет успел разрастись и пережить несколько итераций глобального рефакторинга. Мы работаем с большим количеством плохо документированных источников данных, а статический анализ кода помогает учитывать самые разные граничные случаи. Далее

👉 @php_lib
👍3
Overriding vendor classes

Один из хардкорных способов избавиться от класса, используемого по всему проекту, при рефакторинге — это убрать его из автозагрузки и под тем же неймспейсом загрузить другой. На эту тему есть плагины для композера, но что если это можно сделать и без них? Автор статьи подробно рассказывает, как этого можно добиться нативными средствами пакетного менеджера.

https://downing.tech/posts/overriding-vendor-classes

👉 @php_lib
👍2
Паттерн Action-Domain-Responder (Eng)

Является усовершенствованием паттерна Model-View-Controller и более удобен для создания веб-приложений.

Большинство фреймворков на данный момент использует MVC. Впервые он был представлен в 70-х годах и предназначался для разработки десктопных приложений. Несмотря на это, в течении долгого времени, паттерн используется и для веб-приложений.

В этой статье мы познакомимся с паттерном Action-Domain-Responder (ADR — Действие-Домен-Ответчик) и научимся его применять в Laravel.

👉 @php_lib
👍5
Не нужно стыдиться PHP

Недавно я решил зайти на сайт cybersport. ru (проект VK GROUP), где хотел посмотреть результаты матчей наших мальчиков по Dote. Мой взгляд упал на статью "Когда будет новый сайт". Там помимо общей информации было пару фраз про PHP и Symfony, которые меня расстроили.

👉 @php_lib
👍103
Media is too big
VIEW IN TELEGRAM
PHP, PDO SQL Injection

SQL Injection минимум который должен знать каждый разработчик код которого работает в production

00:00 Вступление и оглавление
01:06 Определения (теория)
01:45 Чем опасны SQL Injection
03:34 Практический стенд
06:12 Обхода аутедентификации
09:23 Модификации базы данных
11:47 Защита с помощью placeholder
15:49 Защита там где placeholder не применимы
18:52 Поддержи канал

👉 @php_lib
👍9
PHP - язык для написания динамических веб-страниц
Лекции

https://i.voenmeh.ru/kafi5/Kam.loc/PHPzadan/LEKCII_PHP.html

👉 @php_lib
👍1
Вышла Joomla 4.2

Проект Joomla рад сообщить о выходе Joomla 4.2. Этот релиз продолжает высокие стандарты Joomla 4 в области доступного веб-дизайна и предлагает новые функции, подчеркивая ценности Joomla в отношении простоты и безопасности на еще более мощной веб-платформе с открытым исходным кодом.

Что нового в Joomla 4.2?

Возможность скрыть столбцы в таблицах списков
Возможность ввода текста в поле типа "media"
Если категория не опубликована, отображать другую иконку статуса
Возможность отключать отслеживание метаданных сессии для гостевых пользователей
Умный поиск: индексирование настраиваемых полей
Умный поиск: нечеткое сопоставление слов
Многофакторная аутентификация (заменяет двухфакторную аутентификацию)
Горячие клавиши в админке: "J + [key]"
Поддержка Windows Hello WebAuthn
Пользовательские поля: новый тип - пункт меню

Скачать Joomla 4.2.0 с официальной страницы

Скачать Joomla 4.2.0 с GitHub

👉 @php_lib
👍3
Сравнение php-fpm, nginx-unit и laravel-octane

Статья посвящена сравнению производительности различных веб-серверов для приложения, построенного на базе laravel. Ниже будет много графиков и параметров конфигурации и мои личные выводы, никак не претендующие на вселенскую истину.

👉 @php_lib
👍4
Media is too big
VIEW IN TELEGRAM
Drag & Drop на чистом JavaScript и PHP

0:00 Всем привет!
0:45 Что нам понадобится?
1:02 Подготавливаем проект
4:18 Создаем область Drag & Drop
11:20 Вешаем JavaScript события
19:45 Отключаем стандартное поведение при перетаскивании файла
22:20 Получаем перетаскиваемый файл(ы)
23:22 Делаем превью для загружаемых файлов
35:06 Создаем кнопку для загрузки
37:30 Создаем функцию для загрузки
47:33 Закругляемся

GitHub репозиторий: https://github.com/m1nyasha/drag-and-drop-js-php

👉 @php_lib
👍9
Используйте blade-директиву forelse, вместо foreach вложенную в if-условие.

👉 @php_lib
👍13
Если вам нужно промаппить постраничные данные, то используйте метод through, а не map. Map удалит экземпляр пагинации и вернёт коллекцию, в то
время как through работает с самими данными.

👉 @php_lib
👍5
Пример использования Google Indexing API на PHP

В этой статье приведена подробная инструкция по использованию Google Indexing API и выполнению запросов на индексирование страниц через PHP. Indexing API - это очень простой способ для информирования Google об изменениях у вас на сайте.

👉 @php_lib
👍2
Как найти самый медленный запрос в вашем приложении

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

👉 @php_lib
👍5
Советы по работе с легаси кодом в PHP

Большинство статей и книг, которые я читал, всецело фокусируются на создании нового программного обеспечения. Однако, по моему личному опыту я обнаружил, что мои самые распространенные задачи — это не создание новых систем, а поддержание старых трещащих по швам страхолюдин, изначальный архитектор которых уже давно покинул компанию. Далее

👉 @php_lib
👍2
Как создать валидацию модальной формы Bootstrap в Laravel

Чтобы создать модальную проверку формы начальной загрузки в Laravel, используйте простую проверку формы ajax с использованием модальной формы начальной загрузки. Сервер проверяет все поля ввода на соответствие указанной валидации , и если какая-либо из валидаций нарушается, он перенаправляет на нашу страницу создания с сообщениями об ошибках. Теперь мы создаем приложение бомбардира Лиги чемпионов УЕФА, используя Laravel Bootstrap Modal. Далее

original https://appdividend.com/2022/03/01/laravel-bootstrap-modal-form-validation/

👉 @php_lib
👍1
Подборка PHP библиотек для парсинга сайтов

Imangazaliev/Didom – очень быстрый парсер и HTML-scrapper;
Oscarotero/Embed – хорошее решение для извлечения любой информации с веб- страницы;
Friensofphp/Goutte – простой web-scrapper;
Symfony/Panther – библиотека тестирования браузера для PHP и Symfony;
Mvdbos/Php-Spider – настраиваемый и расширяемый PHP-парсер.

👉 @php_lib
🔥1
Всплывающая форма обратной связи

Статья, в которой рассмотрим, как на сайт установить всплывающую форму обратной связи с капчей и возможностью прикрепления к ней файлов. Далее

👉 @php_lib
👍3