Repositorio educativo para aprender PHP desde fundamentos hasta practicas expertas con ejercicios progresivos, contexto moderno y flujo profesional de Git.
Este repositorio ayuda a estudiantes de informatica a aprender PHP practicando con problemas reales y entretenidos. La ruta esta organizada para avanzar sin saltos bruscos:
- Basico: sintaxis, variables, condicionales, ciclos, arreglos y funciones.
- Intermedio: modularizacion, formularios, sesiones, archivos JSON y mini proyectos.
- Avanzado: PDO, APIs, seguridad, arquitectura por capas y pruebas.
- Experto: dominio, integraciones, jobs, cache, auditoria, concurrencia y observabilidad.
- 40 ejercicios de nivel basico.
- 40 ejercicios de nivel intermedio.
- 40 ejercicios de nivel avanzado.
- 40 ejercicios de nivel experto.
- Total: 160 ejercicios.
Consulta el indice completo en docs/INDICE-EJERCICIOS.md.
campuslands-dev-php/
├── basico/
├── intermedio/
├── avanzado/
├── experto/
├── docs/
├── scripts/
├── docker-compose.yml
├── Dockerfile
├── composer.json
├── README.md
├── CONTRIBUTING.md
└── LICENSE
Puedes trabajar con Docker o con PHP local. La opcion recomendada es Docker para que todos tengan el mismo entorno.
docker compose run --rm php php -vgit clone https://github.com/anndreloopez012/campuslands-dev-php.git
cd campuslands-dev-php
git checkout dev
git pull origin dev
git checkout -b alumno/nombre-apellido/ejercicio-001Resuelve el ejercicio dentro de:
nivel/ejercicio-XXX-tema/resoluciones/nombre-apellido/ejercicio.php
Con Docker:
docker compose run --rm php php basico/ejercicio-001-variables-y-salida-en-consola-videojuegos-moba/resoluciones/juan-perez/ejercicio.phpCon PHP local:
php basico/ejercicio-001-variables-y-salida-en-consola-videojuegos-moba/resoluciones/juan-perez/ejercicio.phpgit status
git add .
git commit -m "feat: solve php exercise 001"
git push -u origin alumno/nombre-apellido/ejercicio-001Luego abre Pull Request en GitHub:
- Base:
dev - Compare: tu rama personal
No abras PR hacia main. main es produccion academica.
main: version estable del repositorio.dev: rama principal de trabajo estudiantil.respuestas: rama para soluciones oficiales del profesor.
- Cada estudiante trabaja en su propia rama.
- Cada respuesta va dentro de
resoluciones/nombre-apellido/. - No modificar archivos base.
- No tocar respuestas de otros estudiantes.
- No subir archivos fuera de la estructura.
- No hacer push directo a
mainnidev.
- Usa
declare(strict_types=1);cuando aplique. - Nombra variables con intencion.
- Separa funciones cuando una regla crece.
- Valida entradas antes de procesar.
- Evita mezclar responsabilidades.
- Prueba casos normales, limites e invalidos.