Crear una clase auxiliar personalizada en el módulo

24

He creado un nuevo módulo llamado test_helpery quiero crear una clase auxiliar en este módulo para poder agregar funciones personalizadas para que se llamen en todo mi sitio.

Sin embargo, parece que no puedo encontrar ningún ejemplo de cómo hacerlo. Supongo que tengo que crear un xml adicional en la configuración y agregar otro archivo en algún lugar que extienda un asistente de base, pero no tuve suerte de encontrar un ejemplo sobre el cual construir.

Chris Morris
fuente

Respuestas:

34

La convención de nomenclatura de su módulo es bastante confusa: ¿está llamando al módulo sí mismo ayudante? Para explicarlo, elijo llamar a su módulomyname_mymodule

En su módulo ./app/code/community/MyName/MyModule/etc/config.xml, dentro de las <global>etiquetas

<helpers>
  <mymodule>
      <class>MyName_MyModule_Helper</class>
  </mymodule>
</helpers>

Luego crea el archivo ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

Luego, para llamar a ese módulo, usaría

$helper = Mage::helper('mymodule');
Ben Lessani - Sonassi
fuente
9

Agregue un directorio Helper en el directorio de extensión y allí un archivo Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

  public function yourFunction() {
     ...
     your code here
     ...
  } 

}

Ahora puedes llamarlo a través de

Mage::helper('test/helper')->yourFunction();

Agregue también lo siguiente en su config.xml

...
<global>
    ...
    <helpers>
        <[extension name]>
            <class>[Namespace]_[extension name]_Helper</class>
        </[extension name]>
    </helpers>
    ...
</global>
...
Sander Mangel
fuente
Muchas gracias a ustedes dos. Esto respalda la pequeña información que pude encontrar y pude hacer que funcionara al final. En realidad no lo llamo test_helper, que fue solo para mí pasar por cosas en mi pequeño bloque de prueba, pero sí, idea tonta llamándolo helper = p
Chris Morris
Probablemente sea mejor renombrarlo, ¡pero lo principal es que funciona! buena suerte con el proyecto
Sander Mangel