Great, I will take a look at this. Thanks! On 6/7/2012 8:08 AM, Steve Found [via CakePHP] wrote: > A good book (IMHO) to have a look at is PHP 5, Objects, Patterns and > Practice by Matt Zandstra (Apress) which explains ORM and MVC very well > > ORM is basically the mapping of relational database data to objects. > The programmer does not give a damn how the data is stored all they > need to do is to instruct the data persistence layer to save an object > instance or load an object instance, whether that data is cached in a > file, read from a single table or read from multiple tables is > irrelevant. > > Cake's models are all about the reading, writing and verification of > data which is absolutely fine as this is very well documented and > there seems little point in taking data from a table, converting it > from an array into an object then passing that object to a view to be > displayed when all the view needs is the data to be displayed. > > So to me, Cake's current ORM does have a layer missing that other > frameworks have. Zandstra's book calls this the Domain Model and it's > purpose is to read and write Objects from/to the database instead of > arrays. Other systems are tied in to a form of the ActiveRecord > pattern which is a decent enough Domain model and this is a direction > I would like to see Cake head in ... but not at the expense of what it > already has !!! > > Steve > > > On 07/06/12 02:46, bs28723 wrote: >> Thanks John. I am familiar with the mythical man month - good stuff! >> >> You, Michael and Steve, got me to re-look at what I was really trying >> to ask. I think my questions are really more about "really" >> understanding MVC and ORM than cake. Cake is just the code that >> implements MVC. While I understand what MVC is and does. I can >> define it, and I can write simple applications using it. (fat model, >> skinny controller) - I am not confident in all my architecture >> decisions and able explain all my choices. I feel like I am still >> guessing, testing, and reworking things all the time. To me, there >> is a big difference between good code architecture and well written >> code. right now, I am trying to make sure that I am putting the code >> in the right spot. It may be crappy code, but at least it is in the >> model or controller where it belongs. Maybe some day I can fix the >> crappy code. But I want to avoid putting great code in the wrong >> place and end up with a crappy system. I am not sure that I am >> explaining this any better, but my knowledge gap is the MVC >> architecture. The data model is probably good for now. I am sure >> someone could improve it, I don't claim to be perfect, it will >> probably grow and change over time anyway. But it is some of the MVC >> expertise that I am looking to learn. >> >> An analogy that I can came up with is, that I think I am walking in >> terms of MVC and Cake, and I want to start jogging or running. But >> maybe, I am really still crawling and I need to keep working, and >> coding, and testing, and reworking, to learn to walk, before I can >> run. I think I am a fast learner and I have learned everything that I >> can get my hands on, but I need more. I feel like a young Jedi >> wanting to learn more and more, so I can become a Master sooner. Or >> maybe it is because I am 53, I have been designing projects and the >> last real programming I did was on an Unix System V device driver 20 >> years ago and this ORM stuff is a little Greek. Not to mention that >> all these young kids are picking this up in seconds, and I just want >> to keep up. LOL >> >> John, you should be very proud of the system you built below. I >> spent 5 years doing system architecture for AT&T, helping people >> design architectures like the one you describe below. For us it was >> standard, but a lot of people probably don't understand the >> capability or the complexity behind a scalable DB architecture with >> clustered servers with masters and slaves. This is a great testament >> to you and your team, and to Cake that it can handle this large project. >> >> Thanks again to you, Michael & Steve. I think I am going to try to >> learn more about MVC and ORB. Hopefully, I can find some things to >> help be learn to run, but if not, I will just keep writing coded, >> learning, rewriting and learn it over time. >> >> Bill >> >> On 6/6/2012 11:41 AM, John Hardy [via CakePHP] wrote: >>> A computer architect should just look at what cake does. >>> >>> It bootstraps request into and MVC architecture. It has a built in >>> ORM, and some injection points to customize and manipulate data >>> throughout the request. >>> >>> Cake is not gonna make you or break you, if your site it built >>> shitty, it's not because of the framework. >>> >>> It can handle a large infrastructure. You've already searched, there >>> are no best practices for cake, it's not needed, it's MVC, ORM etc. >>> It's computer science and software engineering. >>> >>> My site serves over 1 Million pages a day, over 600k in videos. >>> >>> I have over 90 models shared between two domains ( admin and site ) >>> >>> Hundreds of controllers, hundreds of views. >>> >>> I load balance between 8 16gb nodes. >>> >>> My database architecture is horizontally scaled between 1 master, 3 >>> slaves, 1 session server, and 1 data warehouse server. >>> >>> I run a cluster of two memcached servers. >>> >>> Do I have shitty code in my site, you're damn right I do. But its >>> getting the job done, and keeping food on peoples tables. >>> I can always go back with a better strategy to handle it later. but >>> there is much more good code in there too. >>> >>> You suffer from second system effect. Read the mythical man month. >>> it will help you. >>> >>> >>> On Jun 6, 2012, at 8:37 AM, Steve Found wrote: >>> >>>> Yes, I have the eBook of this that I bought from Apress. I believe >>>> it is for cake 1.3 ? >>>> >>>> Although well worthy of a read, I felt there was a lot of wheel >>>> re-invention going on. For example, they implement their own tree >>>> handling code for categories when there is already a perfectly >>>> satisfactory TreeBehavior class in Cake and they did not really >>>> explain why they felt the need to do this. They also concentrate a >>>> lot on the use of elements. >>>> >>>> To talk about the original question, the way cake works IMHO is to >>>> distribute logic between all three of Behavior, Component and >>>> Helper classes with behaviors extending models, Components >>>> extending controllers and Helpers extending views. The best analogy >>>> I can think of for these is the C++ multiple inheritance concept >>>> where functions are added to the classes to give them more methods. >>>> For example a model with both Tree and Containable behaviours is >>>> both of those things in addition to being a model. >>>> >>>> To have a concept, say for example you wanted an edit box that >>>> plugged into junit's autocompletion, you may well write a plugin >>>> that contained all three of behaviours, components and helpers to >>>> achieve what you want. >>>> >>>> Good examples of this can be found in the CakeDC github repository >>>> and I think this is a good a repository as any to see good Cake >>>> coding practises. >>>> >>>> https://github.com/CakeDC >>>> >>>> Hope this is of some help, >>>> >>>> Steve (Ratty) >>>> >>>> >>>> On 06/06/12 03:28, bs28723 wrote: >>>>> anyone familiar with this book? >>>>> >>>>> >>>>> Practical CakePHP Projects (Expert's Voice in Web >>>>> Development) by Richard Miller, John Omokore and Kai Chan >>>>> (Dec 4, 2008) >>>>> >>>>> >>>>> or other books that provide good examples of the >>>>> Fat Model, Skinny controller Concept? >>>>> >>>>> On Sunday, June 3, 2012 9:04:26 AM UTC-4, ibejohn818 wrote: >>>>> >>>>> Fat model, skinny controller. >>>>> Separation of presentation and data >>>>> >>>>> A couple Core concepts in building a mote maintainable app. >>>>> However nothing is ever 100 perfect for all situations, learn >>>>> from writing your own shitty code and do not get caught in the >>>>> spiral of over engineering. Keep it simple and clever. >>>>> >>>>> On Jun 2, 2012 11:18 AM, "bs28723" wrote: >>>>> >>>>> I am probably looking for something that does not exist >>>>> online, but only >>>>> in a few folks heads. :-) But maybe some parts of this >>>>> exists. You >>>>> never know unless you ask...... >>>>> >>>>> I am quickly learning a lot about MVC architecture and >>>>> CakePHP over the >>>>> last couple months. The cookbook, lots of trial and error, >>>>> and this >>>>> group are helping me learn - so thanks! But, I am finding >>>>> myself using >>>>> simple examples to learn or implement something. Then as >>>>> it scales, >>>>> realize that I should have done this with a helper, >>>>> behavior or >>>>> component. And now, I have to go back and redesign this, >>>>> to do it >>>>> correctly. Great that I am learning, but this is delaying >>>>> my project. Sigh. >>>>> >>>>> So, I am looking for more advanced examples, tutorials, or >>>>> best >>>>> practices to "hopefully" allow me to skip over some of the >>>>> basic >>>>> learning curve and get right to an architecture that will >>>>> support a >>>>> medium to large site with lots of capabilities. >>>>> >>>>> Am I asking for too much? :-) >>>>> Any suggestions on where to get this advanced information >>>>> or education I >>>>> am looking for? >>>>> >>>>> Thanks, >>>>> bill >>>>> >>>>> >>>>> ------------------------------------------------------------------------ >>>>> View this message in context: Looking for MVC & CakePHP >>>>> Best practice doc, examples for Med to large sites >>>>> >>>>> <http://cakephp.1045679.n5.nabble.com/Looking-for-MVC-CakePHP-Best-practice-doc-examples-for-Med-to-large-sites-tp5708484.html> >>>>> Sent from the CakePHP mailing list archive >>>>> <http://cakephp.1045679.n5.nabble.com/> at Nabble.com >>>>> <http://Nabble.com>. >>>>> -- >>>>> >>>>> -- >>>>> Our newest site for the community: CakePHP Video Tutorials >>>>> http://tv.cakephp.org <http://tv.cakephp.org/> >>>>> Check out the new CakePHP Questions site http://ask.cakephp.org >>>>> <http://ask.cakephp.org/> and help others with their CakePHP >>>>> related questions. >>>>> >>>>> >>>>> To unsubscribe from this group, send email to >>>>> [hidden email] </user/SendEmail.jtp?type=node&node=5708597&i=0> >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/cake-php >>>> >>>> >>>> -- >>>> Our newest site for the community: CakePHP Video Tutorials >>>> http://tv.cakephp.org <http://tv.cakephp.org/> >>>> Check out the new CakePHP Questions site http://ask.cakephp.org >>>> <http://ask.cakephp.org/> and help others with their CakePHP >>>> related questions. >>>> >>>> >>>> To unsubscribe from this group, send email to >>>> [hidden email] </user/SendEmail.jtp?type=node&node=5708597&i=1> For >>>> more options, visit this group at >>>> http://groups.google.com/group/cake-php >>> >>> -- >>> Our newest site for the community: CakePHP Video Tutorials >>> http://tv.cakephp.org >>> Check out the new CakePHP Questions site http://ask.cakephp.org and >>> help others with their CakePHP related questions. >>> >>> >>> To unsubscribe from this group, send email to >>> [hidden email] </user/SendEmail.jtp?type=node&node=5708597&i=2> For >>> more options, visit this group at >>> http://groups.google.com/group/cake-php >>> >>> >>> ------------------------------------------------------------------------ >>> If you reply to this email, your message will be added to the >>> discussion below: >>> http://cakephp.1045679.n5.nabble.com/Looking-for-MVC-CakePHP-Best-practice-doc-examples-for-Med-to-large-sites-tp5708484p5708597.html >>> >>> >>> To start a new topic under CakePHP, email [hidden email] >>> </user/SendEmail.jtp?type=node&node=5708606&i=0> >>> To unsubscribe from CakePHP, click here. >>> NAML >>> <http://cakephp.1045679.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>> >>> >> >> ------------------------------------------------------------------------ >> View this message in context: Re: Looking for MVC & CakePHP Best >> practice doc, examples for Med to large sites >> <http://cakephp.1045679.n5.nabble.com/Looking-for-MVC-CakePHP-Best-practice-doc-examples-for-Med-to-large-sites-tp5708484p5708606.html> >> Sent from the CakePHP mailing list archive >> <http://cakephp.1045679.n5.nabble.com/> at Nabble.com. >> -- >> Our newest site for the community: CakePHP Video Tutorials >> http://tv.cakephp.org >> Check out the new CakePHP Questions site http://ask.cakephp.org and >> help others with their CakePHP related questions. >> >> >> To unsubscribe from this group, send email to >> [hidden email] </user/SendEmail.jtp?type=node&node=5708627&i=0> For >> more options, visit this group at http://groups.google.com/group/cake-php > > -- > Our newest site for the community: CakePHP Video Tutorials > http://tv.cakephp.org > Check out the new CakePHP Questions site http://ask.cakephp.org and > help others with their CakePHP related questions. > > > To unsubscribe from this group, send email to > [hidden email] </user/SendEmail.jtp?type=node&node=5708627&i=1> For > more options, visit this group at http://groups.google.com/group/cake-php > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the > discussion below: > http://cakephp.1045679.n5.nabble.com/Looking-for-MVC-CakePHP-Best-practice-doc-examples-for-Med-to-large-sites-tp5708484p5708627.html > > > To start a new topic under CakePHP, email > [email protected] > To unsubscribe from CakePHP, click here > <http://cakephp.1045679.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=1255722&code=YmlsbC5zdG9sdHpAYm9vc3RlcndlYnNvbHV0aW9ucy5jb218MTI1NTcyMnwtNTU0NTk2MTUy>. > NAML > <http://cakephp.1045679.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > >
-- View this message in context: http://cakephp.1045679.n5.nabble.com/Looking-for-MVC-CakePHP-Best-practice-doc-examples-for-Med-to-large-sites-tp5708484p5708631.html Sent from the CakePHP mailing list archive at Nabble.com. -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php
