En Magento 2 el uso de comandos vía terminal es inevitable. Lejos quedaron los tiempos de Magento 1 que con un FTP te podías defender. Son varios los comandos que más se van a utilizar desde consola.
Comandos más útiles en Magento 2
php bin/magento setup:upgrade : actualiza la configuración
Si quieres habilitar una extensión, necesitarás ejecutar esta instrucción para actualizar el schema en la base de datos.
La versión del módulo es guardada en la tabla setup_module (lo que antes era core_resource en Magento 1)
Por defecto, esta instrucción limpia el código compilado y la caché. Por lo general, magento setup:upgrade actualiza componentes y cada componente puede requerir diferentes clases compiladas.
Es necesario recordar que limpiar var/cache no es suficiente para ver los cambios realizados como antes ocurría con Magento 1. En M2 necesitarás borrar var/generation (y var/di si tenemos código compilado) después de haber realizado cambios dentro del código, especialmente si cambiamos algo dentro del constructor.
Adicionalmente si hacemos cambios dentro de la plantilla (archivos .phtml) limpiaremos var/view_preprocessed. El resto irá a var/cache y var/full_page_cache.
php bin/magento setup:di:compile : ejecuta el compilador
¿Qué hace este comando?
Este comando hace varias tareas. Agrupandolas, tenemos dos tipos de categorías de tareas:
Generación código
Magento 2 y la inyección de dependencias funciona generando código php basado en código no generado.
Esto incluye clases para:
- Interceptores: clases que modifican el comportamiento de una llamada de función pública ejecutando código antes, después o alrededor de esa función.
- Fábricas: clases que instancian clases no inyectables
- Proxies (clases virtuales): clases que se utilizan para permitir la carga diferida de dependencias.
- Generación de código de repositorios: código generado para la API
- Generación de atributos service data
Código compilado
«Compilación» es un término que realmente debería llamarse «optimización» en mi opinión.
Cuando ponemos Magento en modo de producción, sin compilación, todavía funciona. Entonces, de acuerdo con los documentos de Magento, esto es más un paso de optimización.
Por lo que puedo decir, esto consiste principalmente en agregar todas las configuraciones de inyección de dependencia (DI) específicas del área en archivos .ser ubicados en var / di /.
Estos son esencialmente cachés de información de configuración para la funcionalidad DI, y en Magento 2 se puede ejecutar en modo desarrollo sin ellos.
La ejecución de este comando compilará la configuración de DI y generará todo el código enumerado anteriormente.
¿Cuándo lanzarla?
Producción
Como seguramente habrás comprobado, ejecutar este comando es bastante lento. Por esa razón, sólo debe ejecutarse al implementar nuevas actualizaciones en su entorno de producción o al ejecutar una aplicación en modo de producción. Desafortunadamente, no hay forma de ejecutar este comando cuando la aplicación está en producción: el aumento de rendimiento de la compilación previa / generación previa de todo el código es simplemente demasiado grande para mantener la aplicación en modo desarrollador en un sitio en producción.
Desarrollo
No es necesario ejecutar este comando cuando la aplicación está en modo de desarrollador. Magento usa la generación automática de código cuando la aplicación está en este modo, y si no puede encontrar una clase generada, la crea sobre la marcha.
No es obligatorio ejecutar el comando setup: di: compile cada vez, pero si ha realizado algún cambio de código especialmente con métodos de fábrica, proxy, agregar complementos o cualquier compilación de código, debe ejecutar este comando.
php bin/magento setup:static-content:deploy : deploy para el lenguaje por defecto (en_US).
El deploy de la vista estática permite escribir archivos estáticos en el sistema de Magento cuando estamos en modo producción.
Estático significa que los archivos que pueden ser cacheados si no se generan dinámicamente. La palabra «vista» se refiere a la capa de presentación de Modelo-Vista-Controlador (MVC). La implementación de archivos estáticos está influenciada por los modos de producción y el modo de desarrollador. El comando de despliegue permite escribir ficheros de contenido estático cuando la tienda Magento 2 está en modo de producción.
Podemos encontrarlos dentro de /pub/static (css, js, etc.) y /var/view_preprocessed (ficheros .phtml).
Sabemos que las extensiones están dentro de /app o /vendor. Y que estás extensiones tienen archivos estáticos. Esto implica que el navegador no va a poder accceder a ellos.
Por esa razón Magento proporciona el deploy para que todos estos archivos vayan al directorio pub/static (Al hacer deploy Magento chequea si los ficheros de la plantilla o extensión fueron modificados, genera CSS a partir de LESS, etc.) y, de esa forma, ya serán accesible via navegador.
Si quieres forzarlo, en cualquier modo, puedes poner: php bin/magento setup:static-content:deploy -f
Puedes hacerlo para un tema concreto: php bin/magento setup:static-content:deploy –theme Magento/tema
Para limpiar los archivos estáticos tenemos dos opciones:
Método Manual:
Borando ficheros en directorio pub/static excepto .htaccess con el comando
find . -depth -name .htaccess -prune -o -delete
Método automático:
- Entrar en el admin
- Ir a tienda -> Gestión caché -> Flush static files.
Más posts relacionados
Involucrado en ecommerce desde 2010. Freelance especializado en tiendas online Magento y Shopify. Desde consultoría y programación hasta posicionamiento en buscadores junto a CRO.
Mi experiencia y pasión por el desarrollo y marketing online me hacen una fuente confiable para las empresas que buscan optimizar sus tiendas en línea y alcanzar sus objetivos.