pes*_*taa 15 language-agnostic oop constructor
我有这样的课程:
class SomeObject
{
    public function __construct($param1, $param2)
    {
       $this->process($param1, $param2);
    }
    ...
}
所以我可以立即"称呼"它作为某种全局函数
new SomeObject($arg1, $arg2);
这有什么好处
但是可能会因为不等到方法被调用而破坏了不成文的语义规则.
我是不是应该因为不好的练习而感到不舒服,或者真的没什么值得担心的?
澄清:
例:
为了让您了解我通常如何使用此方法:
new Email('to@example.com', 'Subject line', 'Body Text');
当然,我避免过度使用它,但在我看来,这非常方便.
如果构造函数中的代码是创建和初始化对象的一部分,那么我会把它放在那里,但这就是我个人,有些人可能不同意
但是,看起来你正在做的不是用于构建对象/类,而是做其他一些过程.这很糟糕,应该在一个单独的方法中完成.
保持构造的构造.
这是一种不好的做法.
使用构造函数作为全局函数根本不是它的目的,而且很容易混淆.根本不容易理解.
如果你想要一个全局函数,请声明一个:
function myGlobalFunction(){ return $something; }
真的不是那么难......
即使你没有将它用作函数,你也应该使用构造函数来构造一个对象.如果你做的不止于此,那么你并没有将它用于正确的目的,未来的贡献者可能很快会感到困惑.
因此,以某种方式编程是有道理的.这真的不是那么难.一些额外的击键可以为您节省很多困惑.
如果您需要在创建类的新实例后始终采取某些操作,请尝试工厂:
 class myFactory{
       public static function makeObject(){
           $obj = new Object();
           $obj->init1();
           return $obj;
       }
 }
 $obj = myFactory::makeObject();