<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Wed, 23 May 2012 20:25:56 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Freek Lijten's Blog: SOLID - The O is for Open Closed Principle]]></title>
      <guid>http://www.phpdeveloper.org/news/17916</guid>
      <link>http://www.phpdeveloper.org/news/17916</link>
      <description><![CDATA[<p>
<i>Freek Lijten</i> has posted the <a href="http://www.freeklijten.nl/home/2012/05/07/SOLID-the-O-is-for-Open-Closed-Principle">second part</a> of his series looking at the <a href="http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)">SOLID</a> development methodology. In this latest post his looks at the second letter in the acronym - "O" for "Open Closed Principle."
</p>
<blockquote>
Software that requires an enormous amount of changes to implement one new feature or fix a bug is unstable and should be considered as "bad". Software should be designed so, that in case of a new feature, no existing classes should have to change. In other words: it is closed for modification. Existing software may be extended to achieve new features however.
</blockquote>
<p>
He starts off with a "What" section explaining a bit more about what this open/closed means for your code and gets into an example showing it in a more practical way. He shows how to take the principle and refactor an API connector class to pass in the object it needs (Bike) and use that to get information (rather than just passing in the data). He uses a <a href="http://en.wikipedia.org/wiki/Factory_pattern">Factory</a> to get the object type he needs based on the Bike type.
</p>]]></description>
      <pubDate>Mon, 07 May 2012 10:45:37 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Josh Adell's Blog: Command Invoker Pattern with the Open/Closed Principle]]></title>
      <guid>http://www.phpdeveloper.org/news/17398</guid>
      <link>http://www.phpdeveloper.org/news/17398</link>
      <description><![CDATA[<p>
In a response to a <a href="http://phpdeveloper.org/news/17389">recent post</a> on DZone.com about the "Open/Closed Principle" <i>Josh Adell</i> has <a href="http://blog.everymansoftware.com/2012/01/command-invoker-pattern-with-openclosed.html">posted an example</a> of a " flexible and extendable command invocation solution" implementing this <a href="http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)">SOLID</a> idea.
</p>
<blockquote>
Let's overcome some of these issues [with only being able to extend the invoker class and that the invoker needs to know how to create commands], and also make the code even more extensible. I'll use a simplified command invoker to demonstrate.
</blockquote>
<p>
His code is included - the creation of a "Command" interface and two comments that implement it: "HelloCommand" and "PwdCommand", each with "register" and "execute" methods. His "Invoker" class then only needs to be told how to map these commands and the "register" is called as they're needed. You can find the full example code for this invocation example <a href="http://gist.github.com/1610148">in this gist</a>.
</p>]]></description>
      <pubDate>Mon, 16 Jan 2012 10:04:42 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Open/Closed Principle on real world code]]></title>
      <guid>http://www.phpdeveloper.org/news/17389</guid>
      <link>http://www.phpdeveloper.org/news/17389</link>
      <description><![CDATA[<p>
In a new post to DZone.com <i>Giorgio Sironi</i> talks about the "open/closed principle" in software development and shows an example based on the design of the <a href="https://github.com/giorgiosironi/phpunit-selenium">PHPUnit_Selenium</a> project.
</p>
<blockquote>
This article shows an example of how the application of the Open/Closed Principle improved the design of a real project, the open source library <a href="https://github.com/giorgiosironi/phpunit-selenium">PHPUnit_Selenium</a>. These design concepts apply to every object-oriented language, including Java, Ruby or even C++. The <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">Open Closed Principle</a>, part of SOLID set, states that software should be open for extension and at the same time closed for modification.
</blockquote>
<p>
He starts with a little background on the project, pointing out that there's a Session object it uses for all of its testing with a magic "__call" method that handles any kind of method call to the object. This method has issues (dependencies, strict requirements for use) but can be refactored according to the Open/Closed idea to set up an array of anonymous functions that can be called as a "command". Examples of these types of classes are also included (one for the "click" action on a button and another for getting the current location).
</p>]]></description>
      <pubDate>Fri, 13 Jan 2012 09:05:53 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Anna Filina's Blog: Public Call for Papers: What Does That Mean?]]></title>
      <guid>http://www.phpdeveloper.org/news/16607</guid>
      <link>http://www.phpdeveloper.org/news/16607</link>
      <description><![CDATA[<p>
<i>Anna Filina</i>, one of the organizers of the <a href="http://confoo.ca">ConFoo Conference</a> in Montreal (February 27th through March 2nd) has a new post to her blog about a new process they're trying out this year for the Call for Papers - a <a href="http://annafilina.com/blog/public-call-for-papers/">public voting feature</a> that allows anyone to voice their opinion on the proposed sessions.
</p>
<blockquote>
Some of you may have already heard that the ConFoo call for papers is already open. The great thing about it this year, is that it's public. This means that anyone can vote on the proposals. Besides being fun for the speakers and attendees, it opens up a whole lot of possibilities.
</blockquote>
<p>
She <a href="http://annafilina.com/blog/public-call-for-papers/">talks about some of the reasons</a> they decided to go this route such as wanting to give the attendees the most "bang for the buck" and the ability for speakers to see what their fellow speakers are proposing and is working. The committee, of course, will have the final say, but the votes will help quite a bit.
</p>
<p>
If you'd like to vote and are even considering making it to this year's event, go over an <a href="http://confoo.ca/en/call-for-papers">sign up to vote</a> on the conference's Call for Papers section.
</p>]]></description>
      <pubDate>Tue, 19 Jul 2011 11:06:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: ZendCon 2011 Registration Opens]]></title>
      <guid>http://www.phpdeveloper.org/news/16510</guid>
      <link>http://www.phpdeveloper.org/news/16510</link>
      <description><![CDATA[<p>
As was <a href="http://twitter.com/#!/zend/status/83651082810691584">mentioned by Zend</a> late yesterday, the registration for this year's <a href="http://zendcon.com">Zend/PHP Conference</a> have <a href="http://www.eventbrite.com/event/1688515395/efblike">officially opened</a>!
</p>
<blockquote>
The 7th Annual Zend PHP Conference (ZendCon) will take place October 17-20, 2011, In Santa Clara, California. ZendCon is the largest gathering of the PHP Community and brings together PHP developers and IT managers from around the world to discuss PHP best practices and explore new technologies.
</blockquote>
<p>
The Early Bird pricing will last until September 10th saving you about $200 USD off the price of the ticket. The full ZendCon experience (Tutorials & Conference) is $1,195 USD or you can opt for just the Tutorial for $445 USD or just the Conference for $945 USD. You're in luck if you're looking for discounts, though - they have lots o them including ones for ZendCon alumni, group discounts, ZCEs and students.
</p>
<p>
The schedule's not quite out yet, but as you can see <a href="http://search.twitter.com/search?max_id=83836693504995328&page=4&q=zendcon">by some of the comments</a> from speakers on Twitter, it's shaping up to be a great schedule. Topics like CouchDb, component architecture, design patterns, Redis and dependency injection will all be there.
</p>]]></description>
      <pubDate>Thu, 23 Jun 2011 10:58:06 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: ZendCon 2011 Call for Papers Opens!]]></title>
      <guid>http://www.phpdeveloper.org/news/16268</guid>
      <link>http://www.phpdeveloper.org/news/16268</link>
      <description><![CDATA[<p>
As <a href="http://twitter.com/#!/kpschrade/statuses/63705168604172288/">was mentioned</a> by <i>Kevin Schroeder</i>, the Call for Papers for this year's <a href="http://zendcon.com">Zend/PHP Conference</a> has <a href="http://zendcon.com/2011/">officially been announced</a>!
</p>
<blockquote>
We are happy to announce that planning is underway for the 2011 Zend/PHP Conference which will be held in Santa Clara, October 17-20. ZendCon 2011 will be the best conference yet and we would like to invite you to be a part of it! A conference is only as good as its speakers and we are looking for the best speakers to share their knowledge and expertise with the PHP community. Attendees will include developers, architects, development managers, decision makers, core PHP developers and community members.
</blockquote>
<p>
The key themes they're looking for this year are cloud computing, mobile and user experience and enterprise/professional PHP topics. Within those themes there's several other sub-categories including:
</p>
<ul>
<li>Architecture & Best Practices
<li>Zend Framework 1&2
<li>Rich Internet Apps and Mobile/Tablet - Flash /Flex/HTML 5/CSS3/Ajax
<li>Standards Compliance
<li>Real World Case Studies, Designs and Data Models
</ul>
<p>
The Call for Papers will close on May 20th, 2011 and speakers will be given a hotel night for each of their sessions that are accepted. Submit your ideas at <a href="http://zendcon.com/input">www.zendcon.com/input</a> to see if you'll be selected!
</p>
<p>
UPDATE: for a bit more information on the categories, see <a href="http://www.eschrade.com/page/zendcon-2011-call-for-papers-is-out">this new post</a> on <i>Kevin Schroeder</i>'s blog.
</p>]]></description>
      <pubDate>Thu, 28 Apr 2011 15:57:18 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: FrOSCon '09 Call for Papers Now Open]]></title>
      <guid>http://www.phpdeveloper.org/news/12409</guid>
      <link>http://www.phpdeveloper.org/news/12409</link>
      <description><![CDATA[<p>
<i>Kore Nordmann</i> has <a href="http://kore-nordmann.de/blog/0087_froscon_call_for_papers_started.html">a new post</a> to his blog mentioning that the Call for Papers for this year's <a href="http://froscon.de/">Free and Open Source Conference</a> (FrOSCon) has been started up.
</p>
<blockquote>
This year we will organize a PHP room for the third time, like in 2006 and 2007. We hope that we can keep up with the amazing conferences from the last years, and we expect it to be a wonderful open source event again. We would love to welcome you in the PHP room, either giving a talk, or just for a chat or listening. We are looking for speakers right now by starting the <a href="http://froscon.phpugdo.de/call_for_papers.html">Call for Papers (CfP)</a>, which will end at the 23.05.2009 - please submit your talks.
</blockquote>
<p>
Other non-PHP topics you could also submit on include development practices, security, desktop development, open hardware and several Java-related suggestions. You can find out more about these and what needs to be done to submit your proposal on <a href="http://www.froscon.de/index.php?id=32&L=1">this page</a> of the conference site.
</p>]]></description>
      <pubDate>Mon, 27 Apr 2009 09:31:32 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Shawn Stratton's Blog: Startups and Working Environments]]></title>
      <guid>http://www.phpdeveloper.org/news/12290</guid>
      <link>http://www.phpdeveloper.org/news/12290</link>
      <description><![CDATA[<p>
<i>Shawn Stratton</i> has an <a href="http://www.shawnstratton.info/startups-and-working-environments">interesting new post</a> to his blog about startups, working environments and a few ideas that could change things a good bit for the average developer's workplace.
</p>
<blockquote>
I've come to
several conclusions after making observations on several articles by
successful founders, thinking back on the startups I've seen and
interacted with, and seeing the common mistakes that have been made
thus far in the businesses and projects I've been involved in and let
me just state that it has been a most interesting journey.
</blockquote>
<p>
He suggests a few things that could make up an "idea workspace" scenario including less (required) work hours and more time off, giving full benefits, promoting an open environment instead of a "cube farm" and the encouragement to always keep learning. He even suggests something that could help make it easier - replacing a lot of the usual means (like books and training courses) with a Kindle loaded and ready to go.
</p>
<blockquote>
I'm hereby making an open call for people to argue with or
contribute to my ideas, let's fix what's wrong with the current
corporations and thereby making our economy and our lifestyles sick
and dying.
</blockquote>
<p>
Want to comment? <a href="http://www.shawnstratton.info/startups-and-working-environments">Head over here</a> and share your thoughts...
</p>]]></description>
      <pubDate>Tue, 07 Apr 2009 10:22:47 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NETTUTS.com: How to Open Zip Files with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/11652</guid>
      <link>http://www.phpdeveloper.org/news/11652</link>
      <description><![CDATA[<p>
The NETTUTS.com site has a <a href="http://feedproxy.google.com/~r/nettuts/~3/umTYCt6xvOg/">new tutorial/screencast</a> posted looking at their method for opening up uploaded zip files with PHP:
</p>
<blockquote>
ThemeForest has a nice feature; It allows the authors to upload zip files containing screenshots of their themes. A script then extracts these files and displays the images accordingly. Though I doubt that the developers used PHP to accomplish this task...that's what we're going to use!
</blockquote>
<p>
They create a simple form with one field - a file input - and write some basic PHP around it. The script ensures that it was a zip file that was uploaded (based on the mime type) and passes it through a ZipArchive class to do the hard work. This class and the rest of the source <a href="http://nettuts.s3.amazonaws.com/165_php_zip/unZip_php.zip">can be downloaded</a> from the site.
</p>]]></description>
      <pubDate>Wed, 31 Dec 2008 12:04:06 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: CakeFest (Buenos Aries) Pre-registration Now Open]]></title>
      <guid>http://www.phpdeveloper.org/news/10152</guid>
      <link>http://www.phpdeveloper.org/news/10152</link>
      <description><![CDATA[<p>
<i>Chris Hartjes</i> has <a href="http://www.littlehart.net/atthekeyboard/2008/05/07/cakefest-hispania/">posted about</a> an event happening in Buenos Aries in December 2008 - <a href="http://www.cakefest.org/">CakeFest</a> (#2):
</p>
<blockquote>
The <a href="http://www.cakefest.org/">CakeFest</a> site as been updated to announce <a href="http://cakefest.org/users/add">pre-registration</a> and other information about CakeFest #2, which will be held in Buenos Aries, Argentina at the beginning of December.
</blockquote>
<p>
As of this post, the speakers haven't been selected (want to give a talk? The <a href="http://www.cakefest.org/proposals/add">Call for Papers</a> is still open through June 13th, 2008!) but you can find out more <a href="http://www.cakefest.org/pages/about">about the conference</a> and the <a href="http://www.cakefest.org/pages/location">location</a> on the conference website.
</p>]]></description>
      <pubDate>Fri, 09 May 2008 10:28:37 -0500</pubDate>
    </item>
  </channel>
</rss>

