Friday, August 20, 2010

Introduction Enterprise Application Development in PHP

In all my years of PHP Application development, one of the major questions I faced is how to properly plan out, develop and manage a large scale PHP based application projects. There was a time not so long ago that evens the idea of using a “scripting” language such as PHP to build large scale applications was only a dream. However, I believe PHP has matured enough now to be used in real life large scale application projects. However, most of us who has used PHP for the past 5 years know that PHP is still largely a functional or procedural programming language. However ability to code in 100% solid Object Oriented concepts is a must if you want to succeed in any large scale application. So, the question of how to properly use PHP to use large scale applications is still largely an open question.

My intension here is to share my own experience with you and to share my views on enterprise level application development in PHP. This is the first of a series of articles that are targeted to provide a wide coverage on this subject. An overview of what will be covered in this series is given below

1. Introduction to Enterprise application development in PHP (This one)
2. Elements and Properties of an large scale application and Application Lifecycle Management
3. How to setup a simple Continues Integration Server for PHP which is one of the major part of ALM
4. Tips to a successful PHP based application design architecture
5. Retrospect

I’m trying to make this a comprehensive learning experience as much as possible. Hence, I’ll be posting real code and command segments on the article. However, please keep in mind that this might NOT be the only or the Best we to develop enterprise applications in PHP, but, it’s another method and a method that has worked for me.

Is PHP enterprise ready? I’ve heard many people ask this question. And truly I believe it is. When it comes to enterprise application development you might think why do we use PHP to develop enterprise level applications? I want to ask you Why NOT? PHP is flexible, scalable, fast ,supports both procedural and Object Oriented programming, has a rich set of inbuilt functions, open source, excellent community support, easy to learn, supported by many high level development tools and IDE’s, and, backed by worlds most renowned web server Apache. So, I think we need to step out of the shell that we stayed for the past 5 or so year, PHP has come a long way since being a simple scripting language and it’s now time to harness its full power and make it a strong competitor in the enterprise level application development arena.

Having said that PHP is not without its cons, one of the biggest draw backs I see in PHP is that it doesn’t have a single governing body to govern and monitor the maturing process of the language. I believe this is evident if we consider the number of frameworks that are available for PHP based programming. PHP doesn’t have a OOP based or MVC based inbuilt API, at its core it’s still largely a functional or procedural language and hence its API is a functional one. This has opened a vacuum that has been filled by numerous none standardized OOP and MVC based frameworks. I think it’s excellent to have so many frameworks; however, the problem is that they don’t honor a common standard. I believe PHP will be a much better platform if PHP’s governing body standardized the OOP and MVC framework structures so people can use them without having to worry about learning a new frame work from scratch from vendor to vendor.

I will not justify or deny the use of PHP in enterprise application further more. If you have read this article up to now, that means you have already decided to use PHP and I’ll take it from there.

Surprisingly, in order to follow this series you don’t have to have a in-depth knowledge in PHP (however, you should have expertise on at least one programming language). The complete Continues Integration (CI) environment will be setup under Windows, although I’m providing you the set of commands, you are required to have a basic understanding on Windows commands and .bat files in order to use them effectively. That’s all we need and we are ready to go.

So keep my blog bookmarked, I’ll be posting the part 2 of this series soon.

4 comments:

  1. a valuable article for me , Keep it up :)

    ReplyDelete
  2. Hey there!!! You have some really great articles! I am trying to learn the best way to build PHP applications. It looks like you have a solid foundation in the concepts behind application development. I was wondering if you have any small projects that I can take a look at to see how you code them. I am just now starting to learn how to write web applications using classes but I know my classes are INCREDIBLY MESSY and without the organization that it needs to become a professional web application. Do you think you could find some app that you did that uses classes. Very advanced stuff but incredibly organized and professional. My email address is d = a = r = g = a = 3 = 3 = @ = g = m = a = i = l = . = COM! I would appreciate it so much!!!! I want to only learn the best ways to do things!!!!

    ReplyDelete
  3. The information you provided regarding PHP is pretty good especially for new developers. I am a Dedicated PHP Developers and it should be useful for me in the future.
    ASP.NET Development Company

    ReplyDelete