画像アップロード系の記事を書いた時にメソッドチェーンで実装したら便利だったのでメモ代わりに投稿
利用する場合にコードが読みやすくなるので良いですね
動作環境
PHP 7.1.20
※たぶん5系全般でも動きます
クラスの作成
returnで自分自身を返せばOK(setterに実装すると使いやすい)
photoUploader.php
<?php
/**
* Class PhotoUploader
*/
class PhotoUploader
{
private $filesystem;
private $path;
/**
* PhotoUploader constructor.
* @param Filesystem $filesystem
*/
public function __construct(Filesystem $filesystem)
{
$this->filesystem = $filesystem;
}
/**
* @param $path
* @return $this
*/
public function setPath($path)
{
$this->path = $path;
return $this;
}
/**
* @return String
*/
public function getPath()
{
return $this->path;
}
/**
* @param $file
* @return bool
*/
public function upload($file)
{
// upload処理
}
利用サンプル
sample.php
<?php
$filesystem = new Filesystem();
$uploader = new PhotoUploader($filesystem)
$path = '/tmp/test.png'
// こんな感じで使う
$uploader->setPath($path)->upload($file);