# PHP و لاراول > https://docs.errora.org/platforms/php-laravel ## لاراول ```bash composer require sentry/sentry-laravel php artisan sentry:publish --dsn=https://@/ ``` دستور `sentry:publish` فایل `config/sentry.php` را می‌سازد و DSN را به `.env` اضافه می‌کند: ```dotenv SENTRY_LARAVEL_DSN=https://@/ SENTRY_TRACES_SAMPLE_RATE=0.2 SENTRY_PROFILES_SAMPLE_RATE=1.0 SENTRY_ENVIRONMENT=production SENTRY_RELEASE=myapp@1.4.2 ``` ### گزارش استثناها لاراول ۱۱ به بعد (`bootstrap/app.php`): ```php ->withExceptions(function (Illuminate\Foundation\Configuration\Exceptions $exceptions) { Sentry\Laravel\Integration::handles($exceptions); }) ``` لاراول ۱۰ و پیش از آن: در متد `register()` فایل `app/Exceptions/Handler.php` تابع `Integration::captureUnhandledException($e)` را صدا بزنید. ### ردیابی کارایی فقط `SENTRY_TRACES_SAMPLE_RATE` کافی است تا درخواست‌ها، کوئری‌ها، جاب‌های صف، کش، فراخوانی‌های HTTP و رندر ویو ابزارگذاری شوند. برای تراکنش کامل درخواست، میان‌افزار را هم اضافه کنید: ```php // bootstrap/app.php ->withMiddleware(function (Middleware $middleware) { $middleware->append(\Sentry\Laravel\Tracing\Middleware::class); }) ``` ### لاگ ```php // config/logging.php 'channels' => [ 'sentry' => [ 'driver' => 'sentry', 'level' => env('LOG_LEVEL', 'info'), 'bubble' => true, ], 'stack' => ['driver' => 'stack', 'channels' => ['single', 'sentry']], ], ``` بعد از آن `Log::warning('payment retried', ['order_id' => $order->id]);` با همان زمینه در [لاگ‌ها](/products/logs) دیده می‌شود. ### دستورهای زمان‌بندی‌شده (مانیتور کران) ```php $schedule->command('invoices:generate') ->dailyAt('03:00') ->sentryMonitor('nightly-invoices'); ``` چک‌این‌ها روی همان اسلاگ مانیتور می‌نشینند — نگاه کنید به [مانیتورینگ کران](/products/crons). ### اطلاعات کاربر ```php \Sentry\configureScope(function (\Sentry\State\Scope $scope) { $scope->setUser(['id' => auth()->id(), 'username' => auth()->user()?->name]); }); ``` ## PHP ساده ```bash composer require sentry/sdk ``` ```php \Sentry\init([ 'dsn' => getenv('SENTRY_DSN'), 'environment' => 'production', 'release' => 'myapp@1.4.2', 'traces_sample_rate' => 0.2, 'send_default_pii' => false, ]); try { riskyThing(); } catch (\Throwable $e) { \Sentry\captureException($e); } ``` ## Symfony ```bash composer require sentry/sentry-symfony ``` ```yaml # config/packages/sentry.yaml sentry: dsn: '%env(SENTRY_DSN)%' options: traces_sample_rate: 0.2 environment: '%kernel.environment%' ``` ## بررسی نهایی ```bash php artisan sentry:test ``` این دستور یک استثنای آزمایشی از مسیر DSN تنظیم‌شده می‌فرستد و نتیجه را چاپ می‌کند. سپس صفحهٔ **خطاها** را ببینید.