<?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, 19 Jun 2013 01:38:44 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[NetTuts.com: Aspect-Oriented Programming in PHP with Go!]]></title>
      <guid>http://www.phpdeveloper.org/news/19439</guid>
      <link>http://www.phpdeveloper.org/news/19439</link>
      <description><![CDATA[<p>
In <a href="http://net.tutsplus.com/tutorials/php/aspect-oriented-programming-in-php-with-go/">this new tutorial</a> on NetTuts.com today they introduce you to <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">aspect-oriented programming</a> (AOP) in PHP through the use of the <a href="https://github.com/lisachenko/go-aop-php">Go! PHP library</a>.
</p>
<blockquote>
The concept of Aspect-Oriented Programming (AOP) is fairly new to PHP. There's currently no official AOP support in PHP, but there are some extensions and libraries which implement this feature. In this lesson, we'll use the <a  href="https://github.com/lisachenko/go-aop-php">Go! PHP library</a> to learn AOP in PHP, and review when it can be helpful.
</blockquote>
<p>
They start with a brief history of AOP in general and a basic vocabulary of some of the common terms like "point-cut", "aspect" and "cross-concern." They briefly look at some of the other PHP tools for AOP, but then help you get Go! up and running. Sample code is included showing how to integrate it into your project and, more practically, create a logging system that can be used as an aspect.
</p>
Link: http://net.tutsplus.com/tutorials/php/aspect-oriented-programming-in-php-with-go]]></description>
      <pubDate>Wed, 10 Apr 2013 10:56:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[TechFlirt: Object Oriented Programming in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19400</guid>
      <link>http://www.phpdeveloper.org/news/19400</link>
      <description><![CDATA[<p>
If you've been writing mostly procedural PHP code and are looking to make that "next step" up to working with objects and classes (OOP), you should check out <a href="http://www.techflirt.com/tutorials/oop-in-php/index.html">this detailed tutorial</a> introducing you to some of the primary OOP-in-PHP concepts.
</p>
<blockquote>
Object oriented programming (OOP) was first introduced in php4. Area for oop in php version 4 was not very vast. There were only few features  available in php4. Major concept of the object oriented programming in PHP is introduced from version 5(we commonly known as php5). [...] But still in php5 object model is designed nicely. If you have good understanding of OOP then you can create very good architecture of your php application.  You only need to know some of the basic principles of object oriented programming and how to implement that concept of oop in php. 
</blockquote>
<p>
While the wording is slightly odd in some spots (English doesn't seem to be the author's first language), it's' a great introduction to the major OOP-related topics including:
</p>
<ul>
<li><a href="http://www.techflirt.com/tutorials/oop-in-php/classes-and-objects-php.html">Classes and Objects</a>
<li><a href="http://www.techflirt.com/tutorials/oop-in-php/visibility-in-php-classes.html">Visibility in PHP</a>
<li><a href="http://www.techflirt.com/tutorials/oop-in-php/abstract-classes-interface.html">Abstract classes and interfaces</a>
<li><a href="http://www.techflirt.com/tutorials/oop-in-php/object-cloning-in-php.html">Object cloning</a>
<li><a href="http://www.techflirt.com/tutorials/oop-in-php/php-method-chaining.html">Method chaining</a>
</ul>
<p>
Each section also has downloadable code to go along with the examples, making it easier to follow and test out the actual scripts.
</p>
Link: http://www.techflirt.com/tutorials/oop-in-php/index.html]]></description>
      <pubDate>Tue, 02 Apr 2013 13:05:23 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPEasy.co.uk: Object Orientation Basics part 4 - Implementing CRUD methods]]></title>
      <guid>http://www.phpdeveloper.org/news/18328</guid>
      <link>http://www.phpdeveloper.org/news/18328</link>
      <description><![CDATA[<p>
PHPEasy.co.uk continues their series looking at some of the basics of Object-Oriented Programming (OOP) in PHP with <A href="http://phpeasy.co.uk/tutorial-object-orientation-basics-part-4-implementing-crud-methods/">part four</a> showing how to implement CRUD methods (Create/Read/Update/Delete) on a database connection.
</p>
<blockquote>
In the last tutorial in this beginners series we discussed using PDO to connect to a MySQL database. Following on from that tutorial we are going to improve the Guitar class we made by adding some basic CRUD methods so that our class can interact with our database using PDO.
</blockquote>
<p>
He brings back the same class structure and shows how to take a "Guitar" object, create a connection via a "conn()" method and use the getters/setters to assign values for saving, selecting, deleting and updating the database's records.
</p>]]></description>
      <pubDate>Tue, 07 Aug 2012 12:23:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Aspect-Oriented Programming in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17945</guid>
      <link>http://www.phpdeveloper.org/news/17945</link>
      <description><![CDATA[<p>
On the NetTuts.com (Plus) site there's a new tutorial focusing on <a href="http://net.tutsplus.com/tutorials/php/aspect-oriented-programming-in-php/">aspect-oriented programming in PHP</a>, a shift from the usual methods of development with the goal of "crosscutting" your classes/objects by weaving in extra functionality. Their examples of this method use the <a href="http://flow3.typo3.org/">FLOW3</a> framework.
</p>
<blockquote>
All modern frameworks (including FLOW3) push a lot of patterns into the software stack that do a great job at separating the concerns of your business logic; among them the famous MVC that is separating your logic into different layers. However, an application is not only built on business logic alone. As it grows, you may want to implement additional services, features, plugins or plugins of plugins. You surely don't want this stuff in your business logic! But what are your options?
</blockquote>
<p>
For their example, they show how to implement a logger across your classes, taking it out of the actual code and implementing it in an aspect (at the "pointcut") by "weaving" it into a DocBlock comment with special annotations. They help you get the FLOW3 framework set up and show you how to "kickstart" a new project and work with its controllers and resources. They show you how to implement the Logging aspect and how to define it in your code (and where it caches the requests).
</p>]]></description>
      <pubDate>Fri, 11 May 2012 09:34:18 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Dennis Hotson's Blog: PHP Object Oriented Programming Reinvented]]></title>
      <guid>http://www.phpdeveloper.org/news/15177</guid>
      <link>http://www.phpdeveloper.org/news/15177</link>
      <description><![CDATA[<p>
<i>Dennis Hotson</i> has a new post to his Tumblr blog about what he calls <a href="http://dhotson.tumblr.com/post/1167021666/php-object-oriented-programming-reinvented">PHP object-oriented programming reinvented</a> - a chunk of code he's created that lets you build classes out of objects.
</p>
<blockquote>
It's tentatively called "PHP Object Oriented Programming Reinvented". Although it turns out the acronym is kind of unfortunate. I'm still working on that... The main idea is that classes aren't really very special at all, they're just objects like everything else. They don't even have names.. you give your class a name by giving the variable it's assigned to a name.
</blockquote>
<p>
He includes a code snippet that shows the creation of a sample class (the "class" class) and extend it with a new class of "animal"....and then extend that with a class for a "dog". You can take a look at the full code for the method <a href="http://gist.github.com/591139">here</a>.
</p>]]></description>
      <pubDate>Thu, 23 Sep 2010 12:43:39 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Brandon Savage's Blog: 5 (Good) Lessons The Government Teaches Us About Object-Oriented Programming]]></title>
      <guid>http://www.phpdeveloper.org/news/13617</guid>
      <link>http://www.phpdeveloper.org/news/13617</link>
      <description><![CDATA[<p>
<i>Brandon Savage</i> has taken some of the good practices in object oriented application development and <a href="http://www.brandonsavage.net/five-good-lessons-the-government-teaches-us-about-object-oriented-programming/">related them</a> to some of the things that the government can teach you about them:
</p>
<blockquote>
However, the ubiquity of governments around the world also gives us a unique opportunity to learn some lessons from them as developers, particularly about principles of object oriented programming. Governments serve as perfet object lessons (pun intended), demonstrating some of the good, the bad, and the ugly object-oriented practices we see.
</blockquote>
<p>
He looks at five topics - abstraction, encapsulation, implementation of dumb objects, decoupling and the concept of "one class, one responsibility".
</p>]]></description>
      <pubDate>Wed, 02 Dec 2009 12:11:55 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Brandon Savage's Blog: Q&A: Answering Some Questions About Object-Oriented Programming]]></title>
      <guid>http://www.phpdeveloper.org/news/13457</guid>
      <link>http://www.phpdeveloper.org/news/13457</link>
      <description><![CDATA[<p>
<i>Brandon Savage</i> has <a href="http://www.brandonsavage.net/qa-answering-some-questions-about-object-oriented-programming/">posted the answers</a> to some questions that were raised by a <a href="http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/">previous post</a> of his on object-oriented development and some best practices. In this new post, he answers the questions:
</p>
<ul>
<li>"Often times when a developer gives each object only one responsibility, they tightly couple objects together." Can you explain?
<li>I do not know about dependency injection '" do you have any links that do not require subscription?
<li>Can you please explain 'one object '" one job' concept?
</ul>
<p>
Each question is answered, sometimes with code included, to help resolve any confusion about how to correct use object oriented practices in your applications.
</p>]]></description>
      <pubDate>Fri, 30 Oct 2009 09:20:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ibuildings Blog: Migrating a dev team to an OO team (Part 1)]]></title>
      <guid>http://www.phpdeveloper.org/news/13174</guid>
      <link>http://www.phpdeveloper.org/news/13174</link>
      <description><![CDATA[<p>
On the Ibuildings blog today <i>Dennis-Jan Broerse</i> has posted the <a href="http://www.ibuildings.com/blog/archives/1567-Migrating-a-dev-team-to-an-OO-team-Part-1.html">first part of a series</a> he's doing on moving a development team up into the world of object oriented programming.
</p>
<blockquote>
Being a trainer for Ibuildings, I noticed that the main topic of almost every course plan for customers is object oriented programming. So OO is popular and demand for it is rising. However, while PHP support for OO has been present for a couple of years still many companies that I visit are maintaining and developing procedural applications.
</blockquote>
<p>
He talks some about how he tries to promote the OOP way of doing things and defines one of the major hindrances for companies to try to move their development towards it - time. The next part of his series will look at ways to help with this. 
</p>]]></description>
      <pubDate>Mon, 07 Sep 2009 13:28:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Blue Parabola Blog: Objectively Oriented]]></title>
      <guid>http://www.phpdeveloper.org/news/11971</guid>
      <link>http://www.phpdeveloper.org/news/11971</link>
      <description><![CDATA[<p>
On the Blue Parabola blog, <i>Matthew Turland</i> <a href="http://blueparabola.com/blog/objectively-oriented">takes a look</a> at object-oriented programming and what core concepts lie at its heart.
</p>
<blockquote>
What is <a href="http://en.wikipedia.org/wiki/Object-oriented_programming">object-oriented programming</a>? The acronym OOP has become a bit of a buzzword in the <a href="http://en.wikipedia.org/wiki/History_of_programming_languages#The_1990s:_the_Internet_age">current age of programming</a>, to the point where the waters of its definition have become rather murky. [...] PHP <a href="http://michaelkimsal.com/blog/php-is-not-object-oriented/">may not be object-oriented</a>, but from a purist perspective, neither is Java. What do I mean by "purist perspective?" Plain and simple: everything is either an <a href="http://en.wikipedia.org/wiki/Object_(computing)#Objects_in_object-oriented_programming">object</a> or a <a href="http://en.wikipedia.org/wiki/Message_passing">message</a> being passed between objects (where message parameters are also objects). 
</blockquote>
<p>
He mentions one of the first languages to support objects (<a href="http://en.wikipedia.org/wiki/Simula">Simula</a>) and the four fundamental concepts that would make a language truly OOP - abstraction, inheritance, encapsulation, polymorphism. Its his opinion, though, that while its good for languages to adhere to these four principles as much as they can, discussions about how well they adhere to them is usually just "spinning your wheels" and don't have much use.
</p>]]></description>
      <pubDate>Wed, 18 Feb 2009 09:31:30 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Michael Kimsal's Blog: PHP is not object oriented!]]></title>
      <guid>http://www.phpdeveloper.org/news/11935</guid>
      <link>http://www.phpdeveloper.org/news/11935</link>
      <description><![CDATA[<p>
One complaint that <i>Michael Kimsal</i> has about the PHP language - <a href="http://michaelkimsal.com/blog/php-is-not-object-oriented/">"PHP is *not* object oriented"</a>:
</p>
<blockquote>
Goodness.  I like PHP.  I use it a lot.  I've been using it since early 1996.  I'm Zend Certified, have done billion dollar ecommerce projects in PHP, and like to think I know a little bit about PHP. It is *NOT* "object oriented".  I wish people would quit saying it.  Perhaps there's a need to impress non PHP people, or to try to get across the idea that PHP supports objects.  Maybe that's fair, but I don't think so.
</blockquote>
<p>
His <a href="http://michaelkimsal.com/blog/php-is-not-object-oriented/">reasoning</a> is that, despite the phrase "object oriented" being applied to PHP, its functionality does not hinge on objects. He suggests a "more correct" term to replace it - "object capable". This shows that PHP can use objects but, because of its procedural roots, doesn't have to.
</p>]]></description>
      <pubDate>Thu, 12 Feb 2009 08:44:10 -0600</pubDate>
    </item>
  </channel>
</rss>
