Cuando instalas Yii 2 por primera vez, abrir el proyecto puede sentirse como entrar a una casa nueva: muchas puertas, pocas pistas. Aquí desglosamos la estructura de archivos de Yii 2 para que entiendas qué hace cada carpeta, cuáles vas a tocar primero y cómo conectar todo con el patrón modelo vista controlador.
¿Qué necesitas para empezar a trabajar con Yii 2?
Una vez instalado, el proyecto ya está listo para producción. Solo falta crear un archivo Procfile cuando llegue ese momento, pero por ahora todo funciona tal cual.
Para editar el código sirve cualquier editor de texto que cumpla dos condiciones: que se integre con Git y que te deje navegar el directorio con comodidad. VS Code, Atom, Text Wrangler, el que prefieras [02:08]. La gran ventaja de trabajar con un lenguaje interpretado como PHP es que no tienes que recompilar: modificas un archivo, recargas y listo.
¿Por qué Yii 2 es cómodo para desarrollar? Porque al ser interpretado, los cambios en el código se reflejan al instante sin bajar el servidor. Además, su modo development muestra los errores directamente en el navegador con detalle.
¿Cómo se organiza la configuración del proyecto?
La carpeta de config es la primera parada después de instalar. Ahí viven tres archivos que vas a revisar una y otra vez [03:35].
- db.php: un arreglo que regresa la configuración de la base de datos. Aquí defines usuario, password, encoding y nombre de la base. Yii permite trabajar con varias bases de datos en paralelo, aunque normalmente usarás una.
- web.php: configuración que se carga cuando invocas Yii vía web, es decir, cuando los controladores devuelven vistas en HTML.
- console.php: configuración para cuando ejecutas Yii desde la línea de comandos.
En las primeras 10 o 12 iteraciones del proyecto probablemente solo toques db.php. Los otros dos los modificarás después, conforme sumes librerías y herramientas.
¿Dónde van los modelos, controladores y vistas en Yii 2?
El corazón de cualquier aplicación es el dato, y eso vive en los modelos. Yii tiene una carpeta exclusiva para almacenar todas las clases de modelo, donde cada tabla de la base de datos tiene su correlación directa con un objeto modelo.
¿Cómo funciona la carpeta de comandos?
La carpeta commands contiene los controladores que ejecutas desde consola. Yii trae uno de plantilla, el HelloController, con una acción index que imprime un Hello world [05:55]. Lo puedes clonar como template para crear tus propios scripts de línea de comandos, ideales para insertar datos o ejecutar tareas sencillas al inicio del proyecto.
¿Cómo se relacionan los controladores web con sus vistas?
La carpeta controllers guarda los controladores del ambiente web. La regla básica que conviene seguir es un controlador por cada modelo, más uno o dos extra para casos especiales. El SiteController es el básico: desde ahí nace cualquier request cuando entras a la página principal.
La carpeta views funciona en paralelo: cada controlador tiene su propia subcarpeta de vistas. Así puedes tener un new.php en cada controlador sin chocar nombres ni duplicar código. Cada vista es un archivo PHP que recibe datos del controlador y los imprime, sin lógica de negocio.
¿Cuál es la regla para nombrar controladores en Yii 2? Crea un controlador por cada modelo de tu aplicación, más algunos extra para flujos especiales. Cada controlador tendrá automáticamente su propia carpeta de vistas con el mismo nombre.
¿Cómo inicia un request en Yii 2?
Todo request arranca en uno de dos lugares según el ambiente. Para línea de comandos, el archivo yii (un bash para Unix, Linux y Mac) y el yii.bat (para Windows y MS-DOS) reciben los argumentos, lanzan la aplicación e imprimen el resultado.
Para el ambiente web, el punto de entrada es index.php dentro de la carpeta web, que además es la raíz pública del servidor. Es decir, miproyecto.com/ apunta directamente a esa carpeta [09:38]. Ahí viven los recursos estáticos:
- Imágenes que no están en la base de datos, como el favicon.
- Archivos CSS y JavaScript que cargan las vistas.
- El .htaccess, fundamental para el servidor web.
- El robots.txt, clave para el SEO desde el día uno.
¿Qué carpetas extra conviene crear desde el inicio?
Más allá de la estructura básica, hay dos carpetas que aportan mucho cuando trabajas solo o en equipo [11:00].
- schema: aquí guardas el archivo schema.sql con la definición SQL de tu base de datos. Sirve como referencia versionada del esquema.
- local: una carpeta que nunca subes al repositorio de Git. Adentro pones passwords, rutas secretas y datos sensibles. Después, mediante un bash o un bat, conviertes esos valores en variables de entorno que Yii consume desde su configuración.
Esta separación entre código público y datos privados te da seguridad cuando colaboras con otras personas y evita que credenciales terminen expuestas en el historial de Git.
Con esta estructura ya tienes claro dónde vive cada pieza del patrón modelo vista controlador dentro de Yii 2 y por qué cada carpeta existe. ¿Tú agregas alguna otra carpeta a tus proyectos? Cuéntalo en los comentarios.