Вы должны создать папку lib/Doctrine
(или lib/doctrine/Doctrine
- это то, что Symfony делает внутри sfDoctrineGuardPlugin) для всех файлов Doctrine. Поскольку слушатели являются файлами Doctrine, а не файлами Symfony, вы должны соблюдать Doctrine соглашения об именах для них. В этом случае MyListener будет входить:
/lib/Doctrine/Record/Listener/MyListener.php
Это «правильный» способ сделать это. Это, конечно, будет работать, если вы просто добавите файлы в /lib
или /lib/Doctrine
.