PHP-пакет spatie/ping дозволяє просто виконувати команди ping за протоколом ICMP та обробляти результати у структурованому вигляді. Ping допомагає визначити, чи доступний віддалений хост, що забезпечує мережеву діагностику та вимірювання затримки.
Спеціалісти Spatie створили пакет ping для PHP, щоб спростити виконання команд ping та отримання структурованих даних:
Під час розробки цієї функції я шукав надійні PHP-пакети для виконання ping в Unix та повернення структурованих результатів, а також для відкриття TCP-з’єднання. Оскільки таких пакетів не було, я вирішив написати їх сам.
Яким чином працює цей пакет?
Перед тим як ознайомитися з PHP-пакетом, розгляньмо команду з параметрами за замовчуванням. Вона відправляє один пакет і встановлює таймаут у 5 секунд:
$ ping -c 1 -W 5000 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=251 time=24.049 ms
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 24.049/24.049/24.049/nan ms
З документації ви дізнаєтеся, що можете використовувати клас Ping (з налаштовуваними параметрами) для виконання команди ping. Результат міститиме корисну інформацію у структурованому вигляді:
use Spatie\Ping\Ping;
$result = (new Ping('8.8.8.8'))->run();
// Основний статус
echo $result->isSuccess() ? 'Успіх' : 'Не вдалося';
echo $result->hasError() ? "Помилка: {$result->error()->value}" : 'Помилок немає';
// Статистика пакетів
echo "Передано пакетів: {$result->packetsTransmitted()}";
echo "Отримано пакетів: {$result->packetsReceived()}";
echo "Втрата пакетів: {$result->packetLossPercentage()}%";
// Інформація про затримку
echo "Мінімальний час: {$result->minimumTimeInMs()}ms";
echo "Максимальний час: {$result->maximumTimeInMs()}ms";
echo "Середній час: {$result->averageTimeInMs()}ms";
echo "Середнє квадратичне відхилення: {$result->standardDeviationTimeInMs()}ms";
Також ви можете отримати окремі рядки ping:
// Окремі рядки ping
foreach ($result->lines() as $line) {
echo "Відповідь: {$line->getRawLine()} ({$line->getTimeInMs()}ms)";
}
🧑💻 Розпочати роботу з цим пакетом можна на GitHub: spatie/ping
Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!
Модельний контекстний протокол (MCP) відкриває нові горизонти в інтеграції AI-додатків з PHP. Дізнайтеся, як легко створити сервер, що відповідає MCP, та які можливості відкриваються для вашого проєкту
Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel