Загрузка Zend_Application с Zend_test
-
26-09-2019 - |
Вопрос
В документах предоставлен код для загрузки выглядит как
protected $application;
public function setUp() {
$this->bootstrap = array($this, 'appBootstrap');
parent::setUp();
}
public function appBootstrap() {
$this->application = new Zend_Application( ... );
$this->application->bootstrap();
}
Мне было любопытно, почему когда я пытался
protected $application;
public function setUp() {
$this->application = new Zend_Application( ... );
$this->application->bootstrap();
parent::setUp();
}
это не удалось. Кроме того, когда я попробовал перемещение загрузки приложение в Bootstrap.php, он тоже не удается
// bootstrap.php
...
$application = new Zend_Application( ... );
$application->bootstrap();
Причина, по которой я думал, что перенести это к Bootstrap.php Джон Лебенсльд из Zend Chasts расширил контрольный элемент управления для обработки всей этой загрузки в отдельном классе. Я думал, что вместо того, чтобы расширить класс, если я могу переместить код в Bootstrap.php в 1 месте, не будет лучше
Решение
Это то, как выглядит мой управляемый файл.
<?php
abstract class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase
{
public function setUp()
{
$this->bootstrap = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
parent::setUp();
}
}
Teasheleper.php (bootstrap)
<?php
define('BASE_PATH', realpath(dirname(__FILE__) . '/../public'));
define('APPLICATION_PATH', realpath(BASE_PATH . '/../application'));
set_include_path(implode(PATH_SEPARATOR, array(
'.',
realpath(APPLICATION_PATH . '/../library'),
get_include_path()
)));
define('APPLICATION_ENV', 'testing');
require_once "Zend/Loader/Autoloader.php";
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
$loader->suppressNotFoundWarnings(false);
require_once 'ControllerTestCase.php';
Не связан с StackOverflow