Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

в modx 3 и php8 вот ловится: Fatal error: Uncaught TypeError : Fenom\Render::__construct(): Argument #1 ($fenom) must be of type Fenom, null given #340

Open
whatafunc opened this issue Jan 17, 2023 · 6 comments

Comments

@whatafunc
Copy link

На php8 в интегрированном Fenom в MODX3 c кодом темплейта:
{var $thisId = $_modx->resource.content_from_id ?: $_modx->resource.id} {include 'head'} {include 'favicon'} {var $thisId = $_modx->resource.content_from_id ?: $_modx->resource.id} ... {$thisId | resource : 'longtitle' ?: $thisId | resource : 'pagetitle'} {$thisId | resource : 'description'}

страница падает с ошибкой:

Fatal error: Uncaught TypeError: Fenom\Render::__construct(): Argument #1 ($fenom) must be of type Fenom, null given, called in /var/www/html/core/components/pdotools/src/Parsing/Fenom/Fenom.php(116) : eval()'d code on line 52 and defined in /var/www/html/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Render.php:83 Stack trace: 
#0 /var/www/html/core/components/pdotools/src/Parsing/Fenom/Fenom.php(116) : eval()'d code(52): Fenom\Render->__construct(NULL, Object(Closure), Array) 
#1 /var/www/html/core/components/pdotools/src/Parsing/Fenom/Fenom.php(116): eval() 
#2 /var/www/html/core/components/pdotools/src/Parsing/Parser.php(69): ModxPro\PdoTools\Parsing\Fenom\Fenom->process('{var $thisId = ...', Array) 
#3 /var/www/html/core/src/Revolution/modResource.php(521): ModxPro\PdoTools\Parsing\Parser->processElementTags('', '{var $thisId = ...', true, false, '[[', ']]', Array, 10) 
#4 /var/www/html/core/src/Revolution/modResource.php(469): MODX\Revolution\modResource->parseContent() 
#5 /var/www/html/core/src/Revolution/modResponse.php(72): MODX\Revolution\modResource->prepare()
 #6 /var/www/html/core/src/Revolution/modRequest.php(154): MODX\Revolution\modResponse->outputContent(Array) 
#7 /var/www/html/core/src/Revolution/modX.php(1242): MODX\Revolution\modRequest->prepareResponse() 
#8 /var/www/html/core/src/Revolution/modX.php(1281): MODX\Revolution\modX->sendForward('2', Array, false) 
#9 /var/www/html/core/src/Revolution/modRequest.php(134): MODX\Revolution\modX->sendErrorPage() 
#10 /var/www/html/core/src/Revolution/modX.php(1499): MODX\Revolution\modRequest->handleRequest() 
#11 /var/www/html/index.php(63): 
MODX\Revolution\modX->handleRequest() 
#12 {main} thrown in /var/www/html/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Render.php on line 83

на php7 такого не было :)
pdoTools самый последний
код сравнивал с тем что имеется на гитхабе - он один в один такой же вроде бы, по крайней мере подстановка этого репо в папку с проектом не приводит к другому результату, а тоже так же падает всё.

@whatafunc
Copy link
Author

@bzick Иван привет, просьба не забыть :)

@bzick
Copy link
Member

bzick commented Feb 5, 2023

В процессе, много надо сделать для php8

@Cheizerman
Copy link

Hello! Same error on MODX version 3.0.3, php 7.3 did you manage to solve it?

Fatal error: Uncaught TypeError: Argument 1 passed to Fenom\Render::__construct() must be an instance of Fenom, null given, called in /home/public_html/core/components/pdotools/src/Parsing/Fenom/Fenom.php(116) : eval()'d code on line 32 and defined in /home/public_html/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Render.php:83 Stack trace: #0 /home/public_html/core/components/pdotools/src/Parsing/Fenom/Fenom.php(116) : eval()'d code(32): Fenom\Render->__construct(NULL, Object(Closure), Array) #1 /home/public_html/core/components/pdotools/src/Parsing/Fenom/Fenom.php(116): eval() #2 /home/public_html/core/components/pdotools/src/Parsing/Parser.php(69): ModxPro\PdoTools\Parsing\Fenom\Fenom->process('\r\n\r\n<body>\r\n\r\n ...', Array) #3 /home/public_html/core/src/Revolution/modResource.php(521): ModxPro\PdoTools\Parsing\Parser->processElementTags('', '\r\n\r\n<body>\r\n\r\n ...', true, false, '[[', ']]', Array, 10) #4 /h in /home/public_html/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Render.php on line 83

@whatafunc
Copy link
Author

Hello! Same error on MODX version 3.0.3, php 7.3 did you manage to solve it?

Fatal error: Uncaught TypeError: Argument 1 passed to Fenom\Render::__construct() must be an instance of Fenom, null given, called in /home/public_html/core/components/pdotools/src/Parsing/Fenom/Fenom.php(116) : eval()'d code on line 32 and defined in /home/public_html/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Render.php:83 Stack trace: #0 /home/public_html/core/components/pdotools/src/Parsing/Fenom/Fenom.php(116) : eval()'d code(32): Fenom\Render->__construct(NULL, Object(Closure), Array) #1 /home/public_html/core/components/pdotools/src/Parsing/Fenom/Fenom.php(116): eval() #2 /home/public_html/core/components/pdotools/src/Parsing/Parser.php(69): ModxPro\PdoTools\Parsing\Fenom\Fenom->process('\r\n\r\n<body>\r\n\r\n ...', Array) #3 /home/public_html/core/src/Revolution/modResource.php(521): ModxPro\PdoTools\Parsing\Parser->processElementTags('', '\r\n\r\n<body>\r\n\r\n ...', true, false, '[[', ']]', Array, 10) #4 /h in /home/public_html/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Render.php on line 83

it's reported in progress

@bzick
Copy link
Member

bzick commented Feb 28, 2023

Please use Fenom v3.0.0 for php8

@EMDM45
Copy link
Contributor

EMDM45 commented Feb 22, 2024

Раз уж тут пошла тема про php 8, добавлю в копилку такую ошибку (точнее предупреждение):

Creation of dynamic property Fenom\Tokenizer::$curr is deprecated

Версия php - 8.2

Разобрался: нужна версия Fenom 3.*


Еще момент не совсем понятный. Если включить php7, тогда кэш файл генерируется с таким именем: home-page.tpl.ea8d10ed.15.php, а если php8, тогда с таким: 1f777ea70423e50396c05a10284066dd031e8f78.e4e8b763.2b.php.
Странно как-то. Версия Fenom - 2.* , в версии 3.* кэш файлы по такому же принципу генерируются, а хотелось бы, чтоб как в php7 были имена.


С методом fetch постоянные проблемы. Когда его использую, сразу начинает сыпаться всё:

Warning;
rename(\cache\fenom/1fb2693c6fb11da7bf5ba268aa21a3ed6a8c4609.dc98393c.33.php.39671.tmp,\cache\fenom/1fb2693c6fb11da7bf5ba268aa21a3ed6a8c4609.dc98393c.33.php):
Отказано в доступе (code: 5) in \vendor\fenom\fenom\src\Fenom.php on line 1176
Fatal error: Uncaught Fenom\Error\CompileException: Can't to move the file
...

Версия Fenom - 3.*
Но такая проблема была и раньше в предыдущих версиях.
С методом display таких проблем нет. Поидеи ведь они должны использовать один и тот же алгоритм кэширования?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants