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