Forget late static binding, I need late static __FILE__ ...
Posted
by bobthecow
on Stack Overflow
See other posts from Stack Overflow
or by bobthecow
Published on 2010-04-27T04:53:00Z
Indexed on
2010/04/27
5:03 UTC
Read the original article
Hit count: 239
I'm looking for the get_called_class()
equivalent for __FILE__
... Maybe something like get_included_file()
?
I have a set of classes which would like to know what directory they exist in. Something like this:
<?php
class A {
protected $baseDir;
public function __construct() {
$this->baseDir = dirname(__FILE__);
}
public function getBaseDir() {
return $this->baseDir;
}
}
?>
And in some other file, in some other folder...
<?php
class B extends A {
// ...
}
class C extends B {
// ...
}
$a = new A;
echo $a->getBaseDir();
$b = new B;
echo $b->getBaseDir();
$c = new C;
echo $c->getBaseDir();
// Annnd... all three return the same base directory.
?>
Now, I could do something ghetto, like adding $this->baseDir = dirname(__FILE__)
to each and every extending class, but that seems a bit... ghetto. After all, we're talking about PHP 5.3, right? Isn't this supposed to be the future?
Is there another way to get the path to the file where a class was declared?
© Stack Overflow or respective owner