* @param string $key
     * @returns string absolute path for the directory specified in configuration
     *                 or null if this option was not specified and does not have
     *                 a default value
     * @see FajrConfig::$defaultOptions
     * @see FajrConfig::$directoriesRelativeTo
     * @see configuration.example.php
     */
    public static function getDirectory($key)
    {
        self::assertInitialized();
        $dir = self::get($key);
        if ($dir === null) {
            return null;
        }
        if (FajrUtils::isAbsolutePath($dir)) {
            return $dir;
        }
        // default resolve relative
        $relativeTo = FajrUtils::getProjectRootDirectory();
        $parameters = self::getParameterDescription();
        assert(array_key_exists($key, $parameters));
        $param = $parameters[$key];
        if (array_key_exists('relativeTo', $param)) {
            $relativeTo = self::getDirectory($param['relativeTo']);
        }
        return FajrUtils::joinPath($relativeTo, $dir);
    }
}
FajrConfig::load();