Logger
Der einfachste und schneller Ansatz ist durch den Logger durch Laravel aus der Box zur Verfügung gestellt werden.
können Sie den Benutzer verfolgen, indem Sie eine Zeile Code ähnlich wie diese Zugabe:
Log::info('Showing user profile for user: '.$id);
Wo $ id ist
$user = Auth::user();
Oder, um es eine statische Methode trocknen zu lassen erstellen über Ihre wiederzuverwenden Anwendung:
public static function trackUser($message){
$user = Auth::user();
Log::info('Showing user profile for user: '.$user->id);
}
Erweitern Sie diese Option, um weitere Daten wie gewünscht hinzuzufügen.
Mehr Informationen über die Laravel Logger an:
https://laravel.com/docs/5.2/errors#logging
Event Log/Revisionen
Wenn Sie auch Einheiten wollen in Ihrem System verfolgen Sie auch so etwas wie ein möchten vielleicht prüfen Ereignisprotokoll:
Ich habe diese Bibliothek verwendet: https://github.com/VentureCraft/revisionable in der Vergangenheit und es funktionierte gut für meinen Zweck.
Evert Zeit, die eine Entität geändert, erstellt oder gelöscht wird, fügt sie einen Datensatz in eine Revisions-Tabelle mit einem serialisierten Wert der vorherigen und neuen Werte ein.
Sie müssen Ihre Entitäten einrichten. Dies ist ein Beispiel dafür, wie ich es eingestellt auf eine Einheit auf:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Sofa\Revisionable\Laravel\RevisionableTrait;
use Sofa\Revisionable\Revisionable;
class Invoice extends Model implements Revisionable {
use RevisionableTrait;
protected $table = 'invoices';
protected $fillable = ['po_id', 'file_name', 'charges', 'customer', 'company', 'notes', 'tax', 'created_by'];
protected $revisionPresenter = 'App\Presenters\InvoicePresenter';
public function po()
{
return $this->belongsTo('App\PO');
}
public function transactions()
{
return $this->hasMany('App\Transaction');
}
}
Danach können Sie in der Lage, auf Ihre Entitäten geändert Schiene, ohne in Ihrem Code Extra etwas zu tun.
Ereignis Sourcing-
Event-Sourcing wird eine Menge Komplexität Ihrer Anwendung einzuführen, aber es wird eine Menge Probleme zu lösen.Durch die Implementierung dieses Musters können Sie nicht nur protokollieren, was ein Benutzer in Ihrem System tut, sondern auch jede Entität mit der Zeit verfolgen. Dies wird erreicht, indem nur die Ereignisse gespeichert werden und die Entitäten durch Ausführen aller Ereignisse neu erstellt werden. Dies wirkt sich auf die Leistung aus, kann jedoch durch Kombination dieses Musters mit einem materialisierten Ansichtsmuster gelöst werden. Dies kann Ihrer App eine mögliche Konsistenz hinzufügen.
Bitte stellen Sie sicher, dass es wirklich ein Wert dieses Muster zu verwenden, andernfalls Sie (und Ihr Team), um den Schmerz der Komplexität fühlen
war ich nicht in der Lage auf den Link für Event-Sourcing (nicht genug Ruf) zu schreiben , aber hier ist es: [Laravel-Broadway] (https://github.com/nWidart/Laravel-broadway). Hier ist eine allgemeine Beschreibung des Musters: [Microsoft Design Patterns] (https://msdn.microsoft.com/en-us/library/dn589792.aspx) – gaheinrichs
Danke @gaheinrichs. Ich werde es versuchen, wie du gesagt hast. – Nagesh
@gaheinrichs Es ist besser, wenn Sie zusätzlich zu den Links die relevanten Informationen in Ihre Antwort einfügen. Andernfalls werden Link-Only-Antworten sofort zum Löschen berücksichtigt. Sie haben hier einen sehr guten Einstieg in eine qualitativ hochwertige Antwort. Führen Sie daher die zusätzlichen Schritte aus und geben Sie an, wie Sie die von Ihnen empfohlenen Ansätze verwenden. –