Sé que esto suena como una pregunta puntual, pero déjame explicarte de dónde vengo.
Fuera de la universidad conseguí un trabajo en una tienda PHP. Trabajé allí durante un año y medio y pensé que había aprendido todo lo que había que aprender sobre programación.
Luego conseguí un trabajo como taller de desarrollo interno de un solo hombre en una corporación considerable donde todo el trabajo estaba en C #. En mi compromiso con el puesto, comencé a leer un montón de blogs y libros y rápidamente me di cuenta de lo equivocado que estaba al pensar que lo sabía todo. Aprendí sobre las pruebas unitarias, la inyección de dependencia y los patrones decoradores, el principio de diseño del acoplamiento flojo, la composición sobre el debate de la herencia, y así sucesivamente. Todavía lo estoy absorbiendo todo. No hace falta decir que mi estilo de programación ha cambiado completamente en el último año.
Ahora me encuentro recogiendo un proyecto de PHP haciendo algo de codificación para el inicio de un amigo y me siento completamente limitado en comparación con la programación en C #. Realmente me molesta que todas las variables en un ámbito de clase tengan que ser mencionadas agregando '$ this->'. Me molesta que ninguno de los IDE que he probado tengan muy buena inteligencia y que mis métodos de prueba de unidad SimpleTest tengan que comenzar con la palabra 'prueba'. Me vuelve loco que la escritura dinámica me impida especificar implícitamente qué tipo de parámetro espera un método, y que usted tiene que escribir una declaración de cambio para realizar sobrecargas de métodos. No puedo soportar que no puedas tener espacios de nombres anidados y que tengas que usar el operador :: para llamar al constructor de la clase base.
Ahora no tengo intención de iniciar un debate PHP vs C #, más bien lo que quiero decir es que estoy seguro de que hay algunas características de PHP que no conozco o que aún no uso correctamente. Estoy ambientado en mi universo C # y tengo problemas para ver fuera del recipiente de vidrio.
Entonces, pregunto, ¿cuáles son sus características favoritas de PHP? ¿Qué cosas puedes hacer en él que no puedes o son más difíciles en los idiomas .Net?