Sprache:

Suche

Vollständige Anleitung zur Implementierung von Laravel-Teleskop mit MongoDB

  • Teilen:
Vollständige Anleitung zur Implementierung von Laravel-Teleskop mit MongoDB

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!

mongo-pic1.webp

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.

Guest Contributor

Guest Contributor