Modifique los cambios en los archivos principales para que permanezcan incluso después de las actualizaciones de Magento
-
29-09-2020 - |
Pregunta
Recientemente hice cambios en los archivos de Magento Core, pero esos cambios se anularon después de una actualización menor a Magento CE 1.9.2.4 desde la versión 1.9.2.3.Ahora tengo que hacer esos cambios nuevamente.Estos son cambios obligatorios para mi tienda y son necesarios para que el símbolo de rupia (moneda india) aparezca en las facturas de Magento.La fuente predeterminada no admite el símbolo.¿Cómo puedo hacer que esos cambios permanezcan permanentes en el archivo principal?
Solución
Simplemente puede copiar el archivo principal (que desea anular) y pegarlo en app/code/local/Mage
manteniendo la misma ruta de ese archivo php.Luego puede comenzar a editar este archivo, magento leerá su archivo en lugar del archivo principal.A continuación se muestra un ejemplo:=> Si desea anular app/code/core/Mage/Catalog/Block/Product.php
simplemente lo necesitas para poner Product.php
en app/code/local/Mage/Catalog/Block/Product.php
.Hacer solo esto permitirá que magento lea este archivo desde la carpeta local en lugar de desde la carpeta principal.
El motivo de este comportamiento de lectura de la carpeta local a la carpeta principal es:Este proceso se llama anulación de la funcionalidad principal de Magento y se basa en el hecho de que Magento configura sus rutas de inclusión PHP para buscar primero en app/code/local/ luego app/code/community/
y finalmente en app/code/core/
.Esto tiene el efecto de que cualquier archivo con el mismo nombre colocado en el espacio de nombres local o comunitario tendrá prioridad en la carga, por lo tanto, podemos anular casi cualquier archivo principal de esta manera.
Desventajas del uso del enfoque anterior:
Por un lado, debemos anular el archivo principal completo y copiar todas las funciones de clase.Una vez que el archivo anulado esté en su lugar, este será el archivo que se utilizará siempre en lugar del archivo principal de Magento.Dado que la mayoría de las clases principales contienen varios y muchas veces una gran cantidad de métodos, significa que estamos anulando efectivamente todos esos métodos en nuestro archivo.
Este enfoque no es compatible con la actualización de Magento, debido a las razones anteriores.
Este enfoque no funciona para los controladores.
Este enfoque solo es útil mientras prueba/desarrolla su módulo.En lugar de escribir un módulo completo, puede anular rápidamente la clase principal para ver si todo funciona bien.
Otros consejos
Evite realizar cambios en los archivos principales de MAGENTO, debe intentar sobrescribirlo en su propia piscina local.De esa manera, cuando se realiza una actualización, sus cambios no se pierden.