{"id":1506,"date":"2018-01-19T19:22:55","date_gmt":"2018-01-19T19:22:55","guid":{"rendered":"http:\/\/goofy-trucks.flywheelsites.com\/smart-architectures-in-php\/"},"modified":"2018-01-19T19:24:50","modified_gmt":"2018-01-19T19:24:50","slug":"smart-architectures-in-php","status":"publish","type":"post","link":"https:\/\/phpbuilder.com\/smart-architectures-in-php\/","title":{"rendered":"Smart Architectures in PHP"},"content":{"rendered":"<div class=\"phpbuilder-content\">\n<div class=\"phpbuilder-meta\">\n<div class=\"\">By Tim Perdue<\/div>\n<div class=\"\">on October 10, 2000<\/div>\n<\/p><\/div>\n<div id=\"overflow-content\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/phpbuilder.com\/wp-content\/uploads\/2018\/01\/tim2.jpg\" class=\"articleAuthorImg\" alt=\"picture of Tim Perdue\" height=\"90\" width=\"100\" align=\"left\"\/><\/p>\n<div class=\"articlePara\">\nI&#8217;ve been wanting to write this article for a long time, but<br \/>\nnever really had the time to do it right. So rather than say<br \/>\nthis is going to be a how-to, I&#8217;m hoping that this article<br \/>\nwill be the seed of discussion about how to build great, scalable<br \/>\nweb applications.<\/div>\n<div class=\"articlePara\">\nCertainly over the past 2-3 years, my web development skills have<br \/>\nchanged dramatically. I look back at the source code for Geocrawler<br \/>\nand can&#8217;t believe I wrote that. The source code for PHPBuilder is<br \/>\nalso far from exemplary, as it&#8217;s really just a hodge-podge of<br \/>\nvarious GPL&#8217;d software packages cobbled together.<\/div>\n<div class=\"articlePara\">\n<a href=\"http:\/\/sourceforge.net\/\" target=\"_blank\">SourceForge<\/a> was really the<br \/>\nfirst serious app I helped write as an experienced PHP developer and<br \/>\nI think it shows to an extent in the end result. The code is pretty<br \/>\nmuch broken up into decent libraries and sensible function calls.<br \/>\nThe database structure is very clean. The various subsections of<br \/>\nthe site are generally not dependent on the other parts of the site.<\/div>\n<div class=\"articlePara\">\nBut it&#8217;s not perfect. If I had it to do again, I would try to<br \/>\nmake more of a point of keeping the HTML layer more clearly<br \/>\nseparated from the database layer, either through objects or<br \/>\na cleaner function library.<\/div>\n<\/div>\n<p><\/p>\n<div style=\"float: left; padding:15px; color:#17AAF3\">\n<div style=\"background-color:#B6E5FC; font-size:16px; margin-top:1px; padding:1px 4px 1px 4px; color:#000; font-style:bold; float:left;\">1<\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"tim200010104658.html?page=2\">2<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"tim200010109ba9.html?page=3\">3<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"tim20001010fdb0.html?page=4\">4<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"tim20001010af4d.html?page=5\">5<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"tim20001010c575.html?page=6\">6<\/a> <\/div>\n<div style=\"float:left; padding:2px;\"><a class=\"paginationPageLink\" href=\"tim200010104658.html?page=2\">Next Page \u00bb<\/a><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been wanting to write this article for a long time, but never really had the time to do it right. So rather than say this is going to be a<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1506","post","type-post","status-publish","format-standard","hentry","category-tutorials"],"_links":{"self":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/comments?post=1506"}],"version-history":[{"count":1,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1506\/revisions"}],"predecessor-version":[{"id":2257,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1506\/revisions\/2257"}],"wp:attachment":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/media?parent=1506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/categories?post=1506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/tags?post=1506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}