Edit report at https://bugs.php.net/bug.php?id=46260&edit=1
ID: 46260 Comment by: alex at wordnik dot com Reported by: bugs dot php dot net at callum-macdonald dot com Summary: __FILE__ should not resolve symlink paths Status: Open Type: Feature/Change Request Package: Feature/Change Request Operating System: Linux PHP Version: 5.2.6 Block user comment: N Private report: N New Comment: After 4 years of bug report, this issue still remains. Unbelievable. It's such a small change to make the behaviors more consistent (and correct), and helps simplify developer's life. No flamebait here, but no wonder PHP is like a dead language, with most people move on to other languages, Python, Ruby, to name a few, while those who are stuck with PHP for Wordpress and other sites, suffer. Previous Comments: ------------------------------------------------------------------------ [2012-04-23 09:16:36] sdbondi at gmail dot com So nothing is being done about this issue? It seems to have been an issue for at least 6 years without a adequate solution. The behaviour of the __FILE__ constant seems in violation of convention and what developers would expect from it. This bug (yes, bug) prevents us from keeping code (like wordpress and a theme) in their own repositories in e.g. Git (cannot checkout sub-folders - git submodules would only work if you didn't want to keep theme build, documentation etc. files versioned in the repo). I really don't get why this behaviour is not at least configurable. What is the use case of resolving symlinks? I suspect no one would be able to find a use that couldn't be done in a better way. ------------------------------------------------------------------------ [2011-12-28 13:40:41] contato at mesotec dot com dot br +1 too. I really need this feature. In windows 7 realpath for a file that is accessed through a mklink folder does return the link path not the absolute one. ------------------------------------------------------------------------ [2011-12-26 15:51:42] bugs dot php dot net at callum-macdonald dot com I tested monsen.dag's suggestion and it produced a completely different result than expected. Also, defining a constant will only apply once, not to the *currently executing file*, which is the great advantage of __FILE__. This suggestion does not provide a solution of any kind as far as I can tell. ------------------------------------------------------------------------ [2011-12-22 13:45:24] monsen dot dag at gmail dot com If you're on an enviroment with bash available, you can use this snippet to get __FILE__ without resolving symlinks. It's a small hack, but it should be pretty safe. <?php $output = array(); exec('pwd', &$output); define('__LINK__', $output[0].substr(__FILE__, strpos(__FILE__, DIRECTORY_SEPARATOR))); ?> ------------------------------------------------------------------------ [2011-10-25 19:45:34] nars at clix dot pt +1 ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=46260 -- Edit this bug report at https://bugs.php.net/bug.php?id=46260&edit=1