我有以下代码段,效果很好:
<?php
require_once(FOLDER_ROOT . "/lib/transaction/RetornoBanco.php");
require_once(FOLDER_ROOT . "/lib/transaction/RetornoFactory.php");
$fileName = 'test.txt';
function rowProcess($self, $numLn, $vrow) {
print ($numLn . ' - ' . $vrow);
}
$test = RetornoFactory::getRetorno($fileName, 'rowProcess');
$retorno = new RetornoBanco($test);
$retorno->process();
getRetorno函数使用&#39; rowProcess&#39;作为处理函数。 但是现在我尝试在我的自定义控制器中进行操作(在我自己的Magento扩展上,看起来像Zend控制器)。
对于我的文件的每一行(test.txt),rowProcess运行。
但是现在,在我的控制器中,rowProcess有一个类。 我的控制器:
class MY_CLASS_HERE extends Mage_Adminhtml_Controller_Action
{
public function uploadAction()
{
//just to simplify, this uploaded file exists
$fileName = '/home/user/public_html/app/files/file.RET';
$test = RetornoFactory::getRetorno($fileName, "rowProcess");
$retorno = new RetornoBanco($test);
$retorno->process();
echo 'My Controller Here';
}
public function rowProcess($self, $numLn, $vrow)
{
print ($numLn . ' - ' . $vrow);
//I'm creating log to prevent it is not a problem for standard output
Mage::log($numLn . ' - ' . $vrow);
//This function log is default in Magento and works without problems.
}
}
我的控制器工作正常,但现在处理程序没有打印任何内容! 我认为这是错误的,因为现在我的类和getRetorno函数中的函数处理程序无法使用它。我该怎么做才能解决这个问题?
答案 0 :(得分:0)
这样使用怎么样?你能试试吗?
$test = RetornoFactory::getRetorno($fileName, $this->rowProcess);