# |
May 27th 2016, 11:37 |
bernat1 |
Or do you want to write blocks in the view cell and read them in the main view? I think that would be awful to do with view cells. |
# |
May 27th 2016, 11:35 |
bernat1 |
@elboletaire, do you really need to pass the main view? Can't you just pass the blocks? I think it would make sense passing just what the cell needs. You'd have a more reusable view cell. |
# |
May 27th 2016, 11:32 |
unorthodox |
Gah, requestAction. |
# |
May 27th 2016, 11:31 |
bernat1 |
@elboletaire, view cells is a new feature in 3.0, we have lived long without them and I don't use them. It can replace the old requestAction method that some people needed, not me. They help reuse controller actions from views. |
# |
May 27th 2016, 11:30 |
elboletaire |
thanks @fquffio, it's a good example :slightly_smiling_face: |
# |
May 27th 2016, 11:30 |
spriz |
I feel like Iâ??m missing something, I sure canâ??t be the first that wants to edit a bunch of objects at once? :P |
# |
May 27th 2016, 11:29 |
spriz |
Am I doing something stupid when implementing a â??bulk editâ? Crud Action? |
# |
May 27th 2016, 11:27 |
fquffio |
@elboletaire: for instance, I wanted to show the amount of tickets assigned to the logged user on every page. This required a small amount of logic to be executed, but that had nothing to do with the current controller/action, and especially I didn't want that logic to be executed if I wasn't rendering the view (APIs), so I used view cells. :) |
# |
May 27th 2016, 11:21 |
elboletaire |
Then... what would be a good reason to use a view cell? Now I don't get how could I use them xD |
# |
May 27th 2016, 10:59 |
bernat1 |
I misunderstood, hehe. :) |
# |
May 27th 2016, 10:59 |
unorthodox |
Fat Models, Skinny Controllers |
# |
May 27th 2016, 10:59 |
bernat1 |
ah, ok, sorry. :-/ |
# |
May 27th 2016, 10:58 |
elboletaire |
exactly, thanks @unorthodox you got the point xD |
# |
May 27th 2016, 10:58 |
unorthodox |
Tell that to his/her coworkers :slightly_smiling_face: |
# |
May 27th 2016, 10:58 |
elboletaire |
That's what I do man, but not my work companions... |
# |
May 27th 2016, 10:58 |
bernat1 |
your logic should be called from the controller but implemented somewhere else to improve reusability. |
# |
May 27th 2016, 10:58 |
bernat1 |
@elboletaire, most people don't put everything in the controllers but on models and auxiliar objects. |
# |
May 27th 2016, 10:57 |
unorthodox |
You are welcome ! |
# |
May 27th 2016, 10:56 |
elboletaire |
thanks for the suggestions guys :slightly_smiling_face: |
# |
May 27th 2016, 10:56 |
elboletaire |
Well, something's obvious here, I need to refactor more this project because I'm the only person on this project who cares about distributing the logic between tables and entities, whilst the other people working here puts almost everything in the controllers (which is a pain for me, ovbiously) |
# |
May 27th 2016, 10:53 |
unorthodox |
Either that, or just the tiny parts of controllers that you might need to be changed. |
# |
May 27th 2016, 10:53 |
elboletaire |
But I would like to maintain my logic.. or are you saying to create the controllers with each theme? |
# |
May 27th 2016, 10:53 |
elboletaire |
I know............ |
# |
May 27th 2016, 10:52 |
unorthodox |
Well Cakephp 3 supports themes. |
# |
May 27th 2016, 10:52 |
elboletaire |
But doing that.. what do you do when you need to change the entire template? you'll need then probably to do changes to your controller, right? |
# |
May 27th 2016, 10:52 |
unorthodox |
I actually never used view cells/blocks either. I, also, push data from controller to elements. |
# |
May 27th 2016, 10:51 |
bernat1 |
It might be that you're using the wrong pattern for what you're trying, at least with CakePHP. I personally prefer elements and pushing data from the controller, but probably others with more knowledge know better patterns for your case. |
# |
May 27th 2016, 10:48 |
elboletaire |
But if I have no option, I guess I'll continue doing that... u___u |
# |
May 27th 2016, 10:46 |
elboletaire |
I would prefer*** |
# |
May 27th 2016, 10:46 |
elboletaire |
and I would rather preffer not passing `$this` to almost every cell :_D |
# |
May 27th 2016, 10:46 |
elboletaire |
well.. I would rather preffer using `$this->Html` instead of `$template->Html` |
# |
May 27th 2016, 10:45 |
bernat1 |
That said, passing arguments is not that bad, is it? |
# |
May 27th 2016, 10:45 |
bernat1 |
The way I see it view cells were created to be independent reusable entities. You think coupling them to the main view would be good but I think de-coupling is a feature here. |
# |
May 27th 2016, 10:43 |
elboletaire |
I think that the proper way would be using view cells in my case, but, returning to the main question, why are view cells loading a new view instance? Why the hell do I need to pass `$this` to create view blocks? |
# |
May 27th 2016, 10:41 |
elboletaire |
Ok, let me explain that better... is more comfortable when you have a huge page which continuously changes its template. The more versatile way I've currently found to do it is dinamically loading content in elements, so I can create templates every time the client asks me for a new fraking design |
# |
May 27th 2016, 10:41 |
bernat1 |
Of course you can do things the way you want, but cakephp was created in a different mindset I guess. |
# |
May 27th 2016, 10:40 |
bernat1 |
I think the moment you said you're comfortable loading models in the view everyone fell off their chair. :) |
# |
May 27th 2016, 10:36 |
elboletaire |
Or, the same question but asked different... why are view cells NOT reusing the main View instance? |
# |
May 27th 2016, 10:34 |
elboletaire |
Then... the question would be.. what's the sense of using View Cells? It's much versatile using an element and load inside the `TableRegistry` (which breaks the MVC pattern, I know... but it's much more comfortable) |
# |
May 27th 2016, 10:33 |
elboletaire |
> A new View instance is used to render each cell and these new objects do not share context with the main template / layout. Each cell is self-contained and only has access to variables passed as arguments to the View::cell() call. |
# |
May 27th 2016, 10:33 |
elboletaire |
Ok, I've found it... |