<?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>Fri, 24 May 2013 11:33:36 -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[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[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[phpAspect: New release of APDT]]></title>
      <guid>http://www.phpdeveloper.org/news/12560</guid>
      <link>http://www.phpdeveloper.org/news/12560</link>
      <description><![CDATA[<p>
As mentioned in <A href="http://phpaspect.blogspot.com/2009/05/new-release-of-apdt.html">this new post</a> to the phpAspect blog, there's a new version of the <A href="http://apdt.googlecode.com/">Aspect PHP Development Toolkit</a> that's been released.
</p>
<blockquote>
The Aspect PHP Development Tools (APDT) project provides Eclipse platform based tool support for AOSD with PHP. Our goal is to deliver a user experience that is consistent with the PHP Development Tools (PDT) when working with PHPAspect projects and resources. This plugin provides an integration layer between the PHPAspect weaver, runtime and Eclipse/PDT extension points.
</blockquote>
<p>
<A href="http://code.google.com/p/apdt/">The Google Code page</a> for the project has links to more information on the project and, of course, links to the latest downloads.
</p>]]></description>
      <pubDate>Mon, 25 May 2009 12:37:54 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[William Candillon's Blog: The new release of phpAspect is coming soon]]></title>
      <guid>http://www.phpdeveloper.org/news/6909</guid>
      <link>http://www.phpdeveloper.org/news/6909</link>
      <description><![CDATA[<p>
On <a href="http://wcandillon.blogspot.com/2006/12/new-release-of-phpaspect-is-coming.html">his blog</a>, <i>William Candillon</i> mentions an upcoming release of his apsect-based framework for PHP - phpAspect.
</p>
<blockquote>
I have two weeks of holidays very soon, there will be dedicated to the release of phpAspect. Basically, I need to clean up some piece of code and finish to write the documentation.
</blockquote>
<p>
Keep an eye on <a href="http://code.google.com/p/phpaspect/">the project's page</a> (on the Google Code Hosting service) for the update.
</p>]]></description>
      <pubDate>Mon, 18 Dec 2006 07:23:40 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Guilherme Blanco's Blog: Transparent PHP AOP]]></title>
      <guid>http://www.phpdeveloper.org/news/5936</guid>
      <link>http://www.phpdeveloper.org/news/5936</link>
      <description><![CDATA[<p>
<i>Guilherme Blanco</i> has submitted a note about a project he's been working on, especially pertinent due to some of the discussion flying around on the subject - his <a href="http://blog.bisna.com/archives/19">Transparent PHP AOP</a> project.
</p>
<blockquote>
<p>
My AOP package implements this magic with PHP code in a transparent way. This means that the original code does not need to be altered in a special way to add or remove the aspects. It is only necessary to add a comment line to define the location of the pointcuts.
</p>
<p>
This package is actually a smart caching compiler. It preprocesses the original code to locate the pointcuts. Then it generates a new version that may include the code that implements the aspects that I want to enable.
</p>
</blockquote>
<p>
In <a href="http://blog.bisna.com/archives/19">his blog entry</a>, there are links to the package downloads and the official manual to help get you started as well as more details on some of the functionality behind the magic.
</p>]]></description>
      <pubDate>Wed, 02 Aug 2006 06:27:49 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[William Candillon's Blog: Using XML Representations of a PHP parse Tree]]></title>
      <guid>http://www.phpdeveloper.org/news/5540</guid>
      <link>http://www.phpdeveloper.org/news/5540</link>
      <description><![CDATA[<p>
In <a href="http://wcandillon.blogspot.com/2006/06/using-xml-representations-of-php-parse.html">his new post</a> on "Yet Another PHP Blog" (a blog documenting his participation in Google's Summer of Code), <i>William Candillon</i> talks about some issues he had when working on his aspect-oriented framework.
</p>
<quote>
<i>
The original PHP compiler doesn't use <a href="http://en.wikipedia.org/wiki/Abstract_syntax_tree">AST</a> representation of a source code so in the previous versions of phpAspect I had to fill the php grammar with my own AST constructions. It was a painful job and moreover I had to do it in each major version of PHP. For this new version, I'm using the <a href="http://yaxx.sourceforge.net/">yaxx</a> project written by Dr. <a href="http://www.cs.toronto.edu/%7Eyijun/">Yijun Yu</a>. The yaxx tool is a yacc skeleton which build an xml ast representation of a source code according to his grammar.
</i>
</quote>
<p>
He <a href="http://wcandillon.blogspot.com/2006/06/using-xml-representations-of-php-parse.html">includes two images</a>, one showing the simple class code and the other showing the tree that's obtained from the XML generated by the yaxx tool for that class structure.
</p>]]></description>
      <pubDate>Thu, 08 Jun 2006 05:54:50 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sebastian Bergmann's Blog: AspectPHP]]></title>
      <guid>http://www.phpdeveloper.org/news/5010</guid>
      <link>http://www.phpdeveloper.org/news/5010</link>
      <description><![CDATA[As was mentioned in <a href="http://www.phpdeveloper.org/news/4833">one of his previous blog posts</a>, <i>Sebastian Bergmann</i> has been working up his own PHP version of an aspect-oriented framework. According to <a href="http://www.sebastian-bergmann.de/blog/archives/589-AspectPHP.html">this new post</a>, he's already done some work on <a href="http://www.sebastian-bergmann.de/AspectPHP/">the project</a> and has created a page with more information.
<p>
<quote>
<i>
As I wrote earlier, I am not satisfied with the <a href="http://www.sebastian-bergmann.de/blog/archives/573-Current-State-of-AOP-for-PHP.html">Current State of AOP for PHP</a> and started to work on <a href="http://www.sebastian-bergmann.de/AspectPHP/">AspectPHP</a> a while ago. Today I am going to share my ideas on the subject.
<p>
What sets AspectPHP apart from other implementations of <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">Aspect-Oriented Programming</a> is its simplicity: aspects are plain PHP classes that declare <a href="http://en.wikipedia.org/wiki/Pointcut">pointcuts</a> using <a href="http://en.wikipedia.org/wiki/Annotation">annotations</a>.
</i>
</quote>
<p>
He <a href="http://www.sebastian-bergmann.de/blog/archives/589-AspectPHP.html">gives an example</a> of this kind of functionality, including a bit of code to illustrate. The example logs all method calls and, in this case, simply outputs them to the browser.
<p>
Unfortunately, he also mentions that, at this time, he doesn't have any code for the framework that he can release, but you can check out <a href="http://www.sebastian-bergmann.de/AspectPHP/">the site he's created</a> for more information.]]></description>
      <pubDate>Mon, 20 Mar 2006 06:54:17 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Sebastian Bergmann's Blog: Current State of AOP for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/4833</guid>
      <link>http://www.phpdeveloper.org/news/4833</link>
      <description><![CDATA[<i>Sebastian Bergmann</i> has posted a <a href="http://www.sebastian-bergmann.de/blog/archives/573-Current-State-of-AOP-for-PHP.html">current state of AOP for PHP</a> summary on his blog today, a look at a few resources and an addition of one of his own.
<p>
<quote>
<i>
I know about four existing approaches to faciliate Aspect-Oriented Programming with the PHP Programming Language:
<ul>
<li><a href="http://www.phpaspect.org/">PHPAspect</a>
<li><a href="http://www.aophp.net/">Aspect-oriented PHP</a>
<li><a href="http://www.cs.toronto.edu/~yijun/aspectPHP/">aspectPHP</a>
<li><a href="http://pear.php.net/pepr/pepr-proposal-show.php?id=315">AOP Library for PHP</a>
</ul>
</i>
</quote>
<p>
But, as was previously mentioned, he's not happy with the current implementations, so he's <a href="http://www.sebastian-bergmann.de/blog/archives/573-Current-State-of-AOP-for-PHP.html">working up his own</a> - AspectPHP...]]></description>
      <pubDate>Mon, 13 Feb 2006 07:18:24 -0600</pubDate>
    </item>
  </channel>
</rss>
