Aspect Oriented Programming also known as AOP allows you to separate your cross cutting concerns from core business logic and allows you to focus on business logic related tasks. All the additional repeating functionality can be assigned to the AOP framework and it will automatically do the repetitive tasks at specified points at the function flow.
In this article I am going to provide you the necessary resources for learning aspect oriented programming from scratch. Article will be mainly focused on PHP and Java related resources will be provided later.
Aspect Oriented Programming with Codeigniter
Recently I wrote an Article series on implementing AOP with Codeigniter framework for www.phpmaster.com. I think it will be a good starting point for beginners in AOP before going to more advanced tutorials and frameworks. I suggest you to read the whole series and get the basic understanding of Aspect Oriented Programming concepts.
Part 1 will provide an Introduction to AOP using basic examples. Then AOP terminology is explained in detail with practical examples. Here you can learn about AOP terms such as Aspect, Advice, Pointcut , Joinpoints. In the last section you can learn about AOP advice types such as Before,After,Around.
Read Full Article
Part 2 will start with discussing Cross cutting concerns in real projects and the practical usage of AOP. Then the process for of AOP is explained. Finally you can learn how to use Codeigniter Hooks to implement basic Aspect Oriented Programming into your project.
Read Full Article
Part 3 will start on explaining the XML based AOP configuration and Document Comments Based Configuration. Here you will learn how to create new AOP rules structure and implement with Codeigniter.
Read Full Article
Advanced AOP Articles for PHP
There’s a new player in town, and he brought new toys: The PHP World welcomes FLOW3, an enterprise application framework written and backed by the community of the TYPO3 CMS. FLOW3 can be used as standalone full-stack framework for your applications. It’s interesting, because it introduces some concepts of software development that haven’t been adapted to PHP before.
Among these new concepts is “Aspect Oriented Programming”. We will have a look on the theory of the pattern, and will set up a basic FLOW3 Application and weave in our own aspect!
Aspect-Oriented Programming (AOP) is a programming paradigm which complements Object-Oriented Programming (OOP) by separating concerns of a software application to improve modularization. The separation of concerns (SoC) aims for making a software easier to maintain by grouping features and behavior into manageable parts which all have a specific purpose and business to take care of.
OOP already allows for modularizing concerns into distinct methods, classes and packages. However, some concerns are difficult to place as they cross the boundaries of classes and even packages. One example for such a cross-cutting concern is security: Although the main purpose of a Forum package is to display and manage posts of a forum, it has to implement some kind of security to assert that only moderators can approve or delete posts. And many more packages need a similar functionality for protect the creation, deletion and update of records. AOP enables you to move the security (or any other) aspect into its own package and leave the other objects with clear responsibilities, probably not implementing any security themselves.
Object oriented approach has been popular for a number of years. Its advantages can hardly be visible within short-term projects, yet any major long-term one simply cannot do without it. Object-oriented programming languages provide the tools necessary to present business logic in a demonstrable form. Today UML Class diagram (http://en.wikipedia.org/wiki/Unified_Modeling_Language) does suggest itself even on the stage of developing the system logic.
Advanced AOP Articles for Java
Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. Aspects enable the modularization of concerns such as transaction management that cut across multiple types and objects. (Such concerns are often termed crosscutting concerns in AOP literature.)
One of the key components of Spring is the AOP framework. While the Spring IoC container does not depend on AOP, meaning you do not need to use AOP if you don’t want to, AOP complements Spring IoC to provide a very capable middleware solution.
Aspect Oriented Programming (AOP) is a promising new technology for separating crosscutting concerns that are usually hard to do in object-oriented programming. This article aims to be an introductory point to the basic concepts associated with this new paradigm.
Aspect Oriented Programming (AOP) refers to the programming paradigm which isolates secondary or supporting functions from the main program’s business logic. AOP is a promising technology for separating crosscutting concerns, something usually hard to do in object-oriented programming. The application’s modularity is increased in that way and its maintenance becomes significantly easier.