<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>TechnoReaders.com &#187; designer</title> <atom:link href="http://www.technoreaders.com/tag/designer/feed/" rel="self" type="application/rss+xml" /><link>http://www.technoreaders.com</link> <description>choose excellence, success will follow....</description> <lastBuildDate>Mon, 09 Aug 2010 07:30:07 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <item><title>Swift 3D PS &#8211; 3D Plug-In for Photoshop CS4 Extended</title><link>http://www.technoreaders.com/2009/03/11/swift-3d-ps-3d-plug-in-for-photoshop-cs4-extended/</link> <comments>http://www.technoreaders.com/2009/03/11/swift-3d-ps-3d-plug-in-for-photoshop-cs4-extended/#comments</comments> <pubDate>Wed, 11 Mar 2009 18:02:04 +0000</pubDate> <dc:creator>Jigish Thakar</dc:creator> <category><![CDATA[Uncategorized]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[adobe systems]]></category> <category><![CDATA[animation]]></category> <category><![CDATA[Author]]></category> <category><![CDATA[capabilities]]></category> <category><![CDATA[comment]]></category> <category><![CDATA[design]]></category> <category><![CDATA[designer]]></category> <category><![CDATA[Designers]]></category> <category><![CDATA[draw]]></category> <category><![CDATA[flash]]></category> <category><![CDATA[IDE]]></category> <category><![CDATA[Opera]]></category> <category><![CDATA[Oriented]]></category> <category><![CDATA[release]]></category> <category><![CDATA[second]]></category> <category><![CDATA[simple]]></category> <category><![CDATA[swift]]></category> <category><![CDATA[swift 3D]]></category> <category><![CDATA[text]]></category> <category><![CDATA[Today]]></category> <category><![CDATA[tool]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[version]]></category> <category><![CDATA[website]]></category> <category><![CDATA[Windows]]></category><guid isPermaLink="false">http://www.technoreaders.com/?p=843</guid> <description><![CDATA[New plug-in brings powerful and easy-to-use 3D toolset to the Photoshop CS4 Extended interface BOULDER, Colo., March 5 /PRNewswire/ &#8212; Today Electric Rain, Inc.(R) announced the release of Swift 3D(R) PS, a new plug-in that adds 3D modeling and animation tools to the Photoshop CS4 Extended authoring environment. The plug-in allows Photoshop users to quickly [...]<p><a href="http://www.technoreaders.com/2009/03/11/swift-3d-ps-3d-plug-in-for-photoshop-cs4-extended/">Swift 3D PS &#8211; 3D Plug-In for Photoshop CS4 Extended</a> is a post from: <a href="http://www.technoreaders.com">TechnoReaders.com</a> <br /><a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;username=dpthakar"><img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></p> ]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.technoreaders.com%2F2009%2F03%2F11%2Fswift-3d-ps-3d-plug-in-for-photoshop-cs4-extended%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.technoreaders.com%2F2009%2F03%2F11%2Fswift-3d-ps-3d-plug-in-for-photoshop-cs4-extended%2F&amp;source=technoreaders&amp;style=normal&amp;b=2" height="61" width="50" title="Swift 3D PS   3D Plug In for Photoshop CS4 Extended" alt=" Swift 3D PS   3D Plug In for Photoshop CS4 Extended" /><br /> </a></div><p><object width="480" height="295" data="http://www.youtube.com/v/Gx8ubP8h-Fg&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Gx8ubP8h-Fg&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p><p>New plug-in brings powerful and easy-to-use 3D toolset to the Photoshop CS4 Extended interface</p><p>BOULDER, Colo., March 5 /PRNewswire/ &#8212; Today Electric Rain, Inc.(R) announced the release of Swift 3D(R) PS, a new plug-in that adds 3D modeling and animation tools to the Photoshop CS4 Extended authoring environment. The plug-in allows Photoshop users to quickly and easily accomplish simple to advanced 3D tasks without leaving the CS4 Extended interface.</p><p>&#8220;Swift 3D is already very well known in the Flash community and we&#8217;re excited to see it introduced as a plug-in to Photoshop CS4 Extended,&#8221; commented John Nack, Principal Product Manager for Photoshop &amp; Bridge at Adobe Systems.</p><p>Swift 3D PS incorporates the same intuitive interface and toolset as the full version of Swift 3D, making it a good fit for designers that are new to 3D or want to accomplish simple 3D tasks. It also provides advanced modeling and animation capabilities, including new Boolean operations, for designers who want to delve deeper into 3D or expand the workflow into After Effects CS4.</p><p>&#8220;Swift 3D PS marks an exciting new direction for our designer-oriented 3D tools,&#8221; said Mike Soucie, President of Electric Rain. &#8220;By plugging into the world&#8217;s most powerful 2D design environment, Swift 3D PS not only simplifies and accelerates common &#8220;faux-3D&#8221; tasks, but opens the door for some very exciting new design possibilities in Photoshop and After Effects. We expect to see some amazing results.&#8221;</p><p><strong>Key benefits of Swift 3D PS</strong></p><ul><li>Create, bevel and extrude 3D text from any font in seconds.</li><li>Quickly draw 2D extrusions or lathe objects with a bezier pen tool.</li><li>Import, extrude and bevel existing 2D vector artwork from Adobe Illustrator(R) or Flash(R).</li><li>Simplify 3D scene creation with targeted cameras and in-viewport lighting manipulation.</li><li>Expands Photoshop&#8217;s workflow with After Effects CS4 Live 3D view.</li><li>3D objects remain fully editable, even after filters are applied.</li></ul><p>Swift 3D PS for Windows is available from the Electric Rain website at <a href="http://www.erain.com/" target="_new">http://www.erain.com</a> for $149.00 USD.</p><div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.technoreaders.com/2009/01/06/swift-php/" rel="bookmark" class="crp_title">swift &#8211; (PHP)</a></li><li><a href="http://www.technoreaders.com/2010/05/12/iphone-4g-first-look-prototype-fake/" rel="bookmark" class="crp_title">iphone 4G first look (Prototype)  &#8211; fake :)</a></li><li><a href="http://www.technoreaders.com/2010/05/02/android-on-iphone-3g/" rel="bookmark" class="crp_title">Android on iPhone 3G</a></li><li><a href="http://www.technoreaders.com/2008/12/04/brilliant-piece-of-work-by-bharti/" rel="bookmark" class="crp_title">brilliant piece of work by bharti</a></li><li><a href="http://www.technoreaders.com/2009/07/12/nokia-3720-classic/" rel="bookmark" class="crp_title">Nokia 3720 Classic</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div><p><a href="http://www.technoreaders.com/2009/03/11/swift-3d-ps-3d-plug-in-for-photoshop-cs4-extended/">Swift 3D PS &#8211; 3D Plug-In for Photoshop CS4 Extended</a> is a post from: <a href="http://www.technoreaders.com">TechnoReaders.com</a> <br /><a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;username=dpthakar"><img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0" title="Swift 3D PS   3D Plug In for Photoshop CS4 Extended" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.technoreaders.com/2008/10/13/yahoo-re-launched-indextools-as-its-web-analytics/" title="Yahoo Re-Launched IndexTools As Its Web Analytics">Yahoo Re-Launched IndexTools As Its Web Analytics</a></li><li><a href="http://www.technoreaders.com/2008/10/07/visual-studio-2008-professional-vs-standard-edition-just-what-are-the-differences-is-it-features/" title="Visual Studio 2008 Professional vs. Standard edition. Just what are the differences? Is it Features?">Visual Studio 2008 Professional vs. Standard edition. Just what are the differences? Is it Features?</a></li><li><a href="http://www.technoreaders.com/2008/10/13/what-is-adobemacromedia-flex/" title="What Is Adobe/Macromedia Flex?">What Is Adobe/Macromedia Flex?</a></li><li><a href="http://www.technoreaders.com/2008/10/17/opera-study-only-413-of-the-web-is-standards-compliant/" title="Opera study: only 4.13% of the web is standards-compliant">Opera study: only 4.13% of the web is standards-compliant</a></li><li><a href="http://www.technoreaders.com/2008/10/16/zend-platform-5250-bridge/" title="Zend Platform 5250 Bridge ">Zend Platform 5250 Bridge </a></li><li><a href="http://www.technoreaders.com/2008/10/04/object-oriented-model-a-summary-of-changes-from-php4-to-php5/" title="Object Oriented Model &#8211; a summary of changes from PHP4 to PHP5">Object Oriented Model &#8211; a summary of changes from PHP4 to PHP5</a></li><li><a href="http://www.technoreaders.com/2008/11/19/adobe-starts-64-bit-flash-testing-with-linux-alpha/" title="Adobe starts 64-bit Flash testing with Linux alpha">Adobe starts 64-bit Flash testing with Linux alpha</a></li><li><a href="http://www.technoreaders.com/2008/10/17/google-update-stomps-chrome-browser-bugs/" title="Google update stomps Chrome browser bugs">Google update stomps Chrome browser bugs</a></li><li><a href="http://www.technoreaders.com/2008/10/17/zend-framework-17-preview-release-now-available/" title="Zend Framework 1.7 Preview Release now available">Zend Framework 1.7 Preview Release now available</a></li><li><a href="http://www.technoreaders.com/2008/10/11/flex-and-php/" title="Flex and PHP">Flex and PHP</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.technoreaders.com/2009/03/11/swift-3d-ps-3d-plug-in-for-photoshop-cs4-extended/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Yahoo Re-Launched IndexTools As Its Web Analytics</title><link>http://www.technoreaders.com/2008/10/13/yahoo-re-launched-indextools-as-its-web-analytics/</link> <comments>http://www.technoreaders.com/2008/10/13/yahoo-re-launched-indextools-as-its-web-analytics/#comments</comments> <pubDate>Mon, 13 Oct 2008 01:42:18 +0000</pubDate> <dc:creator>Jigish Thakar</dc:creator> <category><![CDATA[yahoo]]></category> <category><![CDATA[Able]]></category> <category><![CDATA[Advanced]]></category> <category><![CDATA[Analytics]]></category> <category><![CDATA[April]]></category> <category><![CDATA[Art]]></category> <category><![CDATA[Author]]></category> <category><![CDATA[Available]]></category> <category><![CDATA[beta]]></category> <category><![CDATA[beta version]]></category> <category><![CDATA[br]]></category> <category><![CDATA[bus]]></category> <category><![CDATA[business]]></category> <category><![CDATA[business users]]></category> <category><![CDATA[capabilities]]></category> <category><![CDATA[chance]]></category> <category><![CDATA[check]]></category> <category><![CDATA[com]]></category> <category><![CDATA[compaign]]></category> <category><![CDATA[Comparative]]></category> <category><![CDATA[Cost]]></category> <category><![CDATA[custom]]></category> <category><![CDATA[customer]]></category> <category><![CDATA[Customizable]]></category> <category><![CDATA[dashboard]]></category> <category><![CDATA[Dashboards]]></category> <category><![CDATA[design]]></category> <category><![CDATA[designer]]></category> <category><![CDATA[developer]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[drop-off]]></category> <category><![CDATA[engine]]></category> <category><![CDATA[enterprise]]></category> <category><![CDATA[exec]]></category> <category><![CDATA[executive]]></category> <category><![CDATA[experience increase]]></category> <category><![CDATA[feature]]></category> <category><![CDATA[flex]]></category> <category><![CDATA[flexible tools]]></category> <category><![CDATA[form]]></category> <category><![CDATA[format]]></category> <category><![CDATA[group]]></category> <category><![CDATA[hand]]></category> <category><![CDATA[Hat]]></category> <category><![CDATA[help]]></category> <category><![CDATA[IDE]]></category> <category><![CDATA[Identify]]></category> <category><![CDATA[inc]]></category> <category><![CDATA[increase]]></category> <category><![CDATA[increase traffic]]></category> <category><![CDATA[index]]></category> <category><![CDATA[IndexTools]]></category> <category><![CDATA[information]]></category> <category><![CDATA[key]]></category> <category><![CDATA[key performance metrics]]></category> <category><![CDATA[launch]]></category> <category><![CDATA[Live]]></category> <category><![CDATA[Management]]></category> <category><![CDATA[management capabilities]]></category> <category><![CDATA[management track]]></category> <category><![CDATA[mark]]></category> <category><![CDATA[market]]></category> <category><![CDATA[marketing cost]]></category> <category><![CDATA[Merchandise]]></category> <category><![CDATA[navigation]]></category> <category><![CDATA[optimize]]></category> <category><![CDATA[Original]]></category> <category><![CDATA[package]]></category> <category><![CDATA[part]]></category> <category><![CDATA[path]]></category> <category><![CDATA[path analysis]]></category> <category><![CDATA[pattern]]></category> <category><![CDATA[performance]]></category> <category><![CDATA[period]]></category> <category><![CDATA[power]]></category> <category><![CDATA[Pre-defined]]></category> <category><![CDATA[price]]></category> <category><![CDATA[product]]></category> <category><![CDATA[profitable products]]></category> <category><![CDATA[purchase]]></category> <category><![CDATA[Real]]></category> <category><![CDATA[real time]]></category> <category><![CDATA[Red]]></category> <category><![CDATA[report]]></category> <category><![CDATA[report management]]></category> <category><![CDATA[report wizard]]></category> <category><![CDATA[Reporting]]></category> <category><![CDATA[revenue]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[ring]]></category> <category><![CDATA[Sales]]></category> <category><![CDATA[search]]></category> <category><![CDATA[Segmentation]]></category> <category><![CDATA[Senario]]></category> <category><![CDATA[set]]></category> <category><![CDATA[side]]></category> <category><![CDATA[site]]></category> <category><![CDATA[site analytics]]></category> <category><![CDATA[site marketing]]></category> <category><![CDATA[table]]></category> <category><![CDATA[time]]></category> <category><![CDATA[time visitor]]></category> <category><![CDATA[tin]]></category> <category><![CDATA[tool]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[track]]></category> <category><![CDATA[use]]></category> <category><![CDATA[user]]></category> <category><![CDATA[var]]></category> <category><![CDATA[variable]]></category> <category><![CDATA[version]]></category> <category><![CDATA[visit]]></category> <category><![CDATA[visitor]]></category> <category><![CDATA[visitor behavior]]></category> <category><![CDATA[visitor experience]]></category> <category><![CDATA[visitor navigation]]></category> <category><![CDATA[web]]></category> <category><![CDATA[web analytics]]></category> <category><![CDATA[website]]></category> <category><![CDATA[wizard]]></category> <category><![CDATA[work]]></category><guid isPermaLink="false">http://myblog.dylx-infotech.com/?p=286</guid> <description><![CDATA[Yahoo has re-launched IndexTools as Yahoo Web Analytics. IndexTools is a web analytics package which brought in April 2008. Yahoo Web Analytics is an enterprise site analytics tool that provides real time visitor behavior on website. With the powerful and flexible tools and dashboards, it able to provide the marketers and website designer with useful [...]<p><a href="http://www.technoreaders.com/2008/10/13/yahoo-re-launched-indextools-as-its-web-analytics/">Yahoo Re-Launched IndexTools As Its Web Analytics</a> is a post from: <a href="http://www.technoreaders.com">TechnoReaders.com</a> <br /><a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;username=dpthakar"><img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></p> ]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.technoreaders.com%2F2008%2F10%2F13%2Fyahoo-re-launched-indextools-as-its-web-analytics%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.technoreaders.com%2F2008%2F10%2F13%2Fyahoo-re-launched-indextools-as-its-web-analytics%2F&amp;source=technoreaders&amp;style=normal&amp;b=2" height="61" width="50" title="Yahoo Re Launched IndexTools As Its Web Analytics" alt=" Yahoo Re Launched IndexTools As Its Web Analytics" /><br /> </a></div><p><img class="alignleft" src="http://img.labnol.org/di/yahoochat.jpg" alt="padding:5px;" width="100" height="74" title="Yahoo Re Launched IndexTools As Its Web Analytics" />Yahoo has re-launched IndexTools as Yahoo Web Analytics. IndexTools is a web analytics package which brought in April 2008. Yahoo Web Analytics is an enterprise site analytics tool that provides real time visitor behavior on website. With the powerful and flexible tools and dashboards, it able to provide the marketers and <a id="KonaLink0" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://www.mydigitallife.info/2008/10/13/yahoo-re-launched-indextools-as-its-web-analytics/#" target="_top"><span style="font-weight: 400; font-size: 13px; position: static; color: blue;"><span class="kLink" style="font-weight: 400; font-size: 13px; position: static; font-family: &quot;Trebuchet MS&quot;,&quot;Bitstream Vera Sans&quot;,Verdana,Arial,&quot;Lucida Sans&quot;,&quot;Lucida Sans Unicode&quot;,Helvetica,sans-serif; color: blue;">website </span><span class="kLink" style="font-weight: 400; font-size: 13px; position: static; font-family: &quot;Trebuchet MS&quot;,&quot;Bitstream Vera Sans&quot;,Verdana,Arial,&quot;Lucida Sans&quot;,&quot;Lucida Sans Unicode&quot;,Helvetica,sans-serif; color: blue;">designer</span></span></a> with useful analysis reports that will enhance their visitor experience, increase sales, increase traffic and reduce marketing cost.</p><p style="text-align: center;"><img class="size-medium wp-image-12152 aligncenter" src="http://l.yimg.com/a/i/us/webanalytics/images/ywa-wa-img-pu-2.gif" alt="ywa wa img pu 2 Yahoo Re Launched IndexTools As Its Web Analytics" width="420" height="380" title="Yahoo Re Launched IndexTools As Its Web Analytics" /><span id="more-286"></span></p><p>The key features and benefits of Yahoo Web Analytics as below:</p><ol><li>Executive Dashboards- Able to set the key performance metrics with the customizable executive dashboards.</li><li>Custom Report- Pre-defined the reports with the Custom Report Wizard.</li><li>Advanced compaign management- Track and optimize your marketing compaigns.</li><li>Real Time Segmentation- Able to analyze how different groups of visitors respond to different variables on your site.</li><li>Live Cost Analysis- Able to compare search engine price information for help keep revenues in check.</li><li>Merchandise Reporting- Able to Identify purchase pattern for promote profitable products.</li><li>Senario analysis- Able to analyze visitor paths to reduce customer drop-off</li><li>Comparative Reporting- Compare reports from two time period with side by side.</li><li>Advanced Path Analysis- Get in depth insight into visitor navigation around the site.</li><li>Marketing Workflow Management &#8211; Enchance the site monitoring and report management capabilities.</li></ol><p>Currently, <a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://web.analytics.yahoo.com/');" href="http://web.analytics.yahoo.com/">Yahoo Web Analytics</a> is available in beta version for yahoo partner like <a id="KonaLink1" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://www.mydigitallife.info/2008/10/13/yahoo-re-launched-indextools-as-its-web-analytics/#" target="_top"><span style="font-weight: 400; font-size: 13px; position: static; color: blue;"><span class="kLink" style="font-weight: 400; font-size: 13px; position: static; font-family: &quot;Trebuchet MS&quot;,&quot;Bitstream Vera Sans&quot;,Verdana,Arial,&quot;Lucida Sans&quot;,&quot;Lucida Sans Unicode&quot;,Helvetica,sans-serif; color: blue;">developers</span></span></a>, advertisers or Yahoo Small Business users.</p><p><strong>Original Author: </strong><a href="http://www.mydigitallife.info/" target="_BLANK">Click Here</a></p><div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.technoreaders.com/2008/10/13/download-free-and-open-source-openofficeorg-300-office-suite-final-version/" rel="bookmark" class="crp_title">Download Free and Open Source OpenOffice.org 3.0.0 Office Suite Final Version</a></li><li><a href="http://www.technoreaders.com/2009/03/09/convert-webpage-to-pdf-files/" rel="bookmark" class="crp_title">Convert Webpage to PDF Files</a></li><li><a href="http://www.technoreaders.com/2008/10/13/sitereloader-to-help-auto-refresh-your-favourite-webpages/" rel="bookmark" class="crp_title">SiteReloader to Help Auto Refresh Your Favourite Webpages</a></li><li><a href="http://www.technoreaders.com/2008/10/27/web-10-vs-web-20-the-visual-difference/" rel="bookmark" class="crp_title">Web 1.0 vs Web 2.0: The Visual Difference</a></li><li><a href="http://www.technoreaders.com/2009/07/01/firefox-35-released/" rel="bookmark" class="crp_title">Firefox 3.5 Released</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div><p><a href="http://www.technoreaders.com/2008/10/13/yahoo-re-launched-indextools-as-its-web-analytics/">Yahoo Re-Launched IndexTools As Its Web Analytics</a> is a post from: <a href="http://www.technoreaders.com">TechnoReaders.com</a> <br /><a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;username=dpthakar"><img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0" title="Yahoo Re Launched IndexTools As Its Web Analytics" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.technoreaders.com/2008/10/16/zend-platform-5250-bridge/" title="Zend Platform 5250 Bridge ">Zend Platform 5250 Bridge </a></li><li><a href="http://www.technoreaders.com/2008/10/17/zend-framework-17-preview-release-now-available/" title="Zend Framework 1.7 Preview Release now available">Zend Framework 1.7 Preview Release now available</a></li><li><a href="http://www.technoreaders.com/2008/10/14/mozilla-launches-developer-tools-lab-for-the-open-web/" title="Mozilla launches Developer Tools Lab for the open Web">Mozilla launches Developer Tools Lab for the open Web</a></li><li><a href="http://www.technoreaders.com/2008/10/13/what-is-adobemacromedia-flex/" title="What Is Adobe/Macromedia Flex?">What Is Adobe/Macromedia Flex?</a></li><li><a href="http://www.technoreaders.com/2008/10/08/cookies-vs-sessions/" title="Cookies Vs Sessions ">Cookies Vs Sessions </a></li><li><a href="http://www.technoreaders.com/2008/10/15/remote-debugging-for-php-using-zend/" title="Remote debugging for PHP using Zend">Remote debugging for PHP using Zend</a></li><li><a href="http://www.technoreaders.com/2009/03/06/merb/" title="Merb">Merb</a></li><li><a href="http://www.technoreaders.com/2008/10/07/visual-studio-2008-professional-vs-standard-edition-just-what-are-the-differences-is-it-features/" title="Visual Studio 2008 Professional vs. Standard edition. Just what are the differences? Is it Features?">Visual Studio 2008 Professional vs. Standard edition. Just what are the differences? Is it Features?</a></li><li><a href="http://www.technoreaders.com/2008/10/16/new-upload-word-documents-excel-sheets-to-slideshare/" title="New! Upload Word Documents &#038; Excel Sheets to Slideshare">New! Upload Word Documents &#038; Excel Sheets to Slideshare</a></li><li><a href="http://www.technoreaders.com/2008/10/11/take-automated-screenshots-of-web-pages-from-command-line/" title="Take Automated Screenshots of Web Pages from Command Line">Take Automated Screenshots of Web Pages from Command Line</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.technoreaders.com/2008/10/13/yahoo-re-launched-indextools-as-its-web-analytics/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Object Oriented Programming in PHP</title><link>http://www.technoreaders.com/2008/10/07/object-oriented-programming-in-php/</link> <comments>http://www.technoreaders.com/2008/10/07/object-oriented-programming-in-php/#comments</comments> <pubDate>Tue, 07 Oct 2008 00:30:14 +0000</pubDate> <dc:creator>Jigish Thakar</dc:creator> <category><![CDATA[Beginners]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[code]]></category> <category><![CDATA[ability]]></category> <category><![CDATA[Abstract]]></category> <category><![CDATA[abstract data types]]></category> <category><![CDATA[access data]]></category> <category><![CDATA[amp]]></category> <category><![CDATA[argument]]></category> <category><![CDATA[associative array]]></category> <category><![CDATA[base]]></category> <category><![CDATA[basic]]></category> <category><![CDATA[br]]></category> <category><![CDATA[call]]></category> <category><![CDATA[case]]></category> <category><![CDATA[circle]]></category> <category><![CDATA[class data members]]></category> <category><![CDATA[classes]]></category> <category><![CDATA[clone]]></category> <category><![CDATA[command]]></category> <category><![CDATA[concepts of object oriented programming]]></category> <category><![CDATA[constructor]]></category> <category><![CDATA[course]]></category> <category><![CDATA[designer]]></category> <category><![CDATA[Designers]]></category> <category><![CDATA[die]]></category> <category><![CDATA[disk]]></category> <category><![CDATA[documentation]]></category> <category><![CDATA[draw]]></category> <category><![CDATA[encapsulation]]></category> <category><![CDATA[error]]></category> <category><![CDATA[example]]></category> <category><![CDATA[feature]]></category> <category><![CDATA[file]]></category> <category><![CDATA[function]]></category> <category><![CDATA[functionality]]></category> <category><![CDATA[help]]></category> <category><![CDATA[information]]></category> <category><![CDATA[inheritance]]></category> <category><![CDATA[inheritance polymorphism]]></category> <category><![CDATA[interface]]></category> <category><![CDATA[keyword]]></category> <category><![CDATA[language]]></category> <category><![CDATA[lt]]></category> <category><![CDATA[mechanism]]></category> <category><![CDATA[member]]></category> <category><![CDATA[member function]]></category> <category><![CDATA[member functions]]></category> <category><![CDATA[method]]></category> <category><![CDATA[MUST]]></category> <category><![CDATA[Myclass]]></category> <category><![CDATA[name]]></category> <category><![CDATA[nomenclature]]></category> <category><![CDATA[NOT]]></category> <category><![CDATA[number]]></category> <category><![CDATA[obj]]></category> <category><![CDATA[Object]]></category> <category><![CDATA[object handler]]></category> <category><![CDATA[object oriented]]></category> <category><![CDATA[object oriented programming]]></category> <category><![CDATA[object reference]]></category> <category><![CDATA[OOP]]></category> <category><![CDATA[oop concepts]]></category> <category><![CDATA[Oriented]]></category> <category><![CDATA[overload]]></category> <category><![CDATA[parent]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[php class]]></category> <category><![CDATA[php4]]></category> <category><![CDATA[Polymorphism]]></category> <category><![CDATA[problem]]></category> <category><![CDATA[programmer]]></category> <category><![CDATA[purpose]]></category> <category><![CDATA[rectangle]]></category> <category><![CDATA[reference]]></category> <category><![CDATA[representation]]></category> <category><![CDATA[run]]></category> <category><![CDATA[script]]></category> <category><![CDATA[set]]></category> <category><![CDATA[setx]]></category> <category><![CDATA[sety]]></category> <category><![CDATA[site]]></category> <category><![CDATA[Something]]></category> <category><![CDATA[str]]></category> <category><![CDATA[string]]></category> <category><![CDATA[term]]></category> <category><![CDATA[thing]]></category> <category><![CDATA[time]]></category> <category><![CDATA[type]]></category> <category><![CDATA[unserialize]]></category> <category><![CDATA[use]]></category> <category><![CDATA[user]]></category> <category><![CDATA[var]]></category> <category><![CDATA[viewing]]></category> <category><![CDATA[way]]></category> <category><![CDATA[web]]></category><guid isPermaLink="false">http://myblog.dylx-infotech.com/?p=82</guid> <description><![CDATA[This article introduces Object Oriented Programming (OOP) in PHP. I will show you how to code less and better by using some OOP concepts and PHP tricks. Concepts of object oriented programming: · Abstract data types and information hiding · Inheritance · Polymorphism The encapsulation is done in php using classes: &#60;?php class Something { [...]<p><a href="http://www.technoreaders.com/2008/10/07/object-oriented-programming-in-php/">Object Oriented Programming in PHP</a> is a post from: <a href="http://www.technoreaders.com">TechnoReaders.com</a> <br /><a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;username=dpthakar"><img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></p> ]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.technoreaders.com%2F2008%2F10%2F07%2Fobject-oriented-programming-in-php%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.technoreaders.com%2F2008%2F10%2F07%2Fobject-oriented-programming-in-php%2F&amp;source=technoreaders&amp;style=normal&amp;b=2" height="61" width="50" title="Object Oriented Programming in PHP" alt=" Object Oriented Programming in PHP" /><br /> </a></div><p>This article introduces Object Oriented Programming (OOP) in PHP. I will show you how to code less and better by using some OOP concepts and PHP tricks.<br /> Concepts of object oriented programming:</p><p>·    Abstract data types and information hiding<br /> ·    Inheritance<br /> ·    Polymorphism</p><p><span id="more-82"></span></p><p>The encapsulation is done in php using classes:<br /> <span style="color: #ff6600;">&lt;?php</span><br /> <span style="color: #339966;">class Something {<br /> // In OOP classes are usually named starting with a cap letter.<br /> var $x;</span></p><p>function setX($v) {<br /> // Methods start in lowercase then use lowercase to separate<br /> // words in the method name example getValueOfArea()<br /> $this-&gt;x=$v;<br /> }</p><p>function getX() {<br /> return $this-&gt;x;<br /> }<br /> }</p><p><span style="color: #ff6600;">?&gt;</span></p><p>Of course you can use your own nomenclature, but having a standardized one is useful.</p><p>Data members are defined in php using a &#8220;var&#8221; declaration inside the class, data members have no type until they are assigned a value. A data member might be an integer, an array, an associative array or even an object. Methods are defined as functions inside the class, to access data members inside the methods you have to use $this-&gt;name, otherwise the variable is local to the method.</p><p>You create an object using the new operator:<br /> <span style="color: #008000;">$obj=new Something;</span></p><p>Then you can use member functions by:<br /> <span style="color: #008000;">$obj-&gt;setX(5);<br /> $see=$obj-&gt;getX();</span></p><p>The setX member function assigns 5 to the x data member in the object obj (not in the class), then getX returns its value: 5 in this case.</p><p>You can access the data members from the object reference using for example: $obj-&gt;x=6; however, this is not a very good OOP practice. I enforce you to set data members by defining methods to set them and access the datamembers by using retrieving methods. You&#8217;ll be a good OOP programmer if you consider data members inaccessible and only use methods from the object handler. Unfortunately PHP doesn&#8217;t have a way to declare a data member private so bad code is allowed.<br /> Inheritance is easy in php using the extend keyword.</p><p><span style="color: #ff0000;">&lt;?php<br /> </span><span style="color: #008000;"><br /> class Another extends Something {<br /> var $y;<br /> function setY($v) {<br /> // Methods start in lowercase then use lowercase to seperate<br /> // words in the method name example getValueOfArea()<br /> $this-&gt;y=$v;<br /> }</span></p><p>function getY() {<br /> return $this-&gt;y;<br /> }<br /> }</p><p><span style="color: #ff0000;">?&gt;</span><br /> Objects of the class &#8220;Another&#8221; now has all the data members and methods of the parent class (Something) plus its own data members and methods. You can use:</p><p><span style="color: #008000;">$obj2=new Something;<br /> $obj2-&gt;setX(6);<br /> $obj2-&gt;setY(7);</span></p><p>Multiple inheritance is not supported so you can&#8217;t make a class extend two or more different classes.</p><p>You can override a method in the derived class by redefining it, if we redefine getX in &#8220;Another&#8221; we can&#8217;t no longer access method getX in &#8220;Something&#8221;. If you declare a data member in a derived class with the same name as a data member in a Base class the derived data member &#8220;hides&#8221; the base class data member when you access it.</p><p>You might define constructors in your classes, constructors are methods with the same name as the class and are called when you create an object of the class for example:</p><p><span style="color: #ff0000;">&lt;?php<br /> </span><br /> <span style="color: #008000;">class Something {<br /> var $x;</span></p><p>function Something($y) {<br /> $this-&gt;x=$y;<br /> }</p><p>function setX($v) {<br /> $this-&gt;x=$v;<br /> }</p><p>function getX() {<br /> return $this-&gt;x;<br /> }<br /> }</p><p><span style="color: #ff0000;">?&gt;</span></p><p>So you can create an object by:</p><p><span style="color: #008000;">$obj=new Something(6);<br /> </span><br /> And the constructor automatically asigns 6 to the data member x. Constructors and methods are normal php functions so you can use default arguments.</p><p>function Something($x=&#8221;3&#8243;,$y=&#8221;5&#8243;)</p><p>Then:<br /> <span style="color: #008000;">$obj=new Something();    // x=3 and y=5<br /> $obj=new Something(8);   // x=8 and y=5<br /> $obj=new Something(8,9);   // x=8 and y=9<br /> </span><br /> Default arguments are used in the C++ way so you can&#8217;t pass a value to Y and let X take the default value, arguments are asigned form left to right and when no more arguments are found if the function expected more they take the default values.</p><p>When an object of a derived class is created only its constructor is called, the constructor of the Parent class is not called, this is a gotcha of PHP because constructor chaining is a classic feature of OOP, if you want to call the base class constructor you have to do it explicitely from the derived class constructor.It works because all methods of the parent class are available at the derived class due to inheritance.</p><p><span style="color: #ff0000;">&lt;?php<br /> <span style="color: #008000;"><br /> function Another() {<br /> $this-&gt;y=5;<br /> $this-&gt;Something();   //explicit call to base class constructor.<br /> }<br /> </span><br /> ?&gt;</span></p><p>A nice mechanism in OOP is to use Abstract Classes, abstract classes are classes that are not instanciable and has the only purpose to define an interface for its derived classes. Designers often use Abstract classes to force programmers to derive classes from certain base classes so they can be certain that the new classes have some desired functionality. There&#8217;s no standard way to do that in PHP but:<br /> If you do need this feature define the base class and put a &#8220;die&#8221; call in its constructor so you can be sure that the base class is not instanciable, now define the methods (interface) putting &#8220;die&#8221; statements in each one, so if in a derived class a programmer doesn&#8217;t override the method then an error raises. Furthermore you might need to be sure since php has no types that some object is from a class derived from you base class, then add a method in the base class to identify the class (return &#8220;some id&#8221;), and verify this when you receive an object as an argument. Of course this doesn&#8217;t work if the evil programmer oveerides the method in the derived class but genrally the problem is dealing with lazy programmers no evil ones! Of course is better to keep the base class unreachable from the programmers, just print the interface and make them work!<br /> There&#8217;re no destructors in PHP.</p><p>Overloading (which is different from overriding) is not supported in PHP. In OOP you &#8220;overload&#8221; a method when you define two/more methods with the same name but different number or type of parameters (depending upon the language). Php is a loosely typed language so overloading by types won&#8217;t work, however overloading by number of parameters doesn&#8217;t work either.</p><p>It&#8217;s very nice sometimes in OOP to overload constructors so you can build the object in different ways (passing different number of arguments). A trick to do something like that in PHP is:<br /> <span style="color: #ff0000;"><br /> &lt;?php<br /> <span style="color: #008000;"><br /> class Myclass {<br /> function Myclass() {<br /> $name=&#8221;Myclass&#8221;.func_num_args();<br /> $this-&gt;$name();<br /> //Note that $this-&gt;$name() is usually wrong but here<br /> //$name is a string with the name of the method to call.<br /> }</span></span></p><p>function Myclass1($x) {<br /> code;<br /> }<br /> function Myclass2($x,$y) {<br /> code;<br /> }<br /> }</p><p>?&gt;</p><p>With this extra working in the class the use of the class is transparent to the user:<br /> <span style="color: #008000;"><br /> $obj1=new Myclass(&#8217;1&#8242;);      //Will call Myclass1<br /> $obj2=new Myclass(&#8217;1&#8242;,&#8217;2&#8242;);  //Will call Myclass2<br /> </span><br /> Sometimes this is very nice.</p><p>Polymorphism is defined as the ability of an object to determine which method to invoke for an object passed as argument in runtime time. For example if you have a class figure which defines a method draw and derived classes circle and rectangle where you override the method draw you might have a function which expects an argument x and then call $x-&gt;draw(). If you have polymorphism the method draw called depends of the type of object you pass to the function. Polymorphism is very easy and natural in interpreted languages as PHP (try to imagine a C++ compiler generating code for this case, which method do you call? You don&#8217;t know yet which type of object you have!, ok this is not the point). So PHP happily supports polymorphism.</p><p><span style="color: #ff0000;">&lt;?php<br /> <span style="color: #008000;"><br /> function niceDrawing($x) {<br /> //Supose this is a method of the class Board.<br /> $x-&gt;draw();<br /> }</span></span></p><p>$obj=new Circle(3,187);<br /> $obj2=new Rectangle(4,5);</p><p>$board-&gt;niceDrawing($obj);    //will call the draw method of Circle.<br /> $board-&gt;niceDrawing($obj2);   //will call the draw method of Rectangle.</p><p>?&gt;<br /> Some &#8220;purists&#8221; will say PHP is not truly an object oriented language, which is true. PHP is a hybrid language where you can use OOP and traditional procedural programming. For large projects, however, you might want/need(?) to use &#8220;pure&#8221; OOP in PHP declaring classes, and using only objects and classes for your project. As larger and larger projects emerge the use of OOP may help, OOP code is easy to mantain, easy to understand and easy to reuse. Those are the foundations of software engineering. Applying those concepts to web based projects is the key to success in future web sites.</p><p>Advanced OOP Techniques in PHP<br /> After reviewing the basic concepts of OOP I can show you some more advanced techniques:</p><p>Serializing<br /> PHP doesn&#8217;t support persistent objects, in OOP persistent objects are objects that keep its state and funcionality across multiple invocations of the application, this means having the ability of saving the object to a file or database and then loading the object back. The mechanism is known as serialization. PHP has a serialize method which can be called for objects, the serialize method returns a string representation of the object. However serialize saves the datamembers of the object but not the methods.<br /> In PHP4 if you serialize the object to string $s, then destroy the object, and then unserialize the object to $obj you might still access the object methods! I don&#8217;t recommend this because (a) The documentation doesn&#8217;t guarrantee this beahaviour so in future versions it might not work. (b) This might lead to &#8216;illusions&#8217; if you save the serialized version to disk and exit the script. In future runs of the script you can&#8217;t unserialize the string to an object an expect the methods to be there because the string representation doesn&#8217;t have the methods! Summarizing serializing in PHP is VERY useful to save the data members of an object just that. (You can serialize asociative arrays and arrays to save them to disk too).</p><p>Example:</p><p><span style="color: #ff0000;">&lt;?php<br /> <span style="color: #008000;"><br /> $obj=new Classfoo();<br /> $str=serialize($obj);<br /> // Save $str to disk</span></span></p><p>//&#8230;some months later</p><p>//Load str from disk<br /> $obj2=unserialize($str);</p><p>?&gt;<br /> You have the datamembers recovered but not the methods (according to the documentation). This leads to $obj2-&gt;x as the only way to access the data members (you have no methods!) so don&#8217;t try this at home.<br /> There&#8217;re some ways to fix the problem, I leave it up to you because they are too dirty for this neat article.<br /> Full serialization is a feature I&#8217;d gladly welcome in PHP.</p><p>Using Classes to Manipulate Stored Data</p><p>One very nice thing of PHP and OOP is that you can easily define classes to manipulate certain things and the call the appropiate classes whenever you want. Suposse you have a html form where the user selects a product by selecting it&#8217;s product ID, you have the data of the products in a database and you want to display the product, show its price, etc etc. You have products of different types, and the same action might have different meanings for different kind of products. For example showing a sound might mean playing it while for some other kind of products might mean to display a picture stored in the database. You might use OOP and PHP to code less and code better:<br /> Define a class product, define which methods the class should have (example display), then define classes for each type of product which extends the product class (class SoundItem, class ViewableItem, etc&#8230;) override the methods you define in product in each of this classes make them do what you want. Name the classes according to the &#8220;type&#8221; column you store in the database for each product a typical product table might have (id,type,price,description,etc etc)&#8230; Then in the processing script you can retrieve the type from the database and instanciate an object of the class named type using:</p><p><span style="color: #ff0000;">&lt;?php</span></p><p><span style="color: #008000;">$obj=new $type();<br /> $obj-&gt;action();<br /> </span><br /> ?&gt;</p><p>This is a very nice feature of PHP, you might then call the display method of $obj or any other method regardless the type of object you have. With this technique you don&#8217;t have to touch the processing script when you add a new type of object, just add a class to handle it. This is quite powerful, just define the methods all objects regardless of its type should have, implement them in different ways in different classes and use them for any type of object in the main script, no ifs, no 2 programmers in the same file, eternal happiness. Do you agree programming is easy, mainteinance is cheaper and reusability is real now?<br /> If you command a group of programmers is easy to divide the tasks, each one might be responsable for a type of object and the class that handles it. Internacionalization can be done using this technique, apply the proper class according to a language field selected by the user, etc.<br /> Copying and Cloning<br /> When you create an object $obj you can copy the object by doing $obj2=$obj, the new object is a copy (not a reference) of $obj so it has the state $obj had in the moment the assignment was made. Sometimes you don&#8217;t want this, you just want to create a new object of the same class as obj, calling the constructor of the new object as if you had used the new statement. This can be done in PHP using serialization and a base class that all other classes must extend.</p><p>When you serialize an object you get a string which has a certain format, you may investigate it if you are curious, one of the things the string has is the name of the class (nice!) you may extract it using:</p><p><span style="color: #ff0000;">&lt;?php<br /> <span style="color: #008000;"><br /> $herring=serialize($obj);<br /> $vec=explode(&#8216;:&#8217;,$herring);<br /> $nam=str_replace(&#8220;\&#8221;",&#8221;,$vec[2]);<br /> </span><br /> ?&gt;</span><br /> So suposse you create a class &#8220;Universe&#8221; and force that all classes must extend universe, you can define a method clone in Universe as:<br /> <span style="color: #ff0000;"><br /> &lt;?php<br /> <span style="color: #008000;"><br /> class Universe {<br /> function clone() {<br /> $herring=serialize($this);<br /> $vec=explode(&#8216;:&#8217;,$herring);<br /> $nam=str_replace(&#8220;\&#8221;",&#8221;,$vec[2]);<br /> $ret=new $nam;<br /> return $ret;<br /> }<br /> }</span></span></p><p>//Then:</p><p>$obj=new Something();<br /> //Something extends Universe !!<br /> $other=$obj-&gt;clone();</p><p>?&gt;</p><p>What you get is a new object of class Something created the same way as using new, the constructor is called, etc. I don&#8217;t know if this is useful for you, but the Universe class which knows the name of the derived class is a nice concept to experiment. The only limit is your imagination.<br /> &#8230;</p><div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.technoreaders.com/2008/10/04/object-oriented-model-a-summary-of-changes-from-php4-to-php5/" rel="bookmark" class="crp_title">Object Oriented Model &#8211; a summary of changes from PHP4 to PHP5</a></li><li><a href="http://www.technoreaders.com/2009/11/16/php-copying-contnet-of-folder-to-folder/" rel="bookmark" class="crp_title">PHP: copying content of folder to folder</a></li><li><a href="http://www.technoreaders.com/2008/10/10/implement-adsense-revenue-sharing-on-a-multi-author-blog/" rel="bookmark" class="crp_title">Implement AdSense Revenue Sharing on a Multi-Author Blog</a></li><li><a href="http://www.technoreaders.com/2008/10/04/cookies-in-php/" rel="bookmark" class="crp_title">Cookies in PHP</a></li><li><a href="http://www.technoreaders.com/2009/12/03/twitter-like-loading-load-more/" rel="bookmark" class="crp_title">Twitter like loading (Load More)</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div><p><a href="http://www.technoreaders.com/2008/10/07/object-oriented-programming-in-php/">Object Oriented Programming in PHP</a> is a post from: <a href="http://www.technoreaders.com">TechnoReaders.com</a> <br /><a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;username=dpthakar"><img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0" title="Object Oriented Programming in PHP" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.technoreaders.com/2008/10/04/object-oriented-model-a-summary-of-changes-from-php4-to-php5/" title="Object Oriented Model &#8211; a summary of changes from PHP4 to PHP5">Object Oriented Model &#8211; a summary of changes from PHP4 to PHP5</a></li><li><a href="http://www.technoreaders.com/2008/10/08/cookies-vs-sessions/" title="Cookies Vs Sessions ">Cookies Vs Sessions </a></li><li><a href="http://www.technoreaders.com/2008/10/16/zend-platform-5250-bridge/" title="Zend Platform 5250 Bridge ">Zend Platform 5250 Bridge </a></li><li><a href="http://www.technoreaders.com/2008/10/13/what-is-adobemacromedia-flex/" title="What Is Adobe/Macromedia Flex?">What Is Adobe/Macromedia Flex?</a></li><li><a href="http://www.technoreaders.com/2008/10/06/how-works-the-oled-technology/" title="How works the OLED technology?">How works the OLED technology?</a></li><li><a href="http://www.technoreaders.com/2008/10/04/cookies-in-php/" title="Cookies in PHP">Cookies in PHP</a></li><li><a href="http://www.technoreaders.com/2008/09/12/basic-about-php-1/" title="Basic About PHP 1">Basic About PHP 1</a></li><li><a href="http://www.technoreaders.com/2008/10/15/remote-debugging-for-php-using-zend/" title="Remote debugging for PHP using Zend">Remote debugging for PHP using Zend</a></li><li><a href="http://www.technoreaders.com/2008/10/11/flex-and-php/" title="Flex and PHP">Flex and PHP</a></li><li><a href="http://www.technoreaders.com/2008/10/06/what-happens-if-the-url-is-too-long-for-the-server/" title="What happens if the URL is too long for the server?">What happens if the URL is too long for the server?</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.technoreaders.com/2008/10/07/object-oriented-programming-in-php/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Object Oriented Model &#8211; a summary of changes from PHP4 to PHP5</title><link>http://www.technoreaders.com/2008/10/04/object-oriented-model-a-summary-of-changes-from-php4-to-php5/</link> <comments>http://www.technoreaders.com/2008/10/04/object-oriented-model-a-summary-of-changes-from-php4-to-php5/#comments</comments> <pubDate>Sat, 04 Oct 2008 03:38:33 +0000</pubDate> <dc:creator>Jigish Thakar</dc:creator> <category><![CDATA[Open Source]]></category> <category><![CDATA[addition]]></category> <category><![CDATA[API]]></category> <category><![CDATA[application programmer interface]]></category> <category><![CDATA[Author]]></category> <category><![CDATA[behaviour]]></category> <category><![CDATA[bit]]></category> <category><![CDATA[cannot]]></category> <category><![CDATA[capabilities]]></category> <category><![CDATA[capability]]></category> <category><![CDATA[classes]]></category> <category><![CDATA[clone]]></category> <category><![CDATA[code]]></category> <category><![CDATA[constructor]]></category> <category><![CDATA[constructor method]]></category> <category><![CDATA[copy references]]></category> <category><![CDATA[crisper]]></category> <category><![CDATA[definitions]]></category> <category><![CDATA[designer]]></category> <category><![CDATA[difference]]></category> <category><![CDATA[documuent]]></category> <category><![CDATA[effect]]></category> <category><![CDATA[elements]]></category> <category><![CDATA[firstly]]></category> <category><![CDATA[function]]></category> <category><![CDATA[keyword]]></category> <category><![CDATA[lt]]></category> <category><![CDATA[member]]></category> <category><![CDATA[member variables]]></category> <category><![CDATA[method]]></category> <category><![CDATA[MUST]]></category> <category><![CDATA[name]]></category> <category><![CDATA[None]]></category> <category><![CDATA[NOT]]></category> <category><![CDATA[number]]></category> <category><![CDATA[Object]]></category> <category><![CDATA[object oriented]]></category> <category><![CDATA[object oriented model]]></category> <category><![CDATA[ooad]]></category> <category><![CDATA[Oriented]]></category> <category><![CDATA[overridden]]></category> <category><![CDATA[parent]]></category> <category><![CDATA[part]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[php code]]></category> <category><![CDATA[php4]]></category> <category><![CDATA[php5]]></category> <category><![CDATA[piece of paper]]></category> <category><![CDATA[programmer]]></category> <category><![CDATA[reason]]></category> <category><![CDATA[reference]]></category> <category><![CDATA[release]]></category> <category><![CDATA[RESTRICTING]]></category> <category><![CDATA[run]]></category> <category><![CDATA[share]]></category> <category><![CDATA[sheet]]></category> <category><![CDATA[someone]]></category> <category><![CDATA[substantial applications]]></category> <category><![CDATA[term]]></category> <category><![CDATA[term interest]]></category> <category><![CDATA[thing]]></category> <category><![CDATA[Thirdly]]></category> <category><![CDATA[time]]></category> <category><![CDATA[var]]></category> <category><![CDATA[way]]></category> <category><![CDATA[whole lot]]></category><guid isPermaLink="false">http://myblog.dylx-infotech.com/?p=75</guid> <description><![CDATA[What are the differences between the Object Oriented model in PHP5 and PHP4? Firstly (and the reason the release number jumped) is that assignments copy references in PHP5 (which is regarded as correct OO behaviour) but they duplicate or clone the object in PHP4. This may sound a bit obtuse, but: * if you duplicate [...]<p><a href="http://www.technoreaders.com/2008/10/04/object-oriented-model-a-summary-of-changes-from-php4-to-php5/">Object Oriented Model &#8211; a summary of changes from PHP4 to PHP5</a> is a post from: <a href="http://www.technoreaders.com">TechnoReaders.com</a> <br /><a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;username=dpthakar"><img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></p> ]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.technoreaders.com%2F2008%2F10%2F04%2Fobject-oriented-model-a-summary-of-changes-from-php4-to-php5%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.technoreaders.com%2F2008%2F10%2F04%2Fobject-oriented-model-a-summary-of-changes-from-php4-to-php5%2F&amp;source=technoreaders&amp;style=normal&amp;b=2" height="61" width="50" title="Object Oriented Model   a summary of changes from PHP4 to PHP5" alt=" Object Oriented Model   a summary of changes from PHP4 to PHP5" /><br /> </a></div><p>What are the differences between the Object Oriented model in PHP5 and PHP4?</p><p>Firstly (and the reason the release number jumped) is that assignments copy references in PHP5 (which is regarded as correct OO behaviour) but they duplicate or clone the object in PHP4. This may sound a bit obtuse, but:<br /> * if you duplicate an object and then change one of the copies, you do NOT effect the data refered to by the other name (PHP4 behaviour)<br /> * if you copy by reference (PHP5 behaviour, in effect giving the object a second name) and then change one of the &#8220;copies&#8221;, you effect both as there one and the same.<br /> In effect, it&#8217;s the difference between letting someone share a piece of paper with you and both writing on it (PHP5), and taking a photocopy to give to someone then each writing on your own sheet (PHP4).</p><p><span id="more-75"></span></p><p>The second major difference is that PHP5 lets you use a whole lot of RESTRICTING keywords in your definitions of classes and methods. You can declare that functions and member variables are:<br /> * <strong>private</strong> &#8211; i.e. only visible inside the class<br /> * <strong>protected</strong> &#8211; i.e. only visible in the class or its subclasses<br /> * <strong>final</strong> &#8211; i.e. cannot be overridden by / in subclasses<br /> And you can declare classes to be<br /> * <strong>abstract</strong> &#8211; i.e. MUST be subclassed with specific extra methods<br /> * to implement an <strong>interface</strong> &#8211; i.e. MUST define certain methods</p><p>None of these new keywords adds new capabilities, apart from the capability of restricting, so why are they there? To allow the designer / author of a class to limit the externally available elements leading to a crisper, easier to documuent and maintain API (application programmer interface), in the long term interest of maintainable PHP code in substantial applications. If you want a member to be public, you can still use the <strong>var</strong> keyword of PHP4, although you&#8217;re really encouraged to use the <strong>public</strong> keyword that means the same thing and, you&#8217;ll note, does NOT restrict.</p><p>Thirdly, in PHP5 you can name your constructor method <strong>__construct</strong> rather than have it as a function with the same name as the class, and you can use a <strong>parent::</strong> notation to call up methods in the base class is you wish to. In this way, you no longer need to code the name of the class, nor its relationship to other classes, internally &#8211; once again making for easier code modification and use later. PHP5 also has a <strong>__destruct</strong> method which is run to clean away objects when you&#8217;re finished with them.</p><p>Other additions at PHP 5 to the OO model include<br /> * A <strong>static</strong> keyword to let you define class / static / unbound members<br /> * An <strong>autolaod</strong> method called if a class is missing at run time<br /> * An <strong>__clone</strong> method if you really want to duplicate an object<br /> * An <strong>__toString</strong> method that lets you define what&#8217;s printed out when you print or echo an object variable</p><p><strong>Original Author : </strong> <a href="http://www.wellho.net" target="_BLANK">Click Here</a></p><p>..</p><div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.technoreaders.com/2009/05/05/phpopenbiz/" rel="bookmark" class="crp_title">PhpOpenbiz</a></li><li><a href="http://www.technoreaders.com/2008/10/07/object-oriented-programming-in-php/" rel="bookmark" class="crp_title">Object Oriented Programming in PHP</a></li><li><a href="http://www.technoreaders.com/2009/05/12/web4j-java-web-application-framework/" rel="bookmark" class="crp_title">WEB4J: Java web application framework</a></li><li><a href="http://www.technoreaders.com/2008/09/22/php6-beta/" rel="bookmark" class="crp_title">PHP6 Beta</a></li><li><a href="http://www.technoreaders.com/2009/05/08/symfony/" rel="bookmark" class="crp_title">Symfony</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div><p><a href="http://www.technoreaders.com/2008/10/04/object-oriented-model-a-summary-of-changes-from-php4-to-php5/">Object Oriented Model &#8211; a summary of changes from PHP4 to PHP5</a> is a post from: <a href="http://www.technoreaders.com">TechnoReaders.com</a> <br /><a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;username=dpthakar"><img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0" title="Object Oriented Model   a summary of changes from PHP4 to PHP5" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.technoreaders.com/2008/10/07/object-oriented-programming-in-php/" title="Object Oriented Programming in PHP">Object Oriented Programming in PHP</a></li><li><a href="http://www.technoreaders.com/2008/10/08/cookies-vs-sessions/" title="Cookies Vs Sessions ">Cookies Vs Sessions </a></li><li><a href="http://www.technoreaders.com/2008/10/24/dropdown-with-the-file-names/" title="Dropdown with the file names">Dropdown with the file names</a></li><li><a href="http://www.technoreaders.com/2008/10/16/zend-platform-5250-bridge/" title="Zend Platform 5250 Bridge ">Zend Platform 5250 Bridge </a></li><li><a href="http://www.technoreaders.com/2008/10/15/remote-debugging-for-php-using-zend/" title="Remote debugging for PHP using Zend">Remote debugging for PHP using Zend</a></li><li><a href="http://www.technoreaders.com/2008/10/13/what-is-adobemacromedia-flex/" title="What Is Adobe/Macromedia Flex?">What Is Adobe/Macromedia Flex?</a></li><li><a href="http://www.technoreaders.com/2008/10/07/visual-studio-2008-professional-vs-standard-edition-just-what-are-the-differences-is-it-features/" title="Visual Studio 2008 Professional vs. Standard edition. Just what are the differences? Is it Features?">Visual Studio 2008 Professional vs. Standard edition. Just what are the differences? Is it Features?</a></li><li><a href="http://www.technoreaders.com/2008/10/06/how-works-the-oled-technology/" title="How works the OLED technology?">How works the OLED technology?</a></li><li><a href="http://www.technoreaders.com/2008/10/06/what-happens-if-the-url-is-too-long-for-the-server/" title="What happens if the URL is too long for the server?">What happens if the URL is too long for the server?</a></li><li><a href="http://www.technoreaders.com/2008/10/04/cookies-in-php/" title="Cookies in PHP">Cookies in PHP</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.technoreaders.com/2008/10/04/object-oriented-model-a-summary-of-changes-from-php4-to-php5/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>