Bagaimana saya bisa mengetahui di file dan baris mana fungsi tertentu didefinisikan?
109
Anda juga bisa melakukan ini di PHP itu sendiri:
$reflFunc = new ReflectionFunction('function_name');
print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
$reflFunc->isInternal() === TRUE
means -> getFileName () dan -> getStartLine () akan mengembalikan FALSE.$reflFunc = new ReflectionMethod($this, 'method_name');
Gunakan IDE yang memungkinkan melakukannya (saya akan merekomendasikan Eclipse PDT), atau Anda selalu dapat grep jika di Linux, atau menggunakan wingrep. Di Linux akan menjadi seperti ini:
dari dalam folder root proyek.
sumber
Jika Anda menggunakan IDE seperti Netbeans, Anda dapat CTRL + Klik fungsi yang digunakan dan ini akan membawa Anda ke tempat yang ditentukan, dengan asumsi file tersebut berada dalam folder proyek yang Anda tentukan.
Tidak ada kode atau fungsi untuk melakukan ini.
sumber
Saya berasumsi bahwa dengan "menggambarkan" yang Anda maksud adalah "didefinisikan". Untuk ini, idealnya Anda membutuhkan IDE yang layak yang dapat melakukannya.
sumber
Inilah fungsi dasar yang akan memindai seluruh file proyek Anda untuk string tertentu dan memberi tahu Anda file mana itu dan posisi karakter mana yang dimulai hanya dengan menggunakan php dasar. Semoga ini membantu seseorang ...
sumber
cara lain untuk memeriksa di mana fungsi itu didefinisikan, cobalah untuk mendefinisikan kembali fungsi tersebut, sistem kesalahan PHP hanya akan mengembalikan kesalahan yang memberi tahu Anda di mana fungsi tersebut didefinisikan sebelumnya
sumber
Saya suka solusi Tom, jadi saya pikir saya bisa membagikan lebih banyak trik dengan ReflectionFunction (ini harus berfungsi pada setiap PHP 5):
satu baris untuk mencetak nama file:
Harap dicatat bahwa ini tidak akan menunjukkan lokasi untuk fungsi internal (seperti _ ), tetapi masih dapat mencetak API untuk itu seperti di bawah ini.
untuk mencetak definisi dan parameter fungsi:
Contoh:
sumber
Anda memerlukan IDE yang mendukung fungsionalitas "Open Function Declaration". Yang bagus untuk php adalah Eclipse PDT.
Untuk mencari definisi fungsi, sorot nama fungsi, tahan CTRL + Klik pada namanya.
sumber