Antes o después, algún proyecto deberá modificar el comportamiento de Symfony. Sea una modificación del comportamiento de una clase o sea una nueva característica que hay que añadir al framework, el momento en el que es necesario modificar Symfony llegará de forma inevitable, ya que todos los clientes para los que se desarrollan aplicaciones tienen requerimientos muy específicos que ningún framework puede predecir.
De hecho, como esta situación es tan común, Symfony dispone de un mecanismo para extender las clases en tiempo de ejecución, algo mucho más avanzado que una simple herencia de clases. Incluso es posible reemplazar las clases del núcleo de Symfony por tus propias clases, utilizando las opciones de las factorías utilizadas por Symfony (las factorías se basan en el patrón de diseño "factories"). Una vez realizadas las modificaciones, se pueden encapsular en forma de plugin para poder reutilizarlas en otras aplicaciones o por parte de otros programadores de Symfony.