Является ли данный код нарушением принципа Dependency Inversion?
Тут нет нарушения, потому что нет дополнительной бизнес логики в виде разных подвидов поста, поэтому можно ограничиться созданием поста локально, в пределах экшена контроллера. Нарушение DI присутствует, когда явно видно, что классы зависят от реализации там, где пора создавать абстракцию
не будет, но лучше использовать абстрактную фабрику
p.s. new зарезервировано php и не может быть именем метода