Laravel вводить метод globalOptions, який спрощує налаштування HTTP-клієнта в усьому застосунку. Ця функція дозволяє визначити стандартну поведінку клієнта, зменшуючи повторення коду та зберігаючи узгодженість.
Коли ви працюєте з кількома зовнішніми API, часто виникає необхідність повторно налаштовувати таймстри, заголовки та інші параметри. Тепер HTTP-клієнт Laravel дозволяє встановлювати ці налаштування глобально, забезпечуючи єдину базу для всіх запитів:
use Illuminate\Support\Facades\Http;
// Встановіть глобальні опції в сервісному провайдері
Http::globalOptions([
'timeout' => 5,
'connect_timeout' => 2,
]);
Після налаштування ці опції автоматично застосовуються до всіх HTTP-запитів, виконаних через HTTP-клієнт Laravel, якщо їх не переоприділити для окремих запитів.
Цей підхід особливо корисний для застосунків, які взаємодіють із багатьма сторонніми сервісами. Ось як ви можете реалізувати глобальну конфігурацію у сервісному провайдері:
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Ініціалізація послуг у застосунку.
*/
public function boot(): void
{
Http::globalOptions([
// Встановіть розумні таймстри
'timeout' => 8,
'connect_timeout' => 3,
// Додайте стандартні заголовки
'headers' => [
'User-Agent' => 'ShoppingPortal/2.1',
'Accept' => 'application/json',
],
// Налаштуйте стандартну поведінку повторних спроб
'retry' => 2,
'retry_delay' => 150,
]);
}
}
Хоча глобальні налаштування створюють стандарти за замовчуванням, ви можете переоприділити конкретні опції, коли це необхідно:
// Використовує глобальні опції та специфічні для цього запиту
Http::withToken('payment-gateway-token')
->post('https://payments.example.com/process', [
'amount' => 99.95,
'currency' => 'USD'
]);
// Переоприділити тайм-аут лише для цього запиту
Http::timeout(25)
->get('https://inventory.example.com/stock-check');
Зверніть увагу, що виклик globalOptions кілька разів повністю замінює попередні налаштування, а не об'єднує їх. Налагодьте налаштування у вашому сервісному провайдері так, щоб усі глобальні опції були в одному виклику конфігурації для максимальної ясності та передбачуваності.
Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю