Most of the plugins that do “open all external links in new tab” do it with JS, which is fine and probably the best way to capture 100% of the links on a page (ratehr than output buffering the entire page which some used to do and is awful for performance.
if you’re trying to reduce the JS on your pages though (I don’t know, maybe for Google AMP?) and you only care about forcing links inside your post content doing it in PHP on page render like this is a better way (IMHO).
I do wish there was an option to disable “no_follow”. While most people want no_follow, it’s not always the best practice even for external links (we don’t care about SEO, we care about people bouncing/closing pages before ad impressions are counted).
Just simple, if you use this plugin, rel=nofollow and target=_blank will be inserted automatically, for all the external links of your website posts or pages.