[{"data":1,"prerenderedAt":177},["ShallowReactive",2],{"i-lucide:menu":3,"i-lucide:arrow-up-right":8,"i-lucide:moon":10,"i-lucide:sun":12,"i-lucide:rss":14,"i-simple-icons:github":16,"i-simple-icons:linkedin":18,"post-\u002F2011\u002Fthats-how-easy-it-is-to-create-twitter-with-kohana-3":21,"surround-\u002F2011\u002Fthats-how-easy-it-is-to-create-twitter-with-kohana-3":164,"i-lucide:arrow-left":173,"i-lucide:arrow-right":175},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16\"\u002F>\u003Ccircle cx=\"5\" cy=\"19\" r=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19,"hidden":20},"\u003Cpath fill=\"currentColor\" d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"\u002F>",true,{"id":22,"title":23,"body":24,"category":144,"comments":145,"date":146,"description":141,"excerpt":145,"extension":147,"image":145,"meta":148,"navigation":20,"path":149,"readingTime":150,"seo":151,"stem":152,"subtitle":145,"tags":153,"wordCount":162,"__hash__":163},"posts\u002F2011\u002Fthats-how-easy-it-is-to-create-twitter-with-kohana-3.md","That's how easy it is to create Twitter with Kohana 3",{"type":25,"value":26,"toc":140},"minimark",[27,35,61,64,67,72,75,97,108,112,115,119,121,125,133],[28,29,30],"p",{},[31,32],"img",{"alt":33,"src":34},"Kohana Twitter","\u002Fcontent\u002F2011\u002F08\u002Ftwitter.png",[28,36,37,42,43,47,48,56,57,60],{},[38,39,41],"a",{"href":40},"http:\u002F\u002Fkohanaframework.org\u002F","Kohana"," has become my PHP framework of choice ever since I was forced to start using it about 9 months ago. Derived from ",[38,44,46],{"href":45},"http:\u002F\u002Fcodeigniter.com\u002F","CodeIgniter"," (",[49,50,51,52],"em",{},"interestingly enough I can't confirm that since, once again, Kohana's ",[38,53,55],{"href":54},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKohana_(framework)","Wikipedia page"," ",[49,58,59],{},"has been deleted","), Kohana has made several advancements and is now a fully capable framework I've come to love.",[28,62,63],{},"This article shows one of the reasons for that, namely how quick, easy and (arguably) elegant it is to create a web app from scratch using Kohana. The app we'll build is an extremely basic one, but coding it from scratch, without a framework... I don't even want to imagine.",[28,65,66],{},"The post is in the form of a tutorial and I'll write as if giving instructions to You.",[68,69,71],"h1",{"id":70},"project-summary","Project Summary",[28,73,74],{},"We'll be building a very basic Twitter-type microblog application. The main functionalities of the site include:",[76,77,78,82,88,91,94],"ul",{},[79,80,81],"li",{},"Login",[79,83,84,85],{},"Making a micro-post ",[49,86,87],{},"(ie tweeting)",[79,89,90],{},"Viewing a list of past micro-posts",[79,92,93],{},"Deleting a post",[79,95,96],{},"Logging out",[28,98,99,100,56,104,107],{},"We'll use Twitter's own ",[38,101,103],{"href":102},"http:\u002F\u002Ftwitter.github.com\u002Fbootstrap\u002F","Bootstrap toolkit",[49,105,106],{},"(hey, what the heck, we're stealing their bread anyhow, why not in guns blazing?)"," that does all the heavy lifting on the CSS \u002F design part. We won't be using any Javascript since that would be a post on it's own.",[68,109,111],{"id":110},"setting-it-all-up","Setting it all up",[28,113,114],{},"[To be written, as soon as I have the time]",[68,116,118],{"id":117},"coding","Coding",[28,120,114],{},[68,122,124],{"id":123},"conclusion","Conclusion",[28,126,127,128,132],{},"Now that you've spent some hours (it took me 3 hours to write the fully-working code ",[38,129,131],{"href":130},"https:\u002F\u002Fgithub.com\u002Fanroots\u002Fkohana-twitter","you see @ github",") building the app, all you need to do is hire some marketing people and travel back in time 8-or-so years - the riches await.",[28,134,135],{},[38,136,139],{"href":130,"rel":137},[138],"nofollow","View the code @ GitHub",{"title":141,"searchDepth":142,"depth":142,"links":143},"",2,[],"Learning",null,"2011-08-25","md",{},"\u002F2011\u002Fthats-how-easy-it-is-to-create-twitter-with-kohana-3","about 1 minute",{"title":23,"description":141},"2011\u002Fthats-how-easy-it-is-to-create-twitter-with-kohana-3",[154,155,156,157,158,159,160,161],"twitter","javascript","php","kohana","framework","GitHub","Steve Krug","tutorial",293,"mJYgCPO2KtpPXSOIJLloNE4LaQx7aHcEjQhRg8VGVFw",[165,169],{"title":166,"path":167,"stem":168,"children":-1},"Two more silly ideas","\u002F2011\u002Ftwo-more-silly-ideas","2011\u002Ftwo-more-silly-ideas",{"title":170,"path":171,"stem":172,"children":-1},"Garage48 Tartu 2011","\u002F2011\u002Fa-good-way-to-spend-the-weekend-garage48-tartu-2011","2011\u002Fa-good-way-to-spend-the-weekend-garage48-tartu-2011",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":174},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 19l-7-7l7-7m7 7H5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":176},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",1790886932872]