Hello,
since I'm pretty new to OOP I'd like to have a few comments on these two approaches to a constructor. I have two class properties, which sort of belong together (IDs) and are pretty essential (I cannot imagine any circumstances where they don't need to be set), so I could put them in the parameter list of _construct() (see class BigConstructor). But that would make the parameter list long and ugly. To avoid this I could have a setId() method which would have to be called every time I instantiate the class (CompactConstructor). Not nice either.

PHP Code:
<?php
class BigConstructor {
    
// ugly ugly ugly parameter list
    
public function __construct($objectId$catId, \
        & 
$dbHandlerdbselect $dbAbstract) {
        
$this->caseId $objectId;
        
$this->catId $catId;
        
// ... and some more
    
}
}

class 
CompactConstructor {
    
// nice parameter list
    
public function __construct(& $dbHandlerdbselect $dbAbstract) {
    
// ...
    
}
    public function 
setIds($objectId$catId) {
        
$this->caseId $objectId;
        
$this->catId $catId;
    }
}

// ready to use!
$bc = new BigConstructor(...);

// two steps neccessary to use this!
$cc = new CompactConstructor(...);
$cc->setIds(1,1);

?>
Generally: Do you prefer "big" constructors or would you try to keep the constructor's parameter list short by setting (important) properties manually?
Please let me know how you usually handle this.

Thanks in advance,
Christoph