PHP is one of the most popular development languages for building dynamic web applications today. PHP offers many advantages; it is fast, stable, secure, easy to use and open source (free) but it was created by Zend and some critics complain about PHP being influenced by commercial interests and that PHP could be much better if the commercial offerings from Zend where part of the basic PHP platform. In the area of performance and advanced caching this may be true but it seams like open source PHP community gets around the possible shortcomings quite well. Some of the most influential and popular open source CMS/Publishing platforms like WordPress, Joomla and Drupal all rely on PHP and many others do to. Being familiar with PHP and having a good toolbox for working effectively with PHP is essential for most Web Developers because you will run into some PHP code at some point in your career – I guarantee you that!
In this article I have compiled an extensive list of tools and resources that any php developer should be aware of and which will make their life easier.
When starting on a new PHP development project you should consider if you could gain an advantage from using an existing framework to increase productivity and structure of your work. It is highly recommended to do so because you will start on top of the solid experience and learning from other PHP experts.
Symfony is a full-stack framework, a library of cohesive classes written in PHP.
“It provides an architecture, components and tools for developers to build complex web applications faster. Choosing symfony allows you to release your applications earlier, host and scale them without problem, and maintain them over time with no surprise.”
BlueShoes is a comprehensive application framework and content management system. It is written in the widely used web-scripting language PHP. BlueShoes provides developers with real-world solutions for common system components such as User Management, Session Handling, Closed User Groups, Exception Handling and Logging, Object Persisting as well as Form Building and Handling.
CakePHP is a free, open-source, rapid development framework for PHP. It’s a foundational structure for programmers to create web applications. Our primary goal is to enable you to work in a structured and rapid manner–without loss of flexibility.
CakePHP takes the monotony out of web development. We provide you with all the tools you need to get started coding what you really need to get done: the logic specific to your application. Instead of reinventing the wheel every time you sit down to a new project, check out a copy of CakePHP and get started with the real guts of your application.
CakePHP has an active developer team and community, bringing great value to the project. In addition to keeping you from wheel-reinventing, using CakePHP means your application’s core is well tested and is being constantly improved.
CodeIgniter is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications. If you’re a developer who lives in the real world of shared hosting accounts and clients with deadlines, and if you’re tired of ponderously large and thoroughly undocumented frameworks
The Horde Application Framework is a general-purpose web application framework in PHP, providing classes for dealing with preferences, compression, browser detection, connection tracking, MIME handling, and more.
The guiding principles of the Horde Project are to create solid standards-based applications using intelligent object oriented design that, wherever possible, are designed to run on a wide range of platforms and backends.
There is great emphasis on making Horde as friendly to non-English speakers as possible. The Horde Framework currently supports many localization features such as unicode and right-to-left text and generous users have contributed many translations for the framework and applications.
Seagull is a mature OOP framework for building web, command line and GUI applications. Licensed under BSD, the project allows PHP developers to easily integrate and manage code resources, and build complex applications quickly.
If you’re a beginner, the framework provides a number of sample applications that can be customised and extended to suit your needs. If you’re an intermediate or advanced developer, take advantage of Seagull’s best practices , standards and modular codebase to build your applications in record time.
Once your development cycle is complete, use Seagull’s features for deploying and maintaining your apps locally and remotely
Want to build a data centric business application without dirty code – PhpOpenbiz (Openbiz) is the solution! OpenBiz is a PHP application framework for professional IT developers and consultants to build web-based enterprise applications. Key features includes:
- XML Metadata-driven design principal. Developers declare business logic in metadata (zero-coding development)
- AJAX enabled browser client, Model-View-Controller (MVC), Object Relational Mapping (ORM)
- Eclipse plugin authoring tool
The Qcodo Development Framework is an open-source PHP 5 framework that focuses on freeing developers from unnecessary tedious, mundane coding.
The framework consists of two main components: the Code Generator and Qforms (see below for more). While the framework was designed to support the complexities of large projects, it is an incredibly lightweight framework which can be utilized by small and large web applications alike.
Xaraya has a templating system developed specially for it, known as Block Layout. This makes it possible to customise most features of a website developed using Xaraya. A noteworthy core module of the Xaraya CMS is ‘dynamic data’. This provides the functionality to define data objects using metadata (stored in the database).
Far from being Yet Another PHP Framework or Rails clone, Zoop has been in development since 2001 and in use for the last 6 years in a number of different production environments. While it predates the recent proliferation of PHP frameworks, it’s based on solid MVC principles, including separation of display, logic, and data layers. It’s designed to be efficient, modular, and extensible, striking a balance between lightweight and fully-featured.
With Zoop an inexperienced coder can make secure web applications quickly. More experienced coders will appreciate the design and flexibility. Both will benefit from the shortcuts it provides to handle common and mundane tasks.
SimplePie is a very fast and easy-to-use class, written in PHP, that puts the ’simple’ back into ‘really simple syndication’.
Turck MMCache is a PHP Accelerator & Encoder. It increases performance of PHP scripts by caching them in compiled state, so that the overhead of compiling is almost completely eliminated. Also it uses some optimizations for speed up of scripts execution.
The ionCube PHP Accelerator is an easily installed PHP Zend engine extension that provides a PHP cache, and is capable of delivering a substantial acceleration of PHP scripts without requiring any script changes, loss of dynamic content, or other application compromises.
PHP Code Generators
PHP Object Generator, (POG) is an open source which automatically generates clean & tested Object Oriented code for your PHP4/PHP5 application.
“Over the years, we realized that a large portion of a PHP programmer’s time is wasted on repetitive coding of the Database Access Layer of an application simply because different applications require different objects.
By generating PHP objects with integrated CRUD methods, POG gives you a head start in any project. The time you save can be spent on more interesting areas of your project.”
PHP Editors / Application Development Environments (IDEs)
Zend Studio is a very popular commercial PHP IDE offered as a subscription-based offering. It is much more than a simple editor and provides the features developers is expecting in professional development tools today.
“Zend Studio 7.0 is the next generation of our professional-grade PHP application development environment. It has been designed to maximize developer productivity by enabling you to develop and maintain code faster, solve application problems quickly and improve team collaboration.”
Zend Studio provides features like refactoring, code generation, code assist and semantic analysis combine to enable rapid application development.
It also provides comprehensive debugging and testing support that helps you analyze and resolve problems quickly. Through support for both local and remote (on server) debugging, profiling, code inspection & quick fix, test generation & reporting, you have the tools you need to diagnose and resolve application problems quickly while ensuring your code starts out correctly.
NuSphere PhpED is a popular commercial PHP IDE with all the features you would need. NuSphere also provides a wide range of addons for
If you’re in trouble and can’t figure out what is wrong with your code a debugger will be needed. DBG is a free full-featured php debugger, an interactive tool that helps you debugging php scripts. It works on a production and/or development WEB server and allows you debug your scripts locally or remotely, from an IDE or console.
The commercial version of DBG PHP Debugger is available as part of NuSphere PhpED 5.0 product. Differences between commercial and free versions are mainly support and some security features. Free version works with PHP Edit, PHP Coder and some other IDEs.
The Xdebug extension helps you debugging your script by providing a lot of valuable debug information. The debug information that Xdebug can provide includes the following:
- stack traces and function traces in error messages with:
- full parameter display for user defined functions
- function name, file name and line indications
- support for member functions
- memory allocation
- protection for infinite recursi
Xdebug also provides:
- profiling information for PHP scripts
- code coverage analysis
- capabilities to debug your scripts interactively with a debug client
PHP Test Tools
It is a PHP unit test and web test framework. Users of JUnit will be familiar with most of the interface. The JWebUnit style functionality is more complete now. It has support for SSL, forms, frames, proxies and basic authentication. The idea is that common but fiddly PHP tasks, such as logging into a site, can be tested easily.
This program reformat and beautify PHP 4 and PHP 5 source code files automatically. The program is Open Source and distributed under the terms of PHP Licence. It is written in PHP 5 and has a command line tool.
PHP Build and Deployment Tools
Allows you to install PEAR packages (over the network) plus bundle your code for installation. Execute http://pear.php.net/go-pear with the PHP command line executable to get started. Written in PHP.
PHing Is Not GNU make; it’s a project build system based on Apache Ant. You can do anything with it that you could do with a traditional build system like GNU make, and its use of simple XML build files and extensible PHP “task” classes make it an easy-to-use and highly flexible build framework. Features include file transformations (e.g. token replacement, XSLT transformation, Smarty template transformations), file system operations, interactive build support, SQL execution, CVS operations, tools for creating PEAR packages, and much more.
PHP Documentation Tools
Builds “cross reference” documentation of source code allowing you to view all the files where a variable / method / function is declared as well as the locations where they are referenced. Written in Perl.
phpDocumentor, sometimes referred to as phpdoc or phpdocu, is the current standard auto-documentation tool for the php language. Similar to Javadoc, and written in php, phpDocumentor can be used from the command line or a web interface to create professional documentation from php source code. phpDocumentor has support for linking between documentation, incorporating user level documents like tutorials and creation of highlighted source code with cross referencing to php general documentation. A complete list of features is available.
phpDocumentor uses an extensive templating system to change your source code comments into human readable, and hence useful, formats. This system allows the creation of easy to read documentation in 15 different pre-designed HTML versions, PDF format, Windows Helpfile CHM format, and in Docbook XML. You can also create your own templates to match the look and feel of your project.
So what has CMS to do with PHP Development. I guess that in the real world most business applications provide information to its users and making it easy for business users to create and maintain content is essential for nearly any system development, PHP included.
MODx just gives you the basic CMS framework to work with; nothing more. It’s a tool to help you get the markup you want generated dynamically the way you want it, without having to hack hard to understand code. How if it compared to Joomla and Drupal. I guess you cant compare really. MODx is lightweight, simple and wont give you the majority of features you get from the large players. This is in some cases just what you need!
PHP UML and Design Tools
UML diagram drawing tool with support for PHP stub generation (commercial spin off is Posideon) – written in Java
UML diagram drawing tool with support for PHP stub generation. Requires Unix / KDE
Diagram tool with UML support – generate PHP using AutoDia
PHP Browser Extensions
FirePHP enables you to log to your Firebug Console using a simple PHP method call.
All data is sent via response headers and will not interfere with the content on your page.
FirePHP is ideally suited for AJAX development where clean JSON and XML responses are required.
PHP Code Repositories and Search Engines
Koders.com, the leading search engine for open source and other downloadable code now contains over 2 billion lines of code within its repository.
PHP Cheat Sheets
The PHP cheat sheet is a one-page reference sheet, listing date format arguments, regular expression syntax and common functions.
This website contains a 2-page light and lean PHP cheatsheet and an 8-page comprehensive PHP cheat sheet for committed PHP developers
3 cheat sheets covering comparison using different operators etc.