<?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>Mon, 20 May 2013 17:14:46 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPMaster.com: Explore Aspect Oriented Programming with CodeIgniter, Part 3]]></title>
      <guid>http://www.phpdeveloper.org/news/18402</guid>
      <link>http://www.phpdeveloper.org/news/18402</link>
      <description><![CDATA[<p>
PHPMaster.com is back with the <a href="http://phpmaster.com/explore-aspect-oriented-programming-with-codeigniter-3/">third part</a> of their series looking at Aspect Oriented Programming with the <a href="http://codeigniter.com">CodeIgniter</a> framework. (<a href="http://phpmaster.com/explore-aspect-oriented-programming-with-codeigniter-1/">Part 1</a>, <a href="http://phpmaster.com/explore-aspect-oriented-programming-with-codeigniter-2/">Part 2</a>)
</p>
<blockquote>
In the previous parts of the series we learned about AOP concepts and the need for using AOP in large scale projects and I introduced CodeIgniter's hooks as a convenient mechanism for creating AOP functionality from scratch. In this part I'll show you how to use both XML and comment-based techniques to create custom AOP functionality when a dedicated AOP framework is not available.
</blockquote>
<p>
They start with the XML configuration that defines a few aspects and pointcuts for the application. This is then read in via the "applyBeforeAspects" and the aspects that should be executed first are extracted, loaded and run. Following this, they take the other approach - based on docblock comments - and pull in the comments (the @before and @after tags) and load/execute the aspects that way instead.
</p>]]></description>
      <pubDate>Fri, 24 Aug 2012 11:56:29 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Explore Aspect Oriented Programming with CodeIgniter, Part 2]]></title>
      <guid>http://www.phpdeveloper.org/news/18377</guid>
      <link>http://www.phpdeveloper.org/news/18377</link>
      <description><![CDATA[<p>
In <a href="http://phpmaster.com/explore-aspect-oriented-programming-with-codeigniter-2/">this new post</a> to PHPMaster.com they continue their look at aspect-oriented programming with <a href="http://codeigniter.com">CodeIgniter</a>. In <a href="http://phpdeveloper.org/news/18346">part one</a> they introduced some of the fundamentals of AOP and in this new article, they dig deeper with more practical examples.
</p>
<blockquote>
In the previous part of this series we learned what Aspect Oriented Programming (AOP) is and the meaning of important AOP terminology. In this part I'll explain why we need AOP using practical examples and how to add AOP behavior to your PHP application using the CodeIgniter framework.
</blockquote>
<p>
They start with a look at a few pieces of functionality that could cut across multiple parts of the application like logging or authentication/authorization. They show how to use the "hooks" feature of CodeIgniter to implement the AOP proxy class generation, executing pre- and post-controller.
</p>]]></description>
      <pubDate>Mon, 20 Aug 2012 09:13:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Explore Aspect Oriented Programming with CodeIgniter, Part 1]]></title>
      <guid>http://www.phpdeveloper.org/news/18346</guid>
      <link>http://www.phpdeveloper.org/news/18346</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new tutorial posted that wants to guide you through the world of aspect-oriented programming <a href="http://phpmaster.com/explore-aspect-oriented-programming-with-codeigniter-1/">with a CodeIgniter application</a> as a base.
</p>
<blockquote>
Have you ever heard of Aspect Oriented Programming (AOP) before? It's a widely used concept in developing enterprise level systems, although it hasn't seen much use in PHP. I'm going to use this article as an opportunity to introduce PHP developers to AOP. This tutorial will be delivered to you as a 3-part series. In this part I'll explain the concepts of AOP. In part 2 I'll show you the practical uses of AOP and creating a AOP rules structure. Finally, I'll show you how to integrate AOP functionality using CodeIgniter in part 3.
</blockquote>
<p>
Since this is just <a href="http://phpmaster.com/explore-aspect-oriented-programming-with-codeigniter-1/">part one</a>, they mainly focus on some of the key points of AOP like aspects, advice, jointpoint and pointcuts. For each, there's brief descriptions for the types and, for some, code samples showing the idea in action.
</p>]]></description>
      <pubDate>Fri, 10 Aug 2012 11:46:58 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Marcelo Gornstein's Blog: Writing PHP applications with Doctrine2 as ORM and Ding as DI container]]></title>
      <guid>http://www.phpdeveloper.org/news/17469</guid>
      <link>http://www.phpdeveloper.org/news/17469</link>
      <description><![CDATA[<p>
In a recent post <i>Marcelo Gornstein</i> takes a look at <a href="http://marcelog.github.com/articles/php_applications_with_doctrine2_orm_and_ding_di_container.html">using dependency injection with Doctrine2</a> using his <a href="http://marcelog.github.com/Ding">Ding</a> container.
</p>
<blockquote>
This article will show how we can develop software in php with a nifty design and architecture, and very much like other languages like java, using an ORM and an AOP, DI, Events container. I will assume you've read (or at least took a quick look) at <a href="http://marcelog.github.com/articles/creating_php_cli_standalone_portable_applications_with_pear_dependencies.html">this article</a> that explains the tree layout used throughout the code, and that you have some basic knowledge of <a href="http://www.doctrine-project.org/">Doctrine2</a> and used it before on your own.
</blockquote>
<p>
He starts with the result - an easy to use, self-contained (and decoupled) system for accessing the Doctrine2 instance. It's event-driven and uses <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">Aspect-oriented programming</a> to mange interactions between components (or as he calls them "beans"). Code is included for the entire process for a logger, the User entity, entity manager, user repository and transactional aspect. You can find the complete source for his example <a href="https://github.com/marcelog/Doctrine2-Ding-Example">on his github account</a>.
</p>]]></description>
      <pubDate>Tue, 31 Jan 2012 08:59:18 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Matthew Weier O'Phinney's Blog: Aspects, Filters, and Signals, Oh, My!]]></title>
      <guid>http://www.phpdeveloper.org/news/15718</guid>
      <link>http://www.phpdeveloper.org/news/15718</link>
      <description><![CDATA[<p>
<i>Matthew Weier O'Phinney</i> has a new <a href="http://weierophinney.net/matthew/archives/251-Aspects,-Filters,-and-Signals,-Oh,-My!.html">in-depth post</a> to his blog that looks at a few features of <a href=http://en.wikipedia.org/wiki/Aspect-oriented_programming">Aspect Oriented Programming</a> and what technologies are out there that help support it right now. He mainly focuses on the features of the <a href="http://lithify.me/">Lithium</a> framework because of its filtering techniques.
</p>
<blockquote>
Last month, during <a href="http://phpadvent.org/">PHP Advent</a>, <A href="http://ohloh.net/accounts/gwoo">gwoo</a> wrote an interesting post on <a href="http://phpadvent.org/2010/aspect-oriented-design-by-garrett-woodworth">Aspect-Oriented Design</a>, or Aspect Oriented Programming (AOP) as it is more commonly known. The article got me to thinking, and revisiting what I know about AOP, Intercepting Filters, and Signal Slots -- in particular, what use cases I see for them, what the state of current PHP offerings are, and where the future may lie.
</blockquote>
<p>
He gives a base class to help make things a bit clearer for the rest of the post - a simple Foo instance that uses a Listener interface to "doSomething". <i>Matthew</i> also talks about intercepting filters (extracting things like logging/debugging out of the code and put on its own) and signal slots. For both, he gives examples of how Lithium handles them and some of his opinions on the methods. He points out a few concerns that he has for the current state of AOP in PHP (frameworks) and suggests that, if you haven't looked at these ideas, you do so sooner rather than later.
</p>]]></description>
      <pubDate>Tue, 11 Jan 2011 10:24:08 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Hartjes' Blog: Expand your programming mind: filters in Lithium]]></title>
      <guid>http://www.phpdeveloper.org/news/14198</guid>
      <link>http://www.phpdeveloper.org/news/14198</link>
      <description><![CDATA[<p>
On of the frameworks rising up through the ranks is <a href="http://rad-dev.org/lithium/wiki">Lithium</a> (created by some of the original <a href="http://cakephp.org">CakePHP</a> developers). In <a href="http://www.littlehart.net/atthekeyboard/2010/03/16/expand-your-programming-mind-filters-in-lithium">his latest post</a> <i>Chris Hartjes</i> looks at the framework and a particularly useful feature it includes - filters.
</p>
<blockquote>
As far as I can tell, Lithium is trying it's hardest to be fast, lightweight, and use all the features that PHP 5.3 has to offer. [...] I want to talk about something that I feel is a very underrated part of Lithium, the ability to define filters. This is a concept that you find in <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">Aspect-oriented programming</a>, and one that I imagine most programmers have never considered. Here's why I think it's a big deal.  
</blockquote>
<p>
The filters in Lithium allow you to use code from other classes without having to actually extend them. As <i>Nate Abele</i> says in one of the comments on the post:
</p>
<blockquote>
While not having to extend classes or dig inside core functionality is certainly pretty central, the way I've been explaining it is that it's important because classes no longer need to know anything about each other in order to be integrated. 
</blockquote>
<p>
You can find out more about the Lithium project (and RAD-Dev) on the <a href="http://rad-dev.org/lithium/wiki">project's wiki</a>.
</p>]]></description>
      <pubDate>Wed, 17 Mar 2010 10:54:58 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: phpAspect Project Revived]]></title>
      <guid>http://www.phpdeveloper.org/news/7967</guid>
      <link>http://www.phpdeveloper.org/news/7967</link>
      <description><![CDATA[<p>
If you've been looking for more information on the phpAspect project but have been sad to note it having fallen by the wayside, you'll be happy to know that <i>Willliam Candillon</i> is alive and well and so is the project!
</p>
<blockquote>
The first news concerns the windows developers, the windows build of <a href="http://pecl.php.net/package/Parse_Tree">PHP_Parse_Tree</a> is finally available (<a href="http://phpaspect.org/parse_tree/php_parse_tree.dll">click here to download</a>)! [...] The second news is that my proposal "<a href="http://code.google.com/soc/google/appinfo.html?csaid=C71130166CAA177E">phpAspect eclipse plugin</a>" for the <a href="http://code.google.com/soc/">Google Summer of Code 2007</a> under the mentoring of Gilles Vanwormhoudt has been accepted!
</blockquote>
<p>
Be sure to keep an eye on <a href="http://phpaspect.blogspot.com/">the project's website</a> and their <a href="http://code.google.com/soc/google/appinfo.html?csaid=C71130166CAA177E">Summer of Code</a> page to keep up with the latest.
</p>]]></description>
      <pubDate>Mon, 04 Jun 2007 15:58:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Willliam Candillon's Blog: phpAspect on Tour]]></title>
      <guid>http://www.phpdeveloper.org/news/7153</guid>
      <link>http://www.phpdeveloper.org/news/7153</link>
      <description><![CDATA[<p>
<i>Willliam Candillon</i> has a <a href="http://phpaspect.blogspot.com/2007/01/phpaspect-on-tour.html">(very) quick note</a> for all of the phpAspect fans out there:
</p>
<blockquote>
I will be performing a talk about phpAspect at <a href="http://www.solutionslinux.fr/en/index.php">Solution Linux 2007</a>, the 31th january 2007 and a <a href="http://www.fosdem.org/2007/lightningtalks">lightning talk</a> at <a href="http://www.fosdem.org/2007">FOSDEM</a> next month. I'm looking forward to collect your feedbacks, questions and suggestions about phpAspect!
</blockquote>
<p>
The <a href="http://www.solutionslinux.fr/en/index.php">Solution Linux 2007</a> conference is happening in Paris from the 30th of January to the 1st of February. <a href="http://www.fosdem.org/2007/">FOSDEM</a> will be in Brussels, Belgium and is happening the 24th and 25th of February.
</p>]]></description>
      <pubDate>Tue, 23 Jan 2007 14:46:00 -0600</pubDate>
    </item>
  </channel>
</rss>
