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

По всем вопросам @evgenycarter
Download Telegram
Веб-скрепинг с помощью PHP: Пошаговое руководство

Веб-скрепинг становится все более популярным и в настоящее время является одной из актуальных тем в ИТ-сообществе. В результате появилось несколько библиотек, позволяющих собирать данные с веб-сайтов. Здесь вы узнаете, как создать веб-скрепер на PHP, используя одну из самых популярных библиотек для веб-скрепинга.

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

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, "https://www.w3schools.com/jquery/demo_test_post.asp");
// specify that the cURL request is a POST
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

// define the body of the request
curl_setopt($curl, CURLOPT_POSTFIELDS,
// http_build_query is required to simulate
// a FormData request. Ignore it on a JSON request
http_build_query(
array(
"name" => "Donald Duck",
"city" => "Duckburg"
)
)
);

// define the body of the request
curl_setopt($curl, CURLOPT_POSTFIELDS,
array(
"name" => "Donald Duck",
"city" => "Duckburg"
)
);

// replicate the AJAX call
$result = curl_exec($curl);

https://www.zenrows.com/blog/web-scraping-php

👉 @php_lib
😱4👍2
Laravel Herd 1.9 теперь доступен для macOS и добавляет поддержку PHP 8.4.0 Alpha!

Если вы хотите запустить свои проекты на PHP 8.4 до его официального релиза, то нет ничего проще 🚀.

https://herd.laravel.com/

👉 @php_lib
👍4
Совет по Laravel💡

Знаете ли вы... В Laravel есть метод `withProgressBar()`, который позволяет добавлять прогресс-бары к консольным командам.

#Laravel

👉 @php_lib
👍5
Совет по Laravel💡


Если вы хотите автоматически удалять старые записи, воспользуйтесь трейтом Prunable. Не нужно писать собственные команды.

#Laravel

👉 @php_lib
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Добавляет поддержку vkurko/calendar в Filament PHP

Этот пакет добавляет поддержку vkurko/calendar (бесплатная альтернатива FullCalendar с открытым исходным кодом) в ваши панели FilamentPHP.

https://github.com/GuavaCZ/calendar

👉 @php_lib
👍3
Как перенести MySQL из DBngin в Laravel Herd

С тех пор как в Laravel Herd Pro появилась возможность управлять базами данных и кэш-сервисами MySQL, Postgres и Redis, я хотел перейти с DBngin на Herd MySQL и Redis.

Недавно, с небольшой помощью Марселя Посиота, мне удалось найти простой способ перенести все мои локальные базы данных на MySQL-сервис Herd без потери данных.

https://laravel-news.com/migrate-mysql-from-dbngin-herd

👉 @php_lib
👍1
Совет по Laravel💡: Уникальные идентификаторы запросов

Вам когда-нибудь требовалось создать код уникального идентификатора для запроса, например, для целей кэширования? Laravel поставляется с методом «fingerprint», который позволяет вам генерировать уникальный идентификатор для ваших запросов 🚀.


#laravel

👉 @php_lib
👍5
Совет по Laravel💡

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

#laravel

👉 @php_lib
👍2
Совет по php 💡

Используйте нотацию "точка" Laravel для доступа к значениям вложенных массивов. Упростите доступ к многомерным массивам с помощью одной строки, разделенной точками.

👉 @php_lib
👍5😱3
Совет по PHP

Очень простой, но очень важный:

1. Всегда определяйте, какой тип значения будет возвращать ваша функция. (I узнал об этом из Java ☕️ )
2. Всегда сохраняйте резервное значение в конце функции. Это обеспечит стабильность вашего кода. 💪

👉 @php_lib
👍6💯1
Совет по Laravel 💡

🛠️ Создайте собственные директивы Blade для часто используемых блоков кода в файлах представлений.

🧹 Это сделает ваши представления чище и проще в работе.

💁‍♂️ В качестве примера делюсь своей любимой пользовательской директивой Blade

👉 @php_lib
5👍2
Совет по PHP/Laravel 💡

Вместо того чтобы выполнять цикл `foreach` по массиву для поиска значения записи, вы можете использовать метод Laravel Collection `contains()`.

👉 @php_lib
👍7
Совет по PHP/Laravel 💡

Вместо того чтобы выполнять цикл foreach по массиву для поиска значения записи, вы можете использовать метод Laravel Collection contains().

👉 @php_lib
👍8
Совет из документации по Laravel💡

Если вы хотите войти в систему от имени конкретного пользователя, чтобы проверить, как выглядит какая-то функция в его рабочем пространстве, вы можете использовать методы `Auth::login()` или `Auth::loginUsingId()`.

https://laravel.com/docs/11.x/authentication#authenticate-a-user-instance

👉 @php_lib
👍3
Совет по Laravel💡: Assert JSON Fragments

При тестировании API нам часто нужно проверить, содержит ли ответ определенный ключ с ожидаемыми данными. Laravel поставляется с функцией «assertJsonFragment», которая позволяет сделать именно это 🚀.

👉 @php_lib
👍1
Привет, разработчики Laravel 👩‍💻

Начиная с Laravel v11.18.0, в методе Str::limit() появился новый параметр preserveWords.

Пример использования метода limit() — отображение предварительных версий текстового контента, таких как резюме или отрывки блог-постов.

Раньше при использовании метода limit он мог разрывать слова посередине.

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

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

#laravel #php

👉 @php_lib
👍7👌1
Совет по Laravel 💡

Вам нужно использовать одни и те же правила проверки пароля для разных маршрутов пользователей (например, при регистрации и создании панели администратора)?

Обратите внимание на функцию `Password::defaults()`.

Ознакомьтесь со всеми правилами в документации: https://github.com/illuminate/validation/blob/master/Rules/Password.php

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

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

👉 @php_lib
👍6
Media is too big
VIEW IN TELEGRAM
Что нового в мире PHP и Laravel случилось в июле расскажут Сергей Пантелеев и Данил Щуцкий!

00:00 - Обзор новостей PHP
02:41 - Обзор обновлений Laravel
08:27 - Релиз Laravel 11.15
10:53 - Релиз Laravel 11.16
11:36 - Релиз Laravel 11.17

источник

👉 @php_lib
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по Laravel 💡

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

👉 @php_lib
👍8
Совет по Laravel💡

Хотите быстро вывести SQL-запросы, выполненные во время вашего запроса?

И не хотите устанавливать Debugbar, Telescope и т.п.?

Используйте DB::listen() с toRawSql()!

👉 @php_lib
👍12