public static function isTAOUpToDate($path = '')
    {
        $path = (empty($path)) ? __DIR__ . '/../../../config' : rtrim($path, '/\\');
        $generisConf = "${path}/generis.conf.php";

        if (!is_readable($generisConf)) {
            return false;
        }

        include_once($generisConf);
        $installationConf = "${path}/generis/installation.conf.php";

        if (!is_readable($installationConf)) {
            return false;
        }

        $conf = include_once($installationConf);
        $extIterator = is_array($conf) ? $conf : $conf->getConfig();

        foreach ($extIterator as $extName => $ext) {
            $manifestPath = __DIR__ . "/../../../${extName}/manifest.php";

            if (!is_readable($manifestPath)) {
                return false;
            } else {
                $manifest = include_once($manifestPath);

                if ((!isset($ext["installed"])) || (!isset($manifest["version"])) || ($ext["installed"] !== $manifest["version"])) {
                    return false;
                }
            }
        }

        return true;
    }