phpStorm dan saya setuju ini gila tetapi jalur file yang "salah" berfungsi sementara yang "benar" gagal. Struktur dasar.
|
|------classes(directory)
| |
| |
| Person.php
|
|------include(directory)
| |
| |
| db-connect.inc.php
| autoloader.inc.php
| helper.inc.php
|
|
|index.php
|etc.php
Dalam indeks saya menggunakan: (1)
include_once "include/autoloader.inc.php";
include_once "include/db-connect.inc.php";
include_once "include/helper.inc.php";
dan di Person.php saya berharap untuk menggunakan: (2)
include_once "../include/autoloader.inc.php";
include_once "../include/db-connect.inc.php";
include_once "../include/helper.inc.php";
Tapi yang didapat adalah:
"Warning: include_once(../include/autoloader.inc.php): failed to open stream:
No such file or directory in C:\xampp\htdocs\dummy\classes\Person.php on line 2"
Anehnya (3)
include_once "/../include/autoloader.inc.php";
include_once "/../include/db-connect.inc.php";
include_once "/../include/helper.inc.php";
berhasil dan yang lebih aneh lagi (4)
include_once "include/autoloader.inc.php";
include_once "include/db-connect.inc.php";
include_once "include/helper.inc.php";
meskipun kita naik satu level direktori!
phpStorm menandai 3 dan 4 sebagai kesalahan (mengatakan "Path include/autoloader.inc.php tidak ditemukan" dan "Sertakan ekspresi tidak terselesaikan") sementara (2), yang menurut saya "benar", mendapat warna hijau besar yang bagus centang tetapi gagal saat debug atau jika diakses langsung melalui http://localhost dll.
Saya selalu kesulitan dengan jalur ini tetapi kenapa phpStorm dan saya setuju dan dunia nyata mengatakan tidak!
Sepertinya saya harus meletakkan $_SERVER['DOCUMENT_ROOT']
di semua tempat (lebih mudah dengan Storm daripada menggunakan tulisan tangan!) tapi tetap saja merepotkan!
include_once __DIR__ . "/../include/autoloader.inc.php";
-- jauh lebih dapat diandalkan karena dengan cara ini Anda tidak memberikan kesempatan bagi PHP untuk salah menafsirkannya (misalnya karena Anda mungkin memilikiinclude_path
yang kompleks, dll). Idealnya saya akan merekomendasikan untuk menggunakan kelas, PSR-4 dan kelas autoloading -- dalam hal ini hanya sedikit yang menyertakan/membutuhkan dan sisanya akan dimuat secara otomatis. - person LazyOne   schedule 28.09.2015