xf_phantom
Well-known member
Wouldn't it be better to fetch the helper data "before" the action or cache it or do something else to reduce the queries?
e.g.
is called in most of the forum action methods
If an addon is extending an action and needs to run before the original xf action, it needs to call in 99% of the cases the controller helpers too.
With 4 addons this results in 4 extra queries on forum_view and 8 extra queries on thread_view because of the forum AND thread query
If you would fetch the "important forum & thread data" BEFORE the action or safe it for later use, we wouldn't need to run the same code again and again and again.
Idea1: safe the data from the helpers and fetch them only if needed (e.g. different fetchOptions)
Idea 2 is to run the helper BEFORE the action and safe the data in the controller, so all childclasses would have access
Idea 3: Something like the symfony2 param converter ( http://symfony.com/doc/master/bundles/SensioFrameworkExtraBundle/annotations/converters.html would be GREAT and reduce the work extreeeeeem)
e.g.
PHP:
$forumId = $this->_input->filterSingle('node_id', XenForo_Input::UINT);
$forumName = $this->_input->filterSingle('node_name', XenForo_Input::STRING);
$ftpHelper = $this->getHelper('ForumThreadPost');
$forum = $ftpHelper->assertForumValidAndViewable($forumId ? $forumId : $forumName);
If an addon is extending an action and needs to run before the original xf action, it needs to call in 99% of the cases the controller helpers too.
With 4 addons this results in 4 extra queries on forum_view and 8 extra queries on thread_view because of the forum AND thread query
If you would fetch the "important forum & thread data" BEFORE the action or safe it for later use, we wouldn't need to run the same code again and again and again.
Idea1: safe the data from the helpers and fetch them only if needed (e.g. different fetchOptions)
Idea 2 is to run the helper BEFORE the action and safe the data in the controller, so all childclasses would have access
Idea 3: Something like the symfony2 param converter ( http://symfony.com/doc/master/bundles/SensioFrameworkExtraBundle/annotations/converters.html would be GREAT and reduce the work extreeeeeem)
Upvote
1