So. Yes, its practical to build Git in a higher level language, but you just can’t get the same performance, or tight memory utilization, that C Git gets. That’s what that higher level language abstraction costs you. But, JGit performs reasonably well; well enough that we use internally at Google as a git server.
I’ll add that while I understand and realize that PHP is a slower language than others the time to build an application for me is more important most often than the computation time of the program. In the same sense that even Google recognizes that JGit is slower then C Git, it’s not enough of a difference to matter, most often the speed difference doesn’t really matter when it’s so easy and cheap to throw hardware at the problem.