smarty icon indicating copy to clipboard operation
smarty copied to clipboard

Fatal error: Uncaught --> Smarty: Unable to write file [file_path] thrown in C:\[project_path]\vendor\smarty\smarty\src\Smarty.php on line 1732

Open rodriguezny opened this issue 1 year ago • 6 comments

We are facing this issue in the project Tiki Wiki CMS only for windows users. The following error is thrown: Fatal error: Uncaught --> Smarty: unable to write file C:\xampp\htdocs\tiki\temp\templates_c\en_basic^f4976e02395559add3c9bc302b01cf84441c25a1_0.extends_layout_view.tpl|tiki-show_page.tpl.php <-- thrown in C:\xampp\htdocs\tiki1\tiki\vendor_bundled\vendor\smarty\smarty\src\Smarty.php on line 1724

I took a look in the file smarty/smarty/src/Smarty.php from line 1697 and found some comments and an if{} close related to Windows which is supposed to handle windows case, but it seems it doesn't solve windows issue. We already tried to set the directory permission recursively to 777 but the error still persists. Thanks!

rodriguezny avatar May 21 '24 08:05 rodriguezny

I suppose the | character in the filename that is illegal on Windows. I noticed it today in another issue too.

wisskid avatar May 23 '24 23:05 wisskid

I suppose the | character in the filename that is illegal on Windows. I noticed it today in another issue too.

But the | character comes from the template inheritance when extending resource type.

rodriguezny avatar May 29 '24 12:05 rodriguezny

Yes, I didn't mean to say it was your fault. I suppose the |-character was somehow encoded in v4 and we "simplified" that a bit too much in v5. The unit tests didn't catch it since they always run on Linux.

wisskid avatar May 29 '24 13:05 wisskid

Yes, I didn't mean to say it was your fault. I suppose the |-character was somehow encoded in v4 and we "simplified" that a bit too much in v5. The unit tests didn't catch it since they always run on Linux.

Ok, I understand. So do we have to wait for the fix ?

rodriguezny avatar May 29 '24 13:05 rodriguezny

Yes, but maybe you can help me find the source of the bug? I noticed that the filenames have indeed changed between v4 and v5:

  • In v4, \ExtendsResourceTest::testCompileBlockIncreaseInChild_050 results in a compiled template named "./tests/UnitTests/ResourceTests/Extends/templates_c/210f746458dbb237333807da8d80ff53a837985c_0.extends.050_grandchild.tpl.php".
  • In v5, it's "./tests/UnitTests/ResourceTests/Extends/templates_c/0a382e517fefa510de3f987160291ed9924a7124_0.extends_050_parent.tpl|050_child.tpl|050_grandchild.tpl.php".

wisskid avatar May 29 '24 14:05 wisskid

Yes, but maybe you can help me find the source of the bug? I noticed that the filenames have indeed changed between v4 and v5:

  • In v4, \ExtendsResourceTest::testCompileBlockIncreaseInChild_050 results in a compiled template named "./tests/UnitTests/ResourceTests/Extends/templates_c/210f746458dbb237333807da8d80ff53a837985c_0.extends.050_grandchild.tpl.php".
  • In v5, it's "./tests/UnitTests/ResourceTests/Extends/templates_c/0a382e517fefa510de3f987160291ed9924a7124_0.extends_050_parent.tpl|050_child.tpl|050_grandchild.tpl.php".

Ok, I'll try to find the source of the bug. Sorry for answering later.

rodriguezny avatar Jun 03 '24 14:06 rodriguezny

Just wanted to mention I can confirm I'm encountering the same error on an internal company project I'm currently upgrading as part of an internship.

In the mean time, I have downgraded Smarty to v4 (still a big upgrade compared to the outdated version it was using), but would like a fix before my internship ends if possible.

Thank you in advance.

JordanViknar avatar Jul 19 '24 08:07 JordanViknar