QuickAnswer
by

CakePHP4 View出力をファイルに保存

CakePHP4 View出力をファイルに保存

CakePHP4 View出力をファイルに保存

CakePHP4でView出力を画面ではなくそのままファイルに保存する方法。
通常はrenderで画面出力。条件によりファイルへ出力する例。

この例では templates/Seconds/second.php がファイルへ出力するテンプレートとなる。

use Cake\View\View;
use Cake\Filesystem\File;

class FirstsController extends AppController {

    public function index(): void {
        $foo = (何らかの値);
        $this->set('foo',$foo);

        if ((何らかの判定)) {    //ファイルへ出力
            $view = new View();
            $view->set($this->viewBuilder()->getVars());
            $view->setTheme('ThemeSecond');
            $view->setLayout('second');
            $view->setTemplatePath('Seconds');
            $view->setTemplate('second');
            $out = $view->render();
            $pathFile = '(保存先ファイル名)';
            $file = new File($pathFile,true);
            $file->write($out);
            $file->close();
        } else {    //画面へ出力
            $this->render('index');
        }
    }
}
CONTENTS