Laravel ohne Datenbank verwenden.

Wenn man Laravel ohne Datenbank verwenden will, dann einfach in der .env - Datei die Datenbank-Connection auf "null" stellen.

DB_CONNECTION=null

Aber man muss dann auch darauf achten, dass keine andere Einstellung die Datenbank verwendet. Bsp.: Session soll muss dann statt der Datenbank den File-Driver verwenden, sonst bekommt Fehlermeldungen.

SESSION_DRIVER=file

PHPUNIT Funktionen in einem Laravel Package mit PHPPEST nutzen

Ich integriere PHPPEST in mein Laravel Package, indem ich folgenden Header-Code in die jeweilige Testdatei einfüge:

use Tests\TestCase;
uses(TestCase::class)->in(__DIR__);

Ohne diese Zeilen würden Funktionen wie

$this->get('url');

nicht funktionieren. Mit dieser Integration kann ich PHPUNIT Funktionen in PHPPEST effizient in meinen Laravel Tests verwenden.




Eine zusätzliche Optimierungsmöglichkeit besteht darin, eigene TestCase-Dateien zu erstellen, indem man Tests\TestCase erweitert und um eigene Methoden ergänzt.

Beispiel:

namespace DeinPaketNamespace\Core\App\Classes;

use Tests\TestCase as LaravelTestCase;

class TestCase extends LaravelTestCase
{

    protected function assertClassExist(string $classNameWithNamespace)
    {
        $this->assertTrue(class_exists($classNameWithNamespace));
    }
}

//Am Ende des Files binded man dann die neuen Methoden in Pest ein.
uses(TestCase::class)->in(__DIR__);

in deinem Testfile brauchst du nun nur noch dein eigenes TestCase-File einbinden:

use DeinPaketNamespace\Core\App\Classes\TestCase;
uses(TestCase::class)->in(__DIR__);

Tipps:

  • Nutze die Erweiterung von TestCase, um maßgeschneiderte Testmethoden zu erstellen.

  • Verwende klare und präzise Bezeichnungen für deine Testfunktionen, um ihre Funktionalität transparent zu machen.

  • Strukturiere deine eigenen TestCase-Dateien für eine verbesserte Lesbarkeit und Wartbarkeit des Codes.

Fehlerbehebung bei Laravel 500 Error auf Subseiten

Bei Laravel-Entwicklungsprojekten können 500-Fehler zu frustrierenden Problemen führen, insbesondere wenn keine eindeutigen Fehlerprotokolle gefunden werden. Dieser Artikel konzentriert sich darauf, wie ein scheinbar unsichtbares Problem, verursacht durch eine fehlende Konfiguration in der .htaccess-Datei, behoben werden kann, um einen reibungslosen Betrieb von Laravel-Webanwendungen sicherzustellen.

In einer frischen Laravel-Installation könnte der 500 Error auf Subseiten an einer fehlenden Konfiguration in der .htaccess-Datei im "public"-Verzeichnis liegen.

Prüfe, ob "RewriteBase /" vorhanden ist.

RewriteEngine On
RewriteBase /    # Stelle sicher, dass dieser Wert vorhanden ist

Tipps für Laravel-Entwickler:

  • Überprüfe die .htaccess: Stelle sicher, dass die "RewriteBase /" in der .htaccess im "public"-Verzeichnis gesetzt ist, um Fehler auf Subseiten zu vermeiden.

  • Log-Dateien prüfen: Falls der Fehler weiterhin besteht, überprüfe die Laravel-Log-Dateien auf Hinweise zum 500 Error.

  • Server-Konfiguration: Kontrolliere die Servereinstellungen, um sicherzustellen, dass mod_rewrite aktiviert und korrekt konfiguriert ist.

Laravel Sail: Keine Konfigurationsdatei gefunden - Hier ist die Lösung

Wenn du alle Docker-Images auf deinem System gelöscht hast und beim Versuch, Laravel Sail zu verwenden, auf die Fehlermeldung "no configuration file provided: not found" stößt, bist du nicht allein. In diesem Blogbeitrag werde ich dir zeigen, wie du dieses häufige Problem schnell und einfach lösen kannst.

Codebeispiel:

php artisan sail:install

Tipp 1: Um diesen Fehler zu vermeiden, vergewissere dich, dass du die Sail-Installation nach dem Löschen von Docker-Images erneut durchführst.

Tipp 2: Stelle sicher, dass du dich im richtigen Projektverzeichnis befindest, wenn du Sail installierst.

Tipp 3: Überprüfe deine Docker-Installation und stelle sicher, dass sie ordnungsgemäß funktioniert.

Abschluss: Die Fehlermeldung "no configuration file provided: not found" in Laravel + Sail kann frustrierend sein, aber mit dem einfachen Befehl php artisan sail:install kannst du das Problem schnell beheben und deine Entwicklungsumgebung wieder zum Laufen bringen.

Denke daran, die oben genannten Tipps zu befolgen, um zukünftige Probleme zu vermeiden. Happy Coding!

Laravel Testing: Versteh den Unterschied zwischen Feature und Unit Tests

Als ich bei einer Firma erstmals mit dem richtigen Testen von Applikationen konfrontiert wurde, lernte ich es leider falsch- bzw. verstand Anfangs nicht ganz den Unterschied, wann man was verwenden sollte... Warum? Ich habe leider anfangs die Testlogik von den Unternehmen übernommen - leider hat das Unternehmen das aber Falsch gemacht und hatte unmengen Featuretests im Unittestordner.. Weil ich neu dort war und mit testen noch nicht so viel anfangen konnte- habe ich es falsch übernommen. Leider, damit dir das nicht auch passiert, gibts hier einen kleinen Guide.

In der Welt des Laravel-Entwicklungsprozesses und generell im Developmentbereich ist es entscheidend, Tests zu schreiben, um sicherzustellen, dass unsere Anwendungen stabil und fehlerfrei funktionieren. Es gibt jedoch zwei Haupttypen von Tests, die du kennen solltest: Feature Tests und Unit Tests. Lass uns einen genaueren Blick darauf werfen.

  • Feature Tests: Diese Tests überprüfen die Funktionalität deiner Anwendung auf höherer Ebene. Sie simulieren die Interaktion eines Benutzers mit der Anwendung und testen, ob die Features korrekt funktionieren. Hier ist ein einfaches Beispiel eines Feature Tests in Laravel:
public function test_user_can_login()
{
    $user = User::factory()->create();

    $response = $this->post('/login', [
        'email' => $user->email,
        'password' => 'password',
    ]);

    $response->assertRedirect('/dashboard');
    $this->assertAuthenticatedAs($user);
}
  • Unit Tests: Im Gegensatz dazu überprüfen Unit Tests einzelne Komponenten deiner Anwendung auf ihre korrekte Funktionsweise. Hier ein Beispiel für einen Unit Test in Laravel:
public function test_user_has_full_name()
{
    $user = new User();
    $user->first_name = 'John';
    $user->last_name = 'Doe';

    $this->assertEquals('John Doe', $user->full_name());
}

Es ist wichtig, sowohl Feature Tests als auch Unit Tests in deiner Laravel-Anwendung zu verwenden, um eine umfassende Testabdeckung sicherzustellen und Fehler frühzeitig zu erkennen. Denke daran, dass Feature Tests die Benutzerinteraktion nachbilden, während Unit Tests auf die kleineren Einheiten deines Codes fokussieren.