Is this a safe way to copy a page?

I have a code that looks kind of like this:

page()->create(
  $parent->id(),
  'template',
  $page->content()->toArray()
);

Instead of a manual array I use a content toArray:

$page->content()->toArray();

Is it totally safe to use to copy a page or is there cases where this will fail?

Should be fine. But please note that you need to copy files manually. Also, you might need to make the template dynamic.

I guess you wrap the code within a try/catch block anyway to be able to handle errors?

@lukasbestle Yes, I’m in luck. I just need the content file and it seems to work fine, even with a structure field.

@texnixe I’m using it inside a panel hook. Right now I don’t want to throw errors, at least not echo anything because then the panel will hang. I still find it hard to debug hooks. I can only hope it will be easier in the future. Right now I write something to a file to see how far the hook made.

Thanks to both of you!