Вопроса нихрена не понял, но в коде есть ошибки, обуславливающиеся малым опытом:
1) По теме: "define('DIR_TMPL', __DIR__ . '/tmpl');" избавит от указаний полного пути.
Прочее:
2) Глобальные штуки - это всегда плохо. Константы достаточно заменить на файлы конфигураций, а ещё лучше класс, который умеет читать эти файлы:
<?php
// config/example.php
return [
'templates' => __DIR__ . '/tmpl'
];
$config = new Config(__DIR__ . '/config');
$config->get('example.templates'); // ".../tmpl"
В дальнейшем это позволит расширять и модифицировать конфиги за счёт переменных окружения, т.к. реальный способ чтения конфигов скрыт за соответствующим классом.