Pregunta

Me iba a armar una pequeña extensión para permitir en ámbito global, pero se quedó atascado tratando de reescribir core/template.

Clase reescribe único trabajo para las clases instanciadas a través de uno de los métodos de Magento para hacerlo (helper, getModel, getSingleton). Para abstracto y muy extendido, desde clases que parecen ser dejado con la opción de protección contra sobrecargas local/Mage.

Dos preguntas:

  1. ¿Hay una manera inteligente para evitar anulaciones local/Mage en todo momento?
  2. Si no es así, ¿cómo ir sobre la inclusión de tales sustituciones en las extensiones de la comunidad?
¿Fue útil?

Solución

1) Cualquier extensión que le ofrecen a la comunidad debe estar bajo la piscina de código comunidad.

2) No debería, pero se puede, ya veces se debe a causa Demeter ha sido ignorado mucho en Magento 1.

Casi siempre hay una forma de evitar la necesidad de anulación, incluyendo el uso de Reflexión como se ha mencionado por Vinai un tiempo atrás .

Si hay demasiada desventaja de soluciones, simplemente debe tomar posesión de la definición de clase. Puede realizar una de las siguientes, siempre que los usuarios sean conscientes:

  1. En la piscina de código comunidad, proporcionar la definición modificado bajo Mago | varien | Zend espacio de nombres según el caso. Posible preocupación sería que el usuario final podría haber hecho lo mismo.
  2. Como el anterior, pero en un nuevo grupo de código: anteponer el nuevo codepool a las bootstrap incluye trazados mediante set_include_path(). Desventaja:. stat()ing causó más por el cargador automático, y su manipulación ruta de inclusión será no evidente ya que está fuera de la rutina de carga
  3. Si es posible, la definición ti mismo antes de que se carga desde su ubicación normal, por ejemplo, por include()ing explícitamente desde una ubicación no estándar debajo de su espacio de nombres.

Sonido su caso por caso las necesidades aquí - alguien tendrá una idea. En cuanto a las sugerencias de ruta de plantilla en el ámbito de administración, ver mi respuesta que ni siquiera requieren PHP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top