abac2500 / laravel-robots
Библиотека Laravel для генерации файлов Robots
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/abac2500/laravel-robots
Requires
- php: ^8.3
- illuminate/contracts: ^12.0
- illuminate/support: ^12.0
Requires (Dev)
- mockery/mockery: ^1.6
- orchestra/testbench: ^10.0
- phpunit/phpunit: ^12.0
This package is not auto-updated.
Last update: 2025-12-19 22:33:03 UTC
README
Удобная библиотека для генерации файлов Robots в Laravel.
Возможности
- 🤖 Поддержка основных директив Robots (User-agent, Allow, Disallow, Sitemap, Clean-param)
- 📦 Автоматическая регистрация через Laravel Package Discovery
- 🎯 Callback API для удобной конфигурации User-agent блоков
- 🔍 Встроенный Enum с популярными поисковиками
- 🧪 Базовое покрытие тестами
- 📝 Подробная документация
Требования
- PHP 8.3 или выше
- Laravel 12.x
Установка
Установите пакет через Composer:
composer require abac2500/laravel-robots
Пакет автоматически зарегистрируется благодаря Laravel Package Discovery.
Использование
Базовое использование
use Abac2500\LaravelRobots\Enums\SearchEngine; use Abac2500\LaravelRobots\Facades\Robots; use Abac2500\LaravelRobots\RobotsGenerator; $robots = Robots::agent(SearchEngine::ALL, fn (RobotsGenerator $robots) => $robots->disallow('/example') ->allow('/public') ) ->sitemap('https://example.com/sitemap.xml') ->render(); echo $robots;
Результат:
User-agent: *
Disallow: /example
Allow: /public
Sitemap: https://example.com/sitemap.xml
SearchEngine Enum
Библиотека предоставляет enum с популярными поисковыми системами:
use Abac2500\LaravelRobots\Enums\SearchEngine; SearchEngine::ALL // '*' SearchEngine::GOOGLEBOT // 'Googlebot' SearchEngine::GOOGLEBOT_NEWS // 'Googlebot-News' SearchEngine::GOOGLEBOT_IMAGE // 'Googlebot-Image' SearchEngine::GOOGLEBOT_VIDEO // 'Googlebot-Video' SearchEngine::BINGBOT // 'Bingbot' SearchEngine::SLURP // 'Slurp' SearchEngine::DUCKDUCKBOT // 'DuckDuckBot' SearchEngine::BAIDUSPIDER // 'Baiduspider' SearchEngine::FACEBOT // 'facebot' SearchEngine::IA_ARCHIVER // 'ia_archiver' SearchEngine::AHREFSBOT // 'AhrefsBot' SearchEngine::YANDEX // 'Yandex'
Директивы
Sitemap
Добавить ссылку на sitemap:
// Одна Sitemap Robots::sitemap('https://example.com/sitemap.xml'); // Несколько Sitemap Robots::sitemap('https://example.com/sitemap.xml') ->sitemap('https://example.com/sitemap-news.xml');
User-agent
Создать блок директив для User-agent с использованием Callback:
// С использованием Enum Robots::agent(SearchEngine::GOOGLEBOT, fn (RobotsGenerator $robots) => $robots->disallow('/example') ->allow('/') ); // Без Callback Robots::agent(SearchEngine::BINGBOT) ->disallow('/example');
Disallow
Запретить доступ к пути:
Robots::agent(SearchEngine::ALL, fn (RobotsGenerator $robots) => $robots->disallow('/example') );
Allow
Разрешить доступ к пути:
Robots::agent(SearchEngine::ALL, fn (RobotsGenerator $robots) => $robots->allow('/public') );
Clean-param
Директива для поисковых систем (используется Yandex):
// Один параметр Robots::agent(SearchEngine::YANDEX, fn (RobotsGenerator $robots) => $robots->cleanParam('ref') ); // С указанием пути Robots::agent(SearchEngine::YANDEX, fn (RobotsGenerator $robots) => $robots->cleanParam('ref', '/example/'); }); // Несколько параметров (объединяются через &) Robots::agent(SearchEngine::YANDEX, fn (RobotsGenerator $robots) => $robots->cleanParam(['ref', 'utm_source'], '/example/') );
Комментарии
Добавить комментарий:
Robots::comment('Комментарий');
Пустые строки
Добавить пустую строку для улучшения читаемости:
Robots::blank();
Использование в контроллере
Создайте маршрут для отдачи Robots:
// routes/web.php use Abac2500\LaravelRobots\Enums\SearchEngine; use Abac2500\LaravelRobots\Facades\Robots; use Abac2500\LaravelRobots\RobotsGenerator; Route::get('/robots.txt', function () { $robots = Robots::agent(SearchEngine::ALL, fn (RobotsGenerator $robots) => $robots->disallow('/example') ->allow('/') ) ->sitemap(url('/sitemap.xml')) ->render(); return response($robots, 200, [ 'Content-Type' => 'text/plain', ]); });
Тестирование
Запустить тесты:
composer install
composer test
Библиотека включает базовый набор тестов, покрывающих функции.
Лицензия
Этот пакет распространяется под лицензией MIT. Подробности в файле LICENSE.
Поддержка
Если вы обнаружили ошибку или хотите предложить улучшение, пожалуйста, создайте issue в репозитории проекта.
Автор
Abac2500 (Эдуард Кичаев)
Сделано с ❤️ для Laravel сообщества