tags:

views:

419

answers:

2

Every PHP programmer likely uses at least some form of a template engine and a database abstraction layer, but apart from those what extras do you consider essential or would recommend your fellow programmers try out?

+21  A: 
  1. A good framework.
    PHP has many to choose from: Zend's, Solar, CakePHP, Symfony, Kohana. A good framework will take of most of the tedious parts of application development, allowing you to spend more time on implementing project-specific domain logic. A framework will also help enforce a consistent coding style, usually has plenty of documentation and most are very well tested and stable overall.

  2. A good IDE.
    For any serious developer a good IDE is a must. Project organization, directory navigation, code-completion and various useful extensions (for example, for file versioning systems) are all big productivity boosters. PHP has several good IDE's including Zend Studio and PDT for Eclipse.

  3. Build system.
    Build scripts are useful for automatic repetitive tasks such as setting directory/file permissions, SVN updates, running tests and so forth before moving a project between phases (dev / staging / production). I use mainly Phing (an Ant clone) for building and deploying projects.

  4. Profiling and debugging tools.
    Those two needs are solved by same tool - xdebug, which offers improved debugging capabilities and can also generate kcachegrind reports for profiling your application. I then use webgrind to access those reports.

  5. Op-code cache.
    PHP incurs a major performance hit from its run-time complilation scheme. Op-code caches do wonders to improve on this by caching scripts in their compiled state, avoiding the overhead of compilation on cache hit. I use APC as my op-code cache when I have the opportunity.

  6. Various open-source packages.
    PHP being open-source as a language, has a long tradition of open-source development. There are many high-quality / useful packages for most common (and some uncommon) needs, which can save major development time. I've used wordpress and joomla as blogging platforms, HTML Purifier for sanitizing and validating HTML, minify for minifying and concatenating CSS and Javascript among others.

  7. Source file versioning.
    A must regardless of programming language. I use SVN with a tortoise client (for windows).

Eran Galperin
You mention, but do not list, VCS/SCM software. :-) Good list, otherwise.
PhiLho
Well it's not strictly a PHP tool. Updated my post to reflect it though
Eran Galperin
I don't think Joomla, WordPress, etc, qualify as parts of your 'toolset'. Just my opinion of course. The rest of your answer is interesting and touches on some cool stuff I'd not heard of though, thanks.
naeblis
Open source packages are one of the strengths of PHP. How can those not count as part of the toolset (same as an open source framework)
Eran Galperin
+1  A: 

IDE : PDT for Eclipse

Source Control : SVN with Tortoise SVN

Other details, like framework, depend of the project.

Daok