zend 的效率问题一项使人迷惑,但从单元测试的页面看出来,zend关注了大量的细节
<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@zend.com so we can send you a copy immediately.
*
* @category Zend
* @package UnitTests
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: TestHelper.php 8064 2008-02-16 10:58:39Z thomas $
*/
require_once 'PHPUnit/Framework.php';
require_once 'PHPUnit/Framework/IncompleteTestError.php';
require_once 'PHPUnit/Framework/TestCase.php';
require_once 'PHPUnit/Framework/TestSuite.php';
require_once 'PHPUnit/Runner/Version.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'PHPUnit/Util/Filter.php';
/*
* Set error reporting to the level to which Zend Framework code must comply.
*/
error_reporting( E_ALL | E_STRICT );
/*
* Determine the root, library, and tests directories of the framework
* distribution.
*/
$zfRoot = dirname(dirname(__FILE__));
$zfCoreLibrary = $zfRoot . DIRECTORY_SEPARATOR . 'library';
$zfCoreTests = $zfRoot . DIRECTORY_SEPARATOR . 'tests';
/*
* Prepend the Zend Framework library/ and tests/ directories to the
* include_path. This allows the tests to run out of the box and helps prevent
* loading other copies of the framework code and tests that would supersede
* this copy.
*/
$path = array(
$zfCoreLibrary,
$zfCoreTests,
get_include_path()
);
set_include_path(implode(PATH_SEPARATOR, $path));
/*
* Load the user-defined test configuration file, if it exists; otherwise, load
* the default configuration.
*/
if (is_readable($zfCoreTests . DIRECTORY_SEPARATOR . 'TestConfiguration.php')) {
require_once $zfCoreTests . DIRECTORY_SEPARATOR . 'TestConfiguration.php';
} else {
require_once $zfCoreTests . DIRECTORY_SEPARATOR . 'TestConfiguration.php.dist';
}
/*
* Add Zend Framework library/ directory to the PHPUnit code coverage
* whitelist. This has the effect that only production code source files appear
* in the code coverage report and that all production code source files, even
* those that are not covered by a test yet, are processed.
*/
if (defined('TESTS_GENERATE_REPORT') && TESTS_GENERATE_REPORT === true &&
version_compare(PHPUnit_Runner_Version::id(), '3.1.6', '>=')) {
PHPUnit_Util_Filter::addDirectoryToWhitelist($zfCoreLibrary);
}
/*
* Unset global variables that are no longer needed.
*/
unset($zfRoot, $zfCoreLibrary, $zfCoreTests, $path);
这么长一段代码,唯有最后一句是个亮点,曾几何时,我写代码的时候也是这么注重效率,但现在由于使用大量的类还有函数,那么这些垃圾变量都会自动回收
本文探讨了Zend框架的效率问题,并通过分析其单元测试代码揭示了框架背后的设计理念和技术细节。
6738

被折叠的 条评论
为什么被折叠?



