##はじめに
コンストラクタとはクラスからインスタンスを生成するとき(オブジェクトがnewによって作成されるとき)に自動的に呼び出されるメソッドです。
オブジェクト作成時に初期化処理が必要な場合、コンストラクタ内に記述しておけば自動的に実行してくるので大変便利です。
##コンストラクタを用いて実装してみる
class Job
{
protected $job_service;
public function __construct(
JobService $job_service
) {
$this->job_service = $job_service;
}
public function main()
{
$recruiting_jobs = $this->job_service->recruitingJobs();
return $this->render($recruiting_jobs);
}
}
メソッド名の部分を__constructとするとコンストラクタとなります。
コンストラクタのアクセス制限はpublicのみです。
コンストラクタはprivateやprotectedにすることもできますが、その場合外からnewができなくなります。(2020/09/05:追記)
##おわりに
コンストラクタに実装すれば必要なたびごとに初期化の実装が不要になるので便利ですね。