Re: Refactoring Views
[EMAIL PROTECTED] wrote: > Ditto I would love to see that framework, Matt, even if it's not all > packaged up and ready for prime time. I will do my utmost to release it when I have time. I've been crazy busy lately and haven't had time to even think about it. I will, of course, have to get corporate approval before I do because I'm not bankrolling it's production. The framework isn't actually our product though, we just use it to build apps with it. Cheers, Matt -- BASIC: A programming language. Related to certain social diseases in that those who have it will not admit it in polite company. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php -~--~~~~--~~--~--~---
Re: Refactoring Views
Hi guys,Thank you your responses and code samples. Some interesting things to think about. Your input has been very much appreciated.Cheers,Sonic --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php -~--~~~~--~~--~--~---
Re: Refactoring Views
Ditto I would love to see that framework, Matt, even if it's not all packaged up and ready for prime time. I've been thinking since starting with Cake that more extensive and versatile code generation would advance Cake from merely wonderful to absolutely earthshaking, Holy Grail kind of material. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php -~--~~~~--~~--~--~---
Re: Refactoring Views
I'd be interested in seeing it too. Personally I make a _addedit($id) action in my controller, and a _addedit.thtml element (in with the normal view files). These have the common parts of add and edit in them. I'm not sure if this will stay this way once I start serious work on the application UI, but we are still adding features (including new models, and changing model fields) at this stage, and this does make it faster to keep things updated. ie: UsersController: function add() { $this->_addedit(); } function edit($id) { $this->_addedit($id); } function _addedit($id=null) { if ( !empty($this->params['form']['cancel']) ){ $this->Session->setFlash('The User was not saved'); $this->redirect('/users/index'); return false; } if(empty($this->data)) { if ( empty($id) ){ // give default values } else { // add the associated models for the edit view $this->_read_associations( $id ); $this->data = $this->User->read(null, $id); } $this->render(); } else { $this->cleanUpFields(); if($this->User->save($this->data)) { $this->Session->setFlash('The User has been saved'); $this->redirect('/users/index'); } else { $this->Session->setFlash('Please correct errors below.'); if ( !empty($id) ){ $this->_read_associations( $id ); } } } } Both views/users/add.thtml and views/users/edit.thtml have echo $this->renderElement('../users/_addedit'); in them, which renders the views/users/_addedit.thtml element - this is what has all the actual form values. It only has the common form elements, as you often want some differences between the add and edit forms. I also have a views/users/_associated.thtml , which displays the associated models (like what you normally see on the "view" template). I like these associations to also be shown when editing, so again it's a bit simpler to keep in a separate element. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php -~--~~~~--~~--~--~---
RE: Refactoring Views
> To be brief, what I've done is create a meta-framework that works > hand-in-hand with Cake (using Cake itself and a small number of external > scripts and processes) that is able to generate all of my views for me > using a series of reusable elements and helpers. > This meta-framework knows when to expose information on a given screen > using what I call "applets" (nothing to do with Java). Applets are a > collection of fields in a certain state and having certain properties > (or rather a collection of fields spanning multiple models associated > with an instance of an applet that is assigned to a particular view). Is this a public meta-framework or a private closed source ? /Christian --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php -~--~~~~--~~--~--~---
Re: Refactoring Views
Sonic Baker wrote: > I was just using the forms generated form Bake as an example to > illustrate the types of duplication I mean. > > That meta-framework of yours sounds wonderful. Is it hard on resources? Not particularly. Running in production mode it takes about 1 second to render each view. I intend to write a program that will go through all of the permutations in my application and build up a data structure that can be loaded and accessed several by a Cake app (probably via shared memory or some other similar construct). I haven't crunched the numbers yet but I imagine that doing this will give the app around a 50% boost in efficiency. > If you weren't using it, how would you answer my questions above? You're right, I didn't quite answer your question. Sorry. Yes, I use elements (and lots of helpers) that have all of the necessary logic built in or can provide that sort of form logic. You can almost pretend that I don't have a meta-framework. All it really does is provide the data or configuration information necessary to build the various pieces of the view (actually it does a lot more than that but as far as the view is concerned it only provides a data structure so Cake can figure out where to put stuff). Cheers, Matt -- BASIC: A programming language. Related to certain social diseases in that those who have it will not admit it in polite company. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php -~--~~~~--~~--~--~---
Re: Refactoring Views
Hi Matt,Thank you for your reply.I was just using the forms generated form Bake as an example to illustrate the types of duplication I mean.That meta-framework of yours sounds wonderful. Is it hard on resources? If you weren't using it, how would you answer my questions above?Cheers,Sonic --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php -~--~~~~--~~--~--~---
Re: Refactoring Views
Sonic Baker wrote: > In my quest to follow the DRY principle I've been looking into > refactoring my views. If you use Bake to generate default views you'll > have 'add' and 'edit' views. These both share the same form inputs and > if you start playing around with error messages you'll have to do it on > both forms. > Would this warrant the use of Elements? > Or would an element be overkill for this? > > What are others doing? I don't use the Baked views for anything other than very small projects because I find they quickly become very cumbersome and quite unmanageable when you've got a large application to build. To be brief, what I've done is create a meta-framework that works hand-in-hand with Cake (using Cake itself and a small number of external scripts and processes) that is able to generate all of my views for me using a series of reusable elements and helpers. This meta-framework knows when to expose information on a given screen using what I call "applets" (nothing to do with Java). Applets are a collection of fields in a certain state and having certain properties (or rather a collection of fields spanning multiple models associated with an instance of an applet that is assigned to a particular view). I've found very few framework environments in PHP and Perl that provide this sort of functionality in an effective and manageable way so I've typically had to rebuild it myself when moving to a new framework such as Cake. The neat thing about this is that I can effectively build several relatively complex screens with various applets that are linked together (such as a list & selection detail combination) inside of a half-hour, leaving me plenty of time to be concerned with more important things like business logic, tests and whatnot. Cheers, Matt -- BASIC: A programming language. Related to certain social diseases in that those who have it will not admit it in polite company. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php -~--~~~~--~~--~--~---