تلسکوپ لاراول
- معرفی
- نصب و راه اندازی
- ارتقاء تلسکوپ
- فیلتر کردن
- برچسب زدن
- دیده بان های موجود
- نمایش آواتارهای کاربران
معرفی
تلسکوپ لاراول یک دستیار اشکال زدایی زیبا برای چارچوب لاراول است. تلسکوپ بینشی در مورد درخواستهایی که به برنامه شما وارد میشوند، استثناها، ورودیهای گزارش، پرسوجوهای پایگاه داده، کارهای در صف، نامهها، اعلانها، عملیات حافظه پنهان، وظایف برنامهریزیشده، تخلیههای متغیر و موارد دیگر را ارائه میدهد. تلسکوپ یک همراه فوق العاده برای محیط توسعه لاراول محلی شما می سازد.
نصب و راه اندازی
می توانید از Composer برای نصب تلسکوپ در پروژه لاراول خود استفاده کنید:
composer require laravel/telescope "^3.0"
پس از نصب تلسکوپ، دارایی های آن را با استفاده از
telescope:install
دستور Artisan منتشر کنید.
پس از نصب تلسکوپ، باید
migrate
دستور زیر را نیز اجرا کنید:
php artisan telescope:install php artisan migrate
نصب فقط در محیط های خاص
اگر قصد دارید فقط از تلسکوپ برای کمک به توسعه محلی خود استفاده کنید، می
توانید تلسکوپ را با استفاده از
--dev
پرچم نصب کنید:
composer require laravel/telescope "^3.0" --dev
پس از اجرا
telescope:install
، باید ثبت نام ارائه دهنده خدمات را از
فایل پیکربندی
TelescopeServiceProvider
خود حذف کنید.
app
در عوض، ارائهدهنده خدمات را به
register
روش زیر به صورت دستی ثبت کنید
AppServiceProvider
:
/** * Register any application services. * * @return void */public function register(){ if ($this->app->isLocal()) { $this->app->register(\Laravel\Telescope\TelescopeServiceProvider::class); $this->app->register(TelescopeServiceProvider::class); }}
همچنین باید با افزودن موارد زیر به فایل خود از
کشف خودکار
بسته تلسکوپ جلوگیری کنید
composer.json
:
"extra": { "laravel": { "dont-discover": [ "laravel/telescope" ] }},
سفارشی سازی مهاجرت
اگر نمیخواهید از مهاجرتهای پیشفرض تلسکوپ استفاده کنید، باید
Telescope::ignoreMigrations
متد موجود در
register
متد خود را فراخوانی کنید
AppServiceProvider
.
شما می توانید مهاجرت های پیش فرض را با استفاده از
php artisan vendor:publish --tag=telescope-migrations
دستور صادر کنید.
پیکربندی
پس از انتشار دارایی های تلسکوپ، فایل پیکربندی اولیه آن در
config/telescope.php
.
این فایل پیکربندی به شما این امکان را می دهد که گزینه های تماشاگر خود را
پیکربندی کنید و هر گزینه پیکربندی شامل شرحی از هدف خود است، بنابراین حتما این فایل را به طور کامل بررسی
کنید.
در صورت تمایل، می توانید مجموعه داده های تلسکوپ را به طور کامل با استفاده
از
enabled
گزینه پیکربندی غیرفعال کنید:
'enabled' => env('TELESCOPE_ENABLED', true),
هرس داده ها
بدون هرس،
telescope_entries
جدول می تواند رکوردها را خیلی سریع جمع آوری کند.
برای کاهش این مشکل، باید
telescope:prune
دستور Artisan را برای اجرای روزانه برنامه ریزی کنید:
$schedule->command('telescope:prune')->daily();
به طور پیشفرض، تمام ورودیهای قدیمیتر از 24 ساعت هرس میشوند.
میتوانید
hours
هنگام فراخوانی فرمان برای تعیین مدت زمان نگهداری دادههای تلسکوپ از این
گزینه استفاده کنید.
به عنوان مثال، دستور زیر تمام رکوردهای ایجاد شده بیش از 48 ساعت قبل را
حذف می کند:
$schedule->command('telescope:prune --hours=48')->daily();
مجوز داشبورد
تلسکوپ یک داشبورد را در
/telescope
.
به طور پیش فرض، شما فقط می توانید در
local
محیط به این داشبورد دسترسی داشته باشید.
در فایل شما
app/Providers/TelescopeServiceProvider.php
، یک روش وجود دارد
gate
.
این دروازه مجوز دسترسی به تلسکوپ را در محیط های
غیر محلی
کنترل می کند .
شما آزاد هستید که در صورت نیاز این گیت را تغییر دهید تا دسترسی به نصب
تلسکوپ خود را محدود کنید:
/** * Register the Telescope gate. * * This gate determines who can access Telescope in non-local environments. * * @return void */protected function gate(){ Gate::define('viewTelescope', function ($user) { return in_array($user->email, [ 'taylor@laravel.com', ]); });}
APP_ENV
شما باید اطمینان حاصل کنید که متغیر محیط خود راproduction
در محیط تولید خود تغییر داده اید. در غیر این صورت، نصب تلسکوپ شما برای عموم در دسترس خواهد بود.
ارتقاء تلسکوپ
هنگام ارتقاء به نسخه اصلی جدید تلسکوپ، مهم است که راهنمای ارتقا را به دقت مرور کنید .
علاوه بر این، هنگام ارتقاء به هر نسخه جدید تلسکوپ، باید دارایی های تلسکوپ را مجدداً منتشر کنید:
php artisan telescope:publish
برای به روز نگه داشتن دارایی ها و جلوگیری از مشکلات در به روز رسانی های
بعدی، می توانید این
telescope:publish
دستور را به
post-update-cmd
اسکریپت های فایل برنامه خود اضافه کنید
composer.json
:
{ "scripts": { "post-update-cmd": [ "@php artisan telescope:publish --ansi" ] }}
فیلتر کردن
ورودی های
میتوانید دادههایی را که توسط تلسکوپ ضبط میشود از طریق
filter
تماس برگشتی که در شما ثبت شده است فیلتر کنید
TelescopeServiceProvider
.
به طور پیشفرض، این فراخوان تمام دادههای موجود در
local
محیط و استثناها، کارهای ناموفق، کارهای زمانبندی شده و دادهها را با
برچسبهای نظارت شده در همه محیطهای دیگر ثبت میکند:
/** * Register any application services. * * @return void */public function register(){ $this->hideSensitiveRequestDetails(); Telescope::filter(function (IncomingEntry $entry) { if ($this->app->isLocal()) { return true; } return $entry->isReportableException() || $entry->isFailedJob() || $entry->isScheduledTask() || $entry->hasMonitoredTag(); });}
دسته ها
در حالی که
filter
پاسخ به تماس، دادهها را برای ورودیهای جداگانه فیلتر میکند، میتوانید
از
filterBatch
روشی برای ثبت تماس پاسخی استفاده کنید که تمام دادهها را برای یک درخواست
یا دستور کنسول فیلتر میکند.
اگر تماس برگشتی برگردد
true
، همه ورودیها توسط تلسکوپ ضبط میشوند:
use Illuminate\Support\Collection; /** * Register any application services. * * @return void */public function register(){ $this->hideSensitiveRequestDetails(); Telescope::filterBatch(function (Collection $entries) { if ($this->app->isLocal()) { return true; } return $entries->contains(function ($entry) { return $entry->isReportableException() || $entry->isFailedJob() || $entry->isScheduledTask() || $entry->hasMonitoredTag(); }); });}
برچسب زدن
تلسکوپ به شما امکان می دهد تا ورودی ها را با "برچسب" جستجو کنید.
اغلب، برچسبها نام کلاس مدل Eloquent یا شناسههای کاربری تأیید شده هستند
که تلسکوپ به طور خودکار به ورودیها اضافه میکند.
گاهی اوقات، ممکن است بخواهید برچسب های سفارشی خود را به ورودی ها پیوست
کنید.
برای انجام این کار، می توانید از
Telescope::tag
روش استفاده کنید.
متد
tag
یک فراخوانی را می پذیرد که باید آرایه ای از برچسب ها را برگرداند.
برچسبهایی که توسط تماس برگشت داده میشوند با هر برچسبی که تلسکوپ به طور
خودکار به ورودی متصل میکند ادغام میشود.
شما باید
tag
متد را در خود فراخوانی کنید
TelescopeServiceProvider
:
use Laravel\Telescope\Telescope; /** * Register any application services. * * @return void */public function register(){ $this->hideSensitiveRequestDetails(); Telescope::tag(function (IncomingEntry $entry) { if ($entry->type === 'request') { return ['status:'.$entry->content['response_status']]; } return []; }); }
دیده بان های موجود
ناظران تلسکوپ هنگام اجرای یک درخواست یا فرمان کنسول، داده های برنامه را
جمع آوری می کنند.
میتوانید فهرست ناظرانی را که میخواهید در
config/telescope.php
فایل پیکربندی خود فعال کنید، سفارشی کنید:
'watchers' => [ Watchers\CacheWatcher::class => true, Watchers\CommandWatcher::class => true, ...],
برخی از ناظران همچنین به شما امکان می دهند گزینه های سفارشی سازی اضافی را ارائه دهید:
'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 100, ], ...],
کش کش
زمانی که یک کلید حافظه پنهان زده می شود، از دست می رود، به روز می شود و فراموش می شود، ناظر کش داده ها را ثبت می کند.
ناظر فرمان
ناظر فرمان آرگومان ها، گزینه ها، کد خروج و خروجی را هر زمان که یک فرمان
Artisan اجرا می شود، ثبت می کند.
اگر می خواهید دستورات خاصی را از ضبط شدن توسط تماشاگر حذف کنید، می توانید
دستور را در
ignore
گزینه موجود در
config/telescope.php
فایل خود مشخص کنید:
'watchers' => [ Watchers\CommandWatcher::class => [ 'enabled' => env('TELESCOPE_COMMAND_WATCHER', true), 'ignore' => ['key:generate'], ], ...],
ناظر تخلیه
Dump Watcher تخلیه های متغیر شما را در تلسکوپ ضبط و نمایش می دهد.
هنگام استفاده از لاراول، متغیرها ممکن است با استفاده از
dump
تابع سراسری حذف شوند.
برگه Dump Watcher باید در مرورگر باز باشد تا ضبط انجام شود، در غیر این
صورت نادیدهگیریها توسط ناظر نادیده گرفته میشوند.
ناظر رویداد
ناظر رویداد، محموله، شنوندگان و داده های پخش را برای هر رویدادی که برنامه شما ارسال می کند، ضبط می کند. رویدادهای داخلی چارچوب لاراول توسط Event Watcher نادیده گرفته می شود.
ناظر استثنایی
ناظر استثنا داده ها و ردیابی پشته را برای هر استثنای قابل گزارشی که توسط برنامه شما ایجاد می شود، ثبت می کند.
نگهبان دروازه
گیت ناظر داده ها و نتایج بررسی های گیت و سیاست را توسط برنامه شما ثبت می
کند.
اگر میخواهید تواناییهای خاصی را از ضبط شدن توسط تماشاگر حذف کنید،
میتوانید آنها را در
ignore_abilities
گزینه موجود در
config/telescope.php
فایل خود مشخص کنید:
'watchers' => [ Watchers\GateWatcher::class => [ 'enabled' => env('TELESCOPE_GATE_WATCHER', true), 'ignore_abilities' => ['viewNova'], ], ...],
ناظر کار
کار ناظر داده ها و وضعیت هر شغل ارسال شده توسط برنامه شما را ثبت می کند.
لاگ ناظر
ناظر گزارش، داده های گزارش را برای هر گزارشی که توسط برنامه شما نوشته شده است، ثبت می کند.
ناظر ایمیل
ناظر نامه به شما امکان می دهد پیش نمایش ایمیل ها را همراه با داده های
مرتبط با آنها در مرورگر مشاهده کنید.
همچنین می توانید ایمیل را به صورت
.eml
فایل دانلود کنید.
ناظر مدل
ناظر مدل هر زمان که یک Eloquent
created
،
updated
،
restored
، یا
deleted
رویداد ارسال شود، تغییرات مدل را ثبت می کند.
میتوانید مشخص کنید که کدام رویدادهای مدل باید از طریق گزینه تماشاگر ثبت
شوند
events
:
'watchers' => [ Watchers\ModelWatcher::class => [ 'enabled' => env('TELESCOPE_MODEL_WATCHER', true), 'events' => ['eloquent.created*', 'eloquent.updated*'], ], ...],
ناظر اعلان
ناظر اعلان ها تمام اعلان های ارسال شده توسط برنامه شما را ثبت می کند. اگر اعلان یک ایمیل را راهاندازی کند و نظارتکننده ایمیل را فعال کرده باشید، ایمیل برای پیشنمایش در صفحه ناظر ایمیل نیز در دسترس خواهد بود.
ناظر پرس و جو
ناظر پرس و جو، SQL خام، اتصالات و زمان اجرا را برای همه پرس و جوهایی که
توسط برنامه شما اجرا می شوند را ثبت می کند.
ناظر همچنین هر درخواستی با سرعت کمتر از 100 میلی ثانیه را به عنوان برچسب
گذاری می کند
slow
.
شما می توانید آستانه پرس و جو کند را با استفاده از گزینه ناظر سفارشی کنید
slow
:
'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 50, ], ...],
ردیس ناظر
تماشاگر Redis تمام دستورات Redis اجرا شده توسط برنامه شما را ضبط می کند. اگر از Redis برای کش استفاده می کنید، دستورات کش نیز توسط Redis Watcher ضبط می شود.
درخواست ناظر
ناظر درخواست، درخواست، سرصفحه، جلسه و دادههای پاسخ مرتبط با هر درخواستی
را که توسط برنامه مدیریت میشود، ثبت میکند.
می توانید داده های پاسخ خود را از طریق
size_limit
گزینه (در KB) محدود کنید:
'watchers' => [ Watchers\RequestWatcher::class => [ 'enabled' => env('TELESCOPE_REQUEST_WATCHER', true), 'size_limit' => env('TELESCOPE_RESPONSE_SIZE_LIMIT', 64), ], ...],
ناظر برنامه
ناظر برنامه فرمان و خروجی هر کار برنامه ریزی شده ای که توسط برنامه شما اجرا می شود را ضبط می کند.
نمایش آواتارهای کاربران
داشبورد تلسکوپ، آواتار کاربر را نشان می دهد که در هنگام ذخیره یک ورودی
معین وارد سیستم شده است.
به طور پیش فرض، تلسکوپ آواتارها را با استفاده از وب سرویس Gravatar
بازیابی می کند.
با این حال، میتوانید URL آواتار را با ثبت پاسخ تماس در خود سفارشی کنید
TelescopeServiceProvider
.
پاسخ تماس، شناسه و آدرس ایمیل کاربر را دریافت میکند و باید نشانی
اینترنتی تصویر آواتار کاربر را برگرداند:
use App\User;use Laravel\Telescope\Telescope; /** * Register any application services. * * @return void */public function register(){ Telescope::avatar(function ($id, $email) { return '/avatars/'.User::find($id)->avatar_path; });}