I'm creating specific tasks which are put in our own code repository, e.g. MyRepos. All our classes follow the prominent naming convention of class name matches directory to filename, e.g. MyRepos/Some/File.php requires the class MyRepos_Some_File being in File.php .
Now <taskdef> supports providing a classname but only has one rule to instantiate the class, namely by it right-most name before the first dot. So when I provide
<taskdef name="mytask" classname="MyRepos.Phing.OurOwnTask">
only OurOwnTask is tried to be instantiated. With the attached patch, when this resolution fails, the classname dots are converted to underscores and then the class is tried to instantiate, in this example MyRepos_Phing_OurOwnTask .
Since the naming convention I'm using is quite common, it shouldn't be seen as too specific and maybe of interest for phing in general. I hope :)
Patch is against 2.3 branch. I'm aware of #188 but still think this could be integrated already.