我一直在尝试学习PHP中的类,我的学习过程的一部分是查看各种库和其他东西。当然,我还有很多问题要问,这里就是其中之一。
当查看一些库时,您调用来调用库的主文件,它们通过直接调用名称来调用每个库文件,例如,PHP图表库就是这样做的:
<?php
require_once 'model/ChartConfig.php';
require_once 'model/Point.php';
require_once 'model/DataSet.php';
require_once 'model/XYDataSet.php';
require_once 'model/XYSeriesDataSet.php';
require_once 'view/primitive/Padding.php';
require_once 'view/primitive/Rectangle.php';
require_once 'view/primitive/Primitive.php';
require_once 'view/text/Text.php';
require_once 'view/color/Color.php';
require_once 'view/color/ColorSet.php';
require_once 'view/color/Palette.php';
require_once 'view/axis/Bound.php';
require_once 'view/axis/Axis.php';
require_once 'view/plot/Plot.php';
require_once 'view/caption/Caption.php';
require_once 'view/chart/Chart.php';
require_once 'view/chart/BarChart.php';
require_once 'view/chart/VerticalBarChart.php';
require_once 'view/chart/HorizontalBarChart.php';
require_once 'view/chart/LineChart.php';
require_once 'view/chart/PieChart.php';
?>但是,我查看了另一个库,它们只是通过使用PHP autoload方法调用目录中的每个文件来自动执行该过程,如下所示(来自php手册):
function __autoload($name) {
echo "Want to load $name.\n";
throw new Exception("Unable to load $name.");
}我想知道以自动加载的方式做这件事有什么好处或坏处?
发布于 2012-02-06 21:20:52
我不相信__autoload只有优点。但确实有一些。
__autoload的优点
正常方式的优点
对于anybody
这实际上是一个编码风格的问题。
发布于 2012-02-06 21:56:25
我想我最同意Cygal的观点,但我想修改一下回应,将PSR-0考虑在内。如果你不遵守这个标准,我认为使用自动加载没有多大意义。
Pro自动加载
框架采用的标准,因此您可以期待人们熟悉这种方法。
支持旧风格
总而言之:只要你遵循PSR-0,我就看不到任何避免自动加载的理由!
发布于 2012-02-06 21:15:55
使用自动加载器总是有好处的。
潜在的缺点
通过向spl注册自动加载器可以避免潜在的缺陷
https://stackoverflow.com/questions/9160563
复制相似问题