TL;DR: folosește __DIR__
când incluzi un fișier.
Recent am avut o situație tare interesantă în WordPress: folosesc composer autoload în mai multe locuri (câteva plugin-uri, temă) și la un proiect am început să primesc erori. Autoloader-ul nu mai găsea o clasă în temă.
Rulez composer dump
în temă, nu mai găsește altă clasă în pluginul 1. Rulez composer dump
în plugin, nu mai găsește o clasă în pluginul 2. Rulez și acolo composer dump
, nu mai găsește clasa în temă. Și tot așa.
Niște chestii interesante în treaba asta:
- problema apărea doar dacă rulam în WP-CLI
- problema NU exista în producție.
- problema nu există la alte proiecte.
Până când am observat o chestie: la proiectele la care nu aveam problema asta, modul în care includeam autoload.php
era ușor diferit:
require_once __DIR__ . '/vendor/autoload.php';
Față de cum aveam în proiectul curent:
require_once 'vendor/autoload.php';
O explicație a problemei găsești aici.
Lasă un răspuns