Improving your code
Now you have your lovely application, can you improve it? Here are some tools that can check your code for fine tuning. Note: Some of the following tools require pear, to install pear use
sudo apt-get install php-pear
phpcpd - duplicate code
phpcpd - this is a command line tool that scans your code for duplicate code. Install using pear
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/phpcpd
Usage :
phpcpd --log-pmd phpcpd.xml yourprojectfolder
This will generate a file called phpcpd.xml with all the duplicate code. There are other output options too, plain text for example.
phpcs - coding standards
phpcs - command line too that will check for coding standards
pear install PHP_CodeSniffer
Usage :
phpcs --report=xml --report-file=phpcs.xml yourprojectfolder
phpmd - mess detector
phpmd - This will look for "messy code", one of the best command line tools
Install using pear
pear channel-discover pear.phpmd.org
pear channel-discover pear.pdepend.org
pear install --alldeps phpmd/PHP_PMD
Usage
phpmd yourprojectfolder xml codesize,unusedcode,naming,design --reportfile phpmd.xml
profiling
Kcachegrind is a very useful tool for analysing profile results. This will highlight processes that are taking too long or are using too many resources. Install kcachegrind and xdebug if you haven't done so already
sudo apt-get install php5-xdebug
sudo apt-get install kcachegrind
sudo apt-get install kcachegrind
Modify your php.ini file to include the following.
; Profiler Settings for kcachegrind copied from http://www.odino.org/5/profiling-with-xdebug-and-kcachegrind
; and http://xdebug.org/docs/profiler
xdebug.profiler_enable=1
xdebug.profiler_output_dir = "/var/benchmark/"
Then after running your application, you'll find cachegrind files in /var/benchmark. Open these by going to Applications -> Programming -> Kcachegrind
phpunit - unit tests
PHPUnit tests provide a great way to ensure you are getting the results you should be getting. This can be checked constantly so any code changes can be checked to see if they match the tests. For setting up this, refer to the Netbeans unit test documentation.
No comments:
Post a Comment