Es más o menos habitual (y puede que una buena práctica) en nuestras aplicaciones desarrolladas con PHP definir alguna constante que contenga la ruta del directorio de nuestra aplicación, del directorio raíz, de manera, incluso, que podamos conformar más rutas partiendo de la primera. Pues bien, para conseguir esto puedes verte tentado de escribir algo así:

define('GB_ROOT_DIR_PATH', 
  dirname(__FILE__).DIRECTORY_SEPARATOR
);

El código anterior estaría en un "script" que se encuentra justo en el directorio raíz de nuestra aplicación, así que partimos del mismo para conseguir el nombre del directorio en que se encuentra. No estoy seguro al cien por cien, pero, es probable que PHP defina como "directorio activo" al directorio del "script" en cuestión, de modo que, efectivamente, podríamos utiliza la anterior constante para nuestros propósitos. Sin embargo, existe una implementación mejor:

define('GB_ROOT_DIR_PATH', 
  pathinfo(__FILE__,PATHINFO_DIRNAME).DIRECTORY_SEPARATOR
);

Estamos igual que antes, en el "script" en el directorio raíz de nuestra aplicación, pero, esta vez, no nos basaremos en el nombre del directorio, ni siquiera esperaremos a que PHP lo tome por el "directorio activo", sino que, usando la función "pathinfo", obtenemos, directamente, la ruta absoluta del directorio raíz de nuestra aplicación. La ruta absoluta, a la que podremos añadir "directorios" para conformar el resto de rutas de nuestra aplicación, por ejemplo:

define('GB_ADMIN_DIR',
  GB_ROOT_DIR_PATH . GB_ADMIN_DIR_NAME . DIRECTORY_SEPARATOR
);

He pensado que igual podía resultar curioso a alguien, útil, en un momento dado. Pero, también es verdad que yo venía usando en mi proyecto Gesbit el primer "método", y ahora utilizo este segundo, y, lo refiero también porque me ha parecido una forma elegante (porqué no decirlo) de conseguir justo la información que realmente se necesita. Lo anterior no era correcto del todo, aunque funcionara, pero es que además PHP puede proporcionar lo que se precisa, ni más ni menos. Ahí queda eso. ;)