Php Zend Framework:从其他文件调用函数

Php Zend Framework:从其他文件调用函数,php,zend-framework,function,instance,Php,Zend Framework,Function,Instance,**Edit2:Core.php未找到,因为Bootstrap.php需要包含Core.php 需要_once“C:\wamp\www\PhpProject1\application\Core\Core.php”; 解决了我的问题** 我正在使用zendframework,并为我的函数创建了一个新文件夹,其中包含Core/Core.php文件,我将在控制器和其他地方使用它。但是,当我尝试在Core.php中测试函数时,什么都不会出现。我想我没有正确调用core.php,但我不确定错误是什么 应

**Edit2:Core.php未找到,因为Bootstrap.php需要包含Core.php 需要_once“C:\wamp\www\PhpProject1\application\Core\Core.php”; 解决了我的问题**


我正在使用zendframework,并为我的函数创建了一个新文件夹,其中包含Core/Core.php文件,我将在控制器和其他地方使用它。但是,当我尝试在Core.php中测试函数时,什么都不会出现。我想我没有正确调用core.php,但我不确定错误是什么

应用程序/控制器/

IndexController.php

class IndexController extends Zend_Controller_Action
{

     public function init()
    {
         $this->tournamentAction();
    }

   public function indexAction(){          

   }

    public function tournamentAction()
  {            
        $bleh = new Core();
        $this->view->ha = $bleh->yo();
        $this->renderScript('tournament/index.phtml');            
    }    
}
应用程序/核心/

Core.php

class Core{

    public function init(){

    }

    public function indexAction(){

    }
    public function yo(){
        $text = 'This is my function Yo';
        return $text;
    }
应用程序/视图/脚本/锦标赛/ index.phtml

$this->ha;
echo "hello";
编辑:错误报告很好哈!这就是我得到的错误。

 ! ) Fatal error: Class 'Core' not found in C:\wamp\www\PhpProject1\application\controllers\IndexController.php on line 19
Call Stack
#   Time    Memory  Function    Location
1   0.0006  678944  {main}( )   ..\index.php:0
2   0.0275  3090632 Zend_Application->run( )    ..\index.php:26
3   0.0275  3090632 Zend_Application_Bootstrap_Bootstrap->run( )    ..\Application.php:366
4   0.0275  3090728 Zend_Controller_Front->dispatch( )  ..\Bootstrap.php:97
5   0.0446  4801056 Zend_Controller_Dispatcher_Standard->dispatch( )    ..\Front.php:954
6   0.0456  4823424 Zend_Controller_Action->__construct( )  ..\Standard.php:268
7   0.0547  5211576 IndexController->init( )    ..\Action.php:133
8   0.0547  5211576 IndexController->tournamentAction( )    ..\IndexController.php:8

视图中
执行以下操作:

$this->ha; // this doesn't do anything without an echo / print
你还说:

我想我没有正确调用core.php,但我不确定错误是什么

如果是这种情况,您应该启用错误报告

在引导文件的顶部添加以下内容:

error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 1);

你的问题是自动加载器找不到你的核心类

通常,我使用一个库文件夹来构建我的应用程序,我的所有模型和工具都在这个文件夹中结束

在您的情况下,我会在library文件夹中创建一个名为MyProject的文件夹,在其中您可以放置Core.php类,您必须更正它的名称,这将导致:

library/MyProject/Core.php

class MyProject_Core{

public function init(){

}

public function indexAction(){

}
public function yo(){
    $text = 'This is my function Yo';
    return $text;
}
当然,你应该这样称呼你的班级:

$coreInstance = new MyProject_Core();
将此函数放在应用程序/Bootstrap.php中:

protected function _initAutoload()
{
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->registerNamespace('MyProject_');
    $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath' => APPLICATION_PATH));
    return $autoloader;
}

然后Zend_加载程序应该会找到没有任何问题的类。

你从来没有
echo
print
$this->ha
。我刚刚做了更改,但它仍然没有打印任何内容。当你这样做时,它会被打印出来吗:
echo$this->ha;死亡?不,它不显示任何用于回声或打印的内容。\r如果其中一个提供了任何帮助,请勾选正确答案。哈哈,谢谢错误报告将很有帮助。我将我的问题编辑为错误的输出。似乎找不到我的Core.php类。我是不是打错电话了,还是需要更改设置才能看到?谢谢你的帮助help@user915946:如果我的答案有帮助,您可以将其标记为答案:-)+1,用于库文件夹和自动加载程序中的特定工具/逻辑,但我认为模型应保留在模型或模块/模型文件夹中是,我承认这是一个可以讨论的个人选择,但我经常把我的模型看作是图书馆的一部分,因为它们不经常指导终端用户的行为。