我有一个类似于这个帖子的问题:[throw-exceptions-from-model-view-controller-in-a-zend-framework-application] [1]
我有一个像这样的标准MVC结构:
/application
/myapp
/controllers
/forms
/models
/exceptions
Default.php (class Myapp_Exception_Default extends Zend_Exception)
无论我什么时候尝试:
throw new Myapp_Exception_Default();
我明白了:
Fatal error: Class 'Myapp_Exception_Default' not found
我的问题是如何让Zend找到我的自定义例外?我没有找到任何配置选项来声明它。
答案 0 :(得分:1)
你应该有这样的东西:
boostrap.php
有了这个内容:
...
protected function _initAutoload()
{
// Add autoloader empty namespace
$autoLoader = Zend_Loader_Autoloader::getInstance();
$autoLoader->suppressNotFoundWarnings(true);//http://zend-framework-community.634137.n4.nabble.com/Trouble-using-Gdata-Calendar-td675383.html
$autoLoader->registerNamespace('Gestionale_');
$resourceLoader = new Zend_Loader_Autoloader_Resource(
array(
'basePath' => APPLICATION_PATH,
'namespace' => '',
'resourceTypes' => array(
'form' =>
array(
'path' => 'forms/',
'namespace' => 'Form_',
),
'model' =>
array(
'path' => 'models/',
'namespace' => 'Model_'
),
),
));
// Return it so that it can be stored by the bootstrap
return $autoLoader;
}
...
\library\Gestionale\Exceptions\Exception.php
使用此代码
<?php
/**
* Custom exception class that logs messages
*/
class Gestionale_Exceptions_Exception extends Exception
{
...
}
然后使用
throw new Gestionale_Exceptions_Exception('Bla bla bla');