Incredible PHP framework: Symfony

It goes without saying that today’s market offers a wide array of web PHP frameworks that help programmers to develop applications and systems in a fast and easy way, thus considerably “relieving” their life. Among them are such great frameworks as Yii, Codeigniter, Zend, Cake PHP and Symfony. This article is about PHP framework known as Symfony. Starting as a private project for a company that wasn’t satisfied with the existing PHP frameworks, finally it has evolved into one of the most reliable and widely used enterprise PHP frameworks.

Symfony targets at quickening the creation and maintenance of web applications automating common tasks so that developers can focus only on the peculiarities of an application. It can be used for building robust applications in an enterprise context. This means that you have full control over the configuration: from the directory structure to the foreign libraries, almost everything can be customized. To match your enterprise’s development guidelines, Symfony is “packed” with additional tools helping you to test, debug and document your project.

Though there are a few indispensable conditions necessary for its installation: Linux, FreeBSD, Mac OS or Microsoft Windows, and a web server with PHP 5. The current version 1.2 supports only PHP 5.2 or higher, but the previous versions can be run on PHP 5.0 and 5.1 systems. Unfortunately, like many other new, modern frameworks, Symfony lacks support for PHP4, but, on the other hand, it is compatible with almost every RDBMS (Relational Database Management System) and has low performance overheads.

Developers as well as customers both benefit from using this great framework.

Benefits for business:

Business that decides to use Symfony as their PHP development framework can enjoy many benefits. First of all Symfony is heavily documented and easy to configure on most platforms. It is also easy to extend and it is compatible with many existing business libraries, methods and infrastructure making interaction with existing systems relatively easy, and its stability and long term plans make this framework an ideal choice at a business level. It is a project that will be maintained for a long time.

The only requirement is having PHP 5 installed. It doesn’t require a particular database engine, and by using ORM (Object-relational mapping) it keeps the database and data layers independent. All of this means no headaches for the IT or hosting help desk teams when the development environment is being configured.

Using Symfony will help your business develop better quality web applications, with testable and reusable code that can be adapted to the changing requirements of a business environment. And all this at no cost, since it’s an open source project running on open source technologies. For all those reasons, adapting Symfony can bring a lot of benefits to any web development business.

Benefits for developers:

  1. Code testability and reusability:

As Symfony adheres to a strict object oriented language and MVC pattern, it gives programmers the possibility to create more beautiful and testable code. This code can be refactored and reused which saves you plenty of time in the overall development process. The code is heavily documented with PDF versions of books that can be downloaded freely from the official website, which helps to avoid long learning curve for developers.

  1. Ease of configuration:

Symfony is easy to configure, as it employs a series of frequent configuration default values thus leaving the programmer to configure only things specific to the application being developed.

  1. Development tools:

Symfony includes a wide variety of useful command line tools to help with development and project management. You will use these tools to do things such as automatically generating your Propel model classes (Symfony Framework is independent of database due to the ORM layer “Propel” or “Doctrine”), scaffolding, clear cache, etc.

  1. Plug-in Creation:

When you happen to add a feature to the framework, all you have to do is to simply create a plug-in in a directory that you can later copy to all your projects. This is one of its most striking features which saves on time immensely and benefits enormously. Most of time you are able to find a plug-in that implements a specific feature that you may need. If not, you can find something close and customize it to your needs. In case nothing you want exists, it’s really easy to create a plug-in yourself.

  1. Advanced cache system:

The framework has extensive built-in caching features. It is easy to configure view caching so that whole pages or fragments are cached. It is also very easy to extend the base cache classes so that you can create in a fast way your own custom caching for data.

Does Symfony fit me?

No matter if you are a PHP guru or new to web application development. You will be able to use Symfony anyway. The most important thing for you to define is the size of your project. If you are planning to develop a simple site not exceeding 5-10 pages, with limited access to a database, then you’d probably better use PHP alone. Because using a web application framework won’t give you much, and using object orientation or a MVC model would probably only slow down your development process. Besides Symfony is not optimized to run effectively on a shared server where PHP scripts can run only in Common Gateway Interface (CGI) mode.

If you are going to develop more complex web apps, then plain PHP is not enough. If you want to develop fast and easy, then Symfony perfectly fits you. More over, if you plan maintaining and extending your app in the future, you need a lightweight and effective code. In this case Symfony is a right solution.

If you want to see how fast and convenient it is to develop with Symfony, visit Symfony’s official website to have a look to a visual demonstration of how this framework works.

Good luck and looking forward to seeing your comments!:)