Log message #3881509

# At Username Text
# 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...
# May 27th 2016, 10:32 elboletaire The only way I've found is passing `$this` to the view cell as another variable (`$template` in my case). But I don't get why view blocks do not work by default... :S