Na przykład, zawsze widzę autoloaderów zwane tak:Dlaczego włączyć __DIR__ w require_once?
require_once __DIR__ . '/../vendor/autoload.php';
Jaka jest różnica między tym a tym bardziej zwięzły
require_once '../vendor/autoload.php';
?
Na przykład, zawsze widzę autoloaderów zwane tak:Dlaczego włączyć __DIR__ w require_once?
require_once __DIR__ . '/../vendor/autoload.php';
Jaka jest różnica między tym a tym bardziej zwięzły
require_once '../vendor/autoload.php';
?
Skrypty PHP działają w stosunku do bieżącej ścieżki (wynik getcwd()
), a nie do ścieżki własnego pliku. Używanie __DIR__
wymusza włączenie elementu include względem własnej ścieżki.
Aby wykazać, tworzyć następujące pliki (i katalogi):
- file1.php
- dir/
- file2.php
- file3.php
Jeśli file2.php
obejmuje file3.php
takiego:
include `file3.php`.
To będzie działać dobrze, jeśli dzwonisz file2.php
bezpośrednio. Jednakże, jeśli file1.php
zawierafile2.php
, bieżący katalog (getcwd()
) będzie niepoprawny dla file2.php
, więc nie można dołączyć do niego .
Do tego można dodać kilka folderów, w których automatyczne wyszukiwanie w PHP. Po dołączeniu pliku o względnej ścieżce przeszukujesz wszystkie foldery. Lepiej zdefiniować prawdziwą ścieżkę, aby zapobiec błędom w ładowaniu niewłaściwych plików.
https://secure.php.net/manual/en/function.set-include-path.php
Wtedy można mieć pewność, że wczytać odpowiedni plik.
To prawda, ale nie jest to najważniejszy powód. – Evert