【发布时间】:2021-11-24 06:17:52
【问题描述】:
我有一个名为 products 的课程。而且我需要在这个类的 __construct 函数中初始化至少 12 个新类。如果我按以下方式运行它,会不会对网站性能有很大影响?是否有替代或更简单的方法?
注意:我的 PHP 版本是 v8
例如:
<?php
class products(){
function __construct(){
$this->class_1 = new Class_1();
$this->class_2 = new Class_2();
$this->class_3 = new Class_3();
$this->class_4 = new Class_4();
$this->class_5 = new Class_5();
$this->class_6 = new Class_6();
$this->class_7 = new Class_7();
$this->class_8 = new Class_8();
$this->class_9 = new Class_9();
$this->class_10 = new Class_10();
$this->class_11 = new Class_11();
$this->class_12 = new Class_12();
$this->class_13 = new Class_13();
}
}
?>
【问题讨论】:
-
“它会对网站性能产生很大影响吗?” - 这取决于您自己运行指标,然后比较结果。我不能告诉你。由于您关心性能,
new将调用该类的__construct方法,因此如果它执行很多操作,就会产生影响,并且由于通常在单个文件中定义一个类,因此自动加载可能会创建磁盘 i /o.请牢记继承(extends、implements、use),因为这可能会触发每个类的多个文件的自动加载器。 -
当然还有其他选择。总是有的。但是,您的问题非常抽象。我们不知道为什么需要初始化 12 个新类。可能它们中的五个是相同的简单类来表示金额。在这种情况下,不会使用很多资源。另一方面,可能有一个类需要外部 API 调用才能工作,它可能会减慢一切并使其不可靠。性能是否受到严重影响取决于这些类的作用,而您还没有告诉我们。
-
1) product_categories(); 2)产品描述(); (对于不同的语言。像 opencart) 3) class_taxes(); 4) class_stock_statuses(); 5)类长度(); 6)类重量(); 7) class_manufacturers(); 8)类特征(); 9)类选项(); 10) class_recurrings(); 11) class_users_groups(); 12)类_用户(); 13) class_recur_payments();每个类用于管理自己的数据库并处理拉取的数据库。
-
“很多”是多少?你测量了什么?抱歉,但这不是一个可以在不将意见和猜测混合到答案中的情况下回答的问题,这对于 Stack Overflow 来说是一个糟糕的问题。另外,您实际上是在问两个问题。也就是说:考虑按需创建这些额外的对象。
标签: php function performance class web