Вы можете использовать пространства имен для переопределения существующих имен функций:
namespace blarg;
function basename() {
return 'whatever';
}
$base = basename();
Т.е., любой вызов basename () в пространстве имен blarg будет использовать вашу новую версию функции.