Open Bernier154 opened 2 months ago
I ignored both above..
If you are interested about what i wanted to do, this is how I got the view param:
class Attributes extends Tags
{
/**
* A bit hacky...
*/
private function getViewName()
{
$reflectionProperty = new \ReflectionProperty(RuntimeParser::class, 'view');
$reflectionProperty->setAccessible(true);
return $reflectionProperty->getValue($this->parser);
}
private function getParamsFromCascade()
{
return Arr::get(
Cascade::instance()->get('views', []),
$this->getViewName(),
[]
);
}
/* [...] */
}
For this, i was using $this->context->view as a reference to the param of the current view. But i soon realized that if i didn't put the param class in each of my block using this tag, i would get a leak from a block that used the class param.
Just to clarify, you're saying that variables from previous "replicator sets" are leaking into the cascade? Are you able to ptovide an example?
Here is the quickest way to reproduce it:
Thanks - I see it now.
By the way. you don't need to build a custom tag for debugging, you can just do {{ view | dump }}
.
Bug description
I am currently creating a tag which takes all the param from the view and merge them to act like the AttributesBag from blade.
For this, i was using $this->context->view as a reference to the param of the current view. But i soon realized that if i didn't put the param
class
in each of my block using this tag, i would get a leak from a block that used theclass
param.Example:
So i went out of my way by using the "view" property from the RuntimeParser to execute the Cascade::instance()->getViewData() method.
It works, but i get the same result.
I checked the method and i feel something is wrong with it. It gets the data from all views each time, and overwrite (merge) the current's view data, which feel unituitive because it's not only the view data, it's ALL the data.
I look through the code and it's not used a lot so maybe it's an oversight.
For the time being, i'll use Cascade::instance()->get('views) and get the array i need. ButI felt it needed to be revised.
How to reproduce
Logs
No response
Environment
Installation
Fresh statamic/statamic site via CLI
Additional details
No response