Although it could be argued that PHP is itself a template engine, many developers agree that embedding HTML code in PHP code creates code that is difficult to read and makes it almost impossible for designers with no PHP knowledge to change the HTML. When you use a PHP template engine, you can completely separate your HTML code from your PHP code. You can therefore allow designers with no knowledge of PHP to modify page structure, and optionally limit access to application logic.