在zend services文件夹中找不到类

时间:2011-11-30 03:27:41

标签: php zend-framework class object

我在Zend项目中创建了services文件夹,并在该文件夹中创建了新的php文件。我的文件夹结构就在那里。

<project name>/
    application/
        configs/
            application.ini
        controllers/     
            IndexController.php      
        models/   
            Test.php        
        services/
            SoapClient.php
        views/                
            helpers/
            scripts/
        Bootstrap.php       
    docs/
    library/
    public/          
        .htaccess
        index.php       
    tests/

我可以使用Application_Model_Test类使用Test.php文件。但是我可以使用Application_Service_SoapClientApplication_Services_SoapClient类名来使用SoapClient.php文件。

始终显示以下消息。

Fatal error: Class 'Application_Services_SoapClient' not found in /home/dinuka/workspace/testzend/application/controllers/IndexController.php on line 13 

请帮帮我。我应该在SoapClient.php中使用哪个类?

1 个答案:

答案 0 :(得分:1)

路径正确,但该类应命名为Application_Service_SoapClient

服务是自动映射的模块资源类之一。

要使其正常工作,只需将类重命名为Application_Service_SoapClient并更新对该类的所有引用(如果有)。文件名很好。

这些是1.11.11的默认映射:

    $this->addResourceTypes(array(
        'dbtable' => array(
            'namespace' => 'Model_DbTable',
            'path'      => 'models/DbTable',
        ),
        'mappers' => array(
            'namespace' => 'Model_Mapper',
            'path'      => 'models/mappers',
        ),
        'form'    => array(
            'namespace' => 'Form',
            'path'      => 'forms',
        ),
        'model'   => array(
            'namespace' => 'Model',
            'path'      => 'models',
        ),
        'plugin'  => array(
            'namespace' => 'Plugin',
            'path'      => 'plugins',
        ),
        'service' => array(
            'namespace' => 'Service',
            'path'      => 'services',
        ),
        'viewhelper' => array(
            'namespace' => 'View_Helper',
            'path'      => 'views/helpers',
        ),
        'viewfilter' => array(
            'namespace' => 'View_Filter',
            'path'      => 'views/filters',
        ),
    ));