PHP for the Enterprise

So you are a PHP developer, and just happy with PHP for you Web application. And beyond the Web applications, what else could be done with PHP? Can you build enterprise applications with PHP?

With the word enterprise, most people associate Java or .NET. And rightly so. Because both J2EE and .NET has enterprise ready features, transactions, Web services, security, versioning and the list goes on.

Can you not  use PHP for such applications? Well you can, thanks to architectural principles such as SOA or WOA (or ROA). With SOA you have the capability to bind to a service that implements what you want and consume that service to get your job done. So your portal or CMS any other form of Web based application implemented in PHP can now leverage the powerful back-end services, either within the organization or across organizations.

PHP was often associated with LAMP or WAMP, where the database was an integral part of the system. But with SOA (or WOA for that matter) there is no need to have your local copy of data any more. Instead of connecting to the local database, you can connect to a service and get your job done. The advantage of using a service over the database is that, the service is capable of providing with value added information. And the opportunities are endless. Many SaaS providers expose Web service interfaces for their services. That enable you to connect your PHP application to a world class CRM, accounting system or  repository management system, rather than building your own.

Now if you have a PHP application, driven by a database, you might be wondering, "am I to drop all the valuable data that I have in my database and go for a service, no way!!!" You are right. Choosing a service out there is an option if you are just starting to develop an application. But if you already have an application and an ocean of data, rather than keeping it to yourself you can be a service provider. As an example, you can expose the data you have as services, and make them available for the wider enterprise, rather than hiding all those valuable data underneath your PHP application.

So what about the enterprise concerns such as security and reliable messaging? What is the best PHP framework that will help you with? What features should you be looking at in such a framework?

If you have security and reliability needs, when consuming or providing your services, then you have to use a comprehensive SOAP stack with WS-Security and WS-Reliable messaging capabilities. WSO2 Web services Framework if the only available solution, but a very good choice at that.

There are comprehensive service interface tooling available, such as wsdl2php tool, that help with connecting to existing services such as SaaS. You could write minimal PHP code to connect to services and get the job done.

If you plan to expose your existing data as services, there is a data services API, that is designed with the PHP developer in mind.

And if you are a REST fan, and do not want SOAP, the REST API would be a very good choice for you.

Comments

Chocolim said…
You cant use a soft typed lenguaje to write enterprise level aplications, large proyect have severals developers, and php will be a nightmare
Unknown said…
@chocolim ... u certainly have no idea what you are talking about!!!
Chocolim said…
Yes i do.

Try debug a large proyect, in php is a nighmare. An error can be a bad writen variable name. It cant be compared with .net or java. I try those all.

That is why the arent any big company that use php for the account managements
Unknown said…
@chocolim: when you're evaluating a particular dynamically typed language after doing years of programming with a statically typed language, skimming through the docs you get this feeling but as you learn to program in according to, say, the PHP way, these become non issues. Here are some more thoughts.
Its not the typednes that screws enterprise level applications up, but the architecture and design principles that we are adhering to. It's always good to check best practices in each and every language/technology. :-)
Chocolim said…
Ok course if you do the right way, you can do it.

The thing is, that if you have a team of 15 programmers, is harder to use, a softtyped lengueje.

For the record, i am in a big company in paraguay, i use php, visualstudio.net, java, and perl, for system that consume 2millon clients in the cell phone network.

It is harder to debug php or perl, when you have a lot of people working, or when you have to debug or evaluate some one else work
inetsolution said…
Its highly informative. I would be visiting your blog hereafter regularly to gather valuable information.