public function __construct() {
// allocate your stuff
}
public static function withRow( array $row ) {
$instance = new self();
$instance->fill( $row );
return $instance;
}
protected function fill( array $row ) {
// fill all properties from array
}
For details check this answer : Best way to do multiple constructors in PHP