<?php namespace BookStack\Console\Commands; use BookStack\Actions\Comment; use BookStack\Actions\CommentRepo; use Illuminate\Console\Command; class RegenerateCommentContent extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'bookstack:regenerate-comment-content {--database= : The database connection to use.}'; /** * The console command description. * * @var string */ protected $description = 'Regenerate the stored HTML of all comments'; /** * @var CommentRepo */ protected $commentRepo; /** * Create a new command instance. */ public function __construct(CommentRepo $commentRepo) { $this->commentRepo = $commentRepo; parent::__construct(); } /** * Execute the console command. * * @return mixed */ public function handle() { $connection = \DB::getDefaultConnection(); if ($this->option('database') !== null) { \DB::setDefaultConnection($this->option('database')); } Comment::query()->chunk(100, function ($comments) { foreach ($comments as $comment) { $comment->html = $this->commentRepo->commentToHtml($comment->text); $comment->save(); } }); \DB::setDefaultConnection($connection); $this->comment('Comment HTML content has been regenerated'); } }