Laravel Telescope ist ein exquisiter Troubleshoot-Mitarbeiter für die Laravel-Struktur. Teleskop gibt Wissen in die Bitten kommen in Ihre Anwendung, Ausnahmen, Log-Abschnitte, Datenbank-Fragen, gefüttert Arbeitsplätze, E-Mail, Mitteilungen, Reserve-Aktivitäten, geplante Besorgungen, Variable Dumps und das ist nur der Anfang. Das Teleskop ist ein hervorragender Freund für Ihre Laravel-Verbesserung in der Nähe.
Installation
Telescope erfordert Laravel 5.7.7+. Sie können den Composer verwenden, um Telescope in Ihrem Laravel-Projekt zu installieren:
composer require laravel/telescope
Nachdem Sie Telescope installiert haben, veröffentlichen Sie die Assets mit dem Befehl telescope: install Artisan. Nach der Installation von Telescope sollten Sie auch den Befehl migrate ausführen:
php artisan telescope:install
php artisan migrate
Teleskop aktualisieren
Wenn Sie Telescope aktualisieren, sollten Sie die Assets von Telescope neu veröffentlichen:
php artisan telescope:publish
Installation nur in bestimmten Umgebungen
Wenn Sie Telescope nur zur Unterstützung Ihrer lokalen Entwicklung verwenden wollen. Sie können Telescope mit dem --dev Flag installieren:
composer require laravel/telescope --dev
Nach der Ausführung telescope:install
, sollten Sie die TelescopeServiceProvider
Registrierung des Dienstanbieters in der Konfigurationsdatei Ihrer Anwendung. Registrieren Sie stattdessen den Dienstanbieter manuell in der register-Methode Ihrer AppServiceProvider
:
use Laravel\Telescope\TelescopeServiceProvider; /** * Register any application services. * * @return void */ public function register() { if ($this->app->isLocal()) { $this->app->register(TelescopeServiceProvider::class); } }
Konfiguration
Nach der Veröffentlichung von Telescope befindet sich die primäre Konfigurationsdatei unter config/telescope.php. In dieser Konfigurationsdatei können Sie Ihre Watcher-Optionen konfigurieren. Jede Konfigurationsoption enthält eine Beschreibung ihres Zwecks, daher sollten Sie diese Datei gründlich studieren.
Falls gewünscht, können Sie die Datenerfassung von Telescope mit der Konfigurationsoption enabled vollständig deaktivieren:
'enabled' => env('TELESCOPE_ENABLED', true),
Datenbeschneidung
Ohne Pruning kann die Tabelle telescope_entries sehr schnell Datensätze ansammeln. Um dies zu vermeiden, sollten Sie den Artisan-Befehl telescope:prune täglich ausführen:
$schedule->command('telescope:prune')->daily();
Standardmäßig werden alle Einträge, die älter als 24 Stunden sind, entfernt. Sie können beim Aufruf des Befehls die Option "Stunde" verwenden, um festzulegen, wie lange die Teleskopdaten aufbewahrt werden sollen. Der folgende Befehl löscht zum Beispiel alle Einträge, die vor mehr als 48 Stunden erstellt wurden:
$schedule->command('telescope:prune --hours=48')->daily();
Es ist Jahre her, dass wir mit MongoDB gearbeitet haben. Damals entdeckte die Java-Umgebung Laravel, das mit PHP zusammenarbeitet. Bei der Arbeit mit MongoDB handelt es sich um ein völlig neues Denken und Konzept im Vergleich zur traditionellen relationalen Datenbankentwicklung. Es gibt einige Bibliotheken, um die MongoDB-PHP-Bibliothek direkt zu nutzen. Mit den unten aufgeführten Schritten wird ein MongoDB-Laravel-Zugang zur Datenbank erstellt.
Mongo::get()->mydatabase->mycollection;
Installation von Laravel & MongoDB Datenbank
Folgen Sie der Laravel-Installationsanleitung und installieren Sie MongoDB. Unter OS X empfehle ich die Verwendung von Homebrew. Installieren Sie außerdem Laravel Valet - eine minimalistische Entwicklungsumgebung mit Nginx und Dnsmasq. Ich möchte nicht mehr ohne sie arbeiten.
Um die erfolgreiche MongoDB-Installation zu testen, öffnen Sie das Terminal, verbinden Sie sich mit MongoDB, erstellen Sie eine Datenbank und eine Sammlung und fügen Sie ein Dokument ein:
mongo > use mydatabase > db.mycollection.insert( { "hello": "world" } )
Ein neues Projekt erstellen
Öffnen Sie das Terminal, wechseln Sie in Ihr Valet-Verzeichnis und geben Sie ein:
laravel new myproject cd myproject composer require mongodb/mongodb
Dies erstellt ein neues Laravel-Projekt und fügt die MongoDB-PHP-Bibliothek hinzu.
Um die MongoDB-Verbindung zu testen, öffnen Sie die Datei routes/web.php und fügen Sie hinzu:
<?php use MongoDB\Client as Mongo; Route::get('mongo', function(Request $request) { $collection = (new Mongo)->mydatabase->mycollection; return $collection->find()->toArray(); }); Route::get('/', function () { return view('welcome'); });
Service, ServiceProvider, Facade
Erstellen einer app/Mongo Verzeichnis, die 3 Dateien
(Service
, ServiceProvider
, Facade
) ändern Sie dort die Konfiguration in config/app.php
, config/services.php
, und .env
. Na also!
Service.php
<?php namespace App\Mongo; use MongoDB\Client; class Service { private $mongo; public function __construct($uri, $uriOptions, $driverOptions) { $this->mongo = new Client($uri = null, $uriOptions = [], $driverOptions = []); } public function get() { return $this->mongo; } }
ServiceProvider.php:
<?php namespace App\Mongo; class ServiceProvider extends \Illuminate\Support\ServiceProvider { protected $defer = true; public function register() { $this->app->singleton('mongo', function($app) { $config = $app->make('config'); $uri = $config->get('services.mongo.uri'); $uriOptions = $config->get('services.mongo.uriOptions'); $driverOptions = $config->get('services.mongo.driverOptions'); return new Service($uri, $uriOptions, $driverOptions); }); } public function provides() { return ['mongo']; } }
Facade.php:
<?php namespace App\Mongo; class Facade extends \Illuminate\Support\Facades\Facade { protected static function getFacadeAccessor() { return 'mongo'; } }
Ändern Sie dann die Konfiguration:
in config/app.php
/* * Application Service Providers */ App\Mongo\ServiceProvider::class, ... /* * Class Aliases */ 'Mongo' => App\Mongo\Facade::class,
in config/services.php
'mongo' => [ 'uri' => env('MONGO_URI'), 'uriOptions' => env('MONGO_URI_OPTIONS'), 'driverOptions' => env('MONGO_DRIVER_OPTIONS'), ],
in .env
MONGO_URI= MONGO_URI_OPTIONS= MONGO_DRIVER_OPTIONS=
Nun wollen wir die Mongo-Fassade in Ihrer Anwendung verwenden. Ändern Sie dazu einfach die routes/web.php von vorher:
<?php Route::get('mongo', function(Request $request) { $collection = Mongo::get()->mydatabase->mycollection; return $collection->find()->toArray(); }); Route::get('/', function () { return view('welcome'); });
Aufregende Zeiten stehen bevor
Von der gegebenen Post, können wir eine vollständige Anleitung für die Umsetzung der Laravel-Teleskop mit der Verwendung von MongoDB haben. Frohes Codieren.