Кроме того, есть ли способ загрузить эти функции так же, как классы автоматически загружаются?
Не для глобальных функций, но если ...
Есть ли лучший способ для размещения функций с именами?
Я бы посчитал использование объектов вместо "лучшей практики", однако мы все знаем, что это не совсем так.
Для глобальных функций нет автозагрузки, вы можете инкапсулировать функции в классы как статические функции, и тогда автозагрузчик начнет действовать. Так что это может быть предложением, однако вы должны четко понимать, какое влияние эти статические функции имеют на ваш общий дизайн.
Так сказать: если вы в порядке с глобальными функциями, то вы можете быть в порядке с глобальными статическими функциями классов. Они сломаются, если вы измените имя класса (как и для любого глобального имени функции), однако вы создали нечто, что может автоматически загружаться и совместимо с вашей схемой именования файлов.
Редактировать: Когда я пишу глобально, я имею в виду полностью определенное имя функции, это то, что начинается с \
. См. Правила разрешения имен Документы .