¿Por qué PHP sigue siendo relevante? ¿Y dónde aprender?
\n\nEn el mundo del desarrollo web, PHP es como una navaja suiza de toda la vida. Los que buscan tendencias no lo aman, pero con él funciona el 78% de todos los sitios web (incluyendo Facebook, Wikipedia y WordPress). Si quieres ser un desarrollador backend que resuelve problemas reales, y no solo "maquetar con React", PHP es tu camino.
\n\nPero el problema es que el 90% de los videos en español sobre PHP muestran código obsoleto de 2008, donde mysql_connect() se considera normal. Hemos venido a solucionarlo y hemos recopilado el top de canales de YouTube y cursos que enseñan PHP 8 moderno, POO, estándares PSR y frameworks.
\n\nEn este artículo no solo encontrarás una lista de enlaces, sino ejemplos de código reales que puedes ejecutar de inmediato, y consejos para no caer en el "código espagueti".
\n\nCómo seleccionamos los canales
\n\nRevisamos más de 50 canales y cursos de PHP en YouTube. Nuestros criterios de selección:
\n\n- \n
- Actualidad — videos con menos de 2 años, usando PHP 8.x \n
- Calidad del contenido — explicaciones dinámicas, no lectura monótona de documentación \n
- Práctica — ejemplos de código, tareas o proyectos personales incluidos \n
- Utilidad para todos los niveles — desde principiante absoluto hasta crecimiento profesional \n
¡Allá vamos!
\n\nTop 5 canales de YouTube sobre PHP (gratis)
\n\n1. PHP School — "Matemáticas para programadores"
\n\nEl autor del canal es un desarrollador backend con 10 años de experiencia. No solo muestra código, sino que explica por qué se debe escribir de cierta manera. Su lista de reproducción sobre POO en PHP es especialmente genial.
\n\nEjemplo del video: cómo NO escribir un constructor:
\n\n// Mal\nclass User {\n public $name;\n public $age;\n public function __construct($data) {\n $this->name = $data[0];\n $this->age = $data[1];\n }\n}\n\n// Bien\nclass User {\n public function __construct(\n private string $name,\n private int $age\n ) {}\n}\n\n\nPor qué es importante: la tipificación y los parámetros con nombre son el estándar en PHP 8. En el canal lo explican con ejemplos reales.
\n\n2. Laravel & PHP desde cero — "Crea tu blog en 3 horas"
\n\nSi quieres pasar rápido de la teoría a la práctica, este canal es para ti. El autor tiene una serie llamada "PHP para principiantes: creando un motor de blog". Sin frameworks, con PHP puro, pero usando enfoques modernos (Composer, PSR-4, motor de plantillas Twig).
\n\nCódigo de la lección sobre enrutamiento:
\n\n// Enrutador simple en PHP 8\n$router = new Router();\n\n$router->get('/posts', function() {\n $posts = Post::all();\n require 'views/posts/index.php';\n});\n\n$router->post('/posts', function() {\n $post = new Post($_POST);\n $post->save();\n header('Location: /posts');\n});\n\n\nConsejo: después de ver 5 o 6 lecciones, intenta escribir tu propio micro-framework. Es la mejor forma de entender cómo funcionan Laravel y Symfony.
\n\n3. WebDev con Vova — "PHP 8: nuevas funciones"
\n\nVideos cortos y directos (10-15 minutos) sobre características específicas de PHP 8: atributos, named arguments, match expression, enum. Ideal para quienes ya saben lo básico y quieren llevar sus habilidades al nivel moderno.
\n\nEjemplo con enum (PHP 8.1):
\n\nenum Status: string {\n case Active = 'active';\n case Inactive = 'inactive';\n case Pending = 'pending';\n\n public function label(): string {\n return match($this) {\n self::Active => 'Activo',\n self::Inactive => 'Inactivo',\n self::Pending => 'Pendiente',\n };\n }\n}\n\necho Status::Active->label(); // 'Activo'\n\n\n