Я создал сниппет, указал source.php, но он не работает в пустом файл .php, а если прописать <?php ?> и внутри этих тегов вызвать снипет по tabTrigger, тогда все работает.
А я не хочу писать <?php ?>, я хочу сразу вызвать сниппет в пустом файле .php
А разве за пределами <?php ?> может существовать php-код, который будет интерпретировать как php-код, а не просто текст? По-моему нет. Собственно по этой причине сниппет для php на простом тексте и не будет работать.