Identifying bottlenecks in your PHP scripts, using XDebug and KCacheGrind

This entry focuses on how to identify slow parts of your scripts using the PHP/Xdebug profiling feature along with KCacheGrind for profile data visualisation. Xdebug is a PHP extension used for debugging scripts, supporting stack and function traces and information and memory allocation profilling. KCacheGrind is a profile data visualisation tool, allowing for easy browsing of […]

Symfony2: Folder Structure

This entry describes the Symfony2 directory structure; providing a broad understanding of how a project is structured, and laying the ground for file system level security and customization. Below are diagrams for each main folder, along with a description of its components (based on: http://symfony.com/doc/current/quick_tour/the_architecture.html): app/ folder: AppKernel.php – Main configuration entry point. Provides registerContainerConfiguration and registerBundles. […]

Symfony2 FreeBSD 10 PHP Packages

Below is a list of packages required for Symfony2 running on FreeBSD 10. pkg install php56 pkg install mod_php56-5.6.3 pkg install php56-session-5.6.3 pkg install php56-ctype-5.6.3 pkg install php56-dom-5.6.3 pkg install php56-hash-5.6.3 pkg install php56-mysql-5.6.3 pkg install php56-simplexml-5.6.3 pkg install php56-json-5.6.3 pkg install php56-xml-5.6.3 pkg install php56-hash-5.6.3 pkg install php56-pdo_mysql-5.6.3 pkg install php56-tokenizer-5.6.3 Replace 56 with […]

Agile Methodologies: Agile Manifesto and Principles

As part of my learning process about Agile Methodologies, I am adding a few notes about Agile in general and some of its methodologies in particular. Part of a series of posts, the first entry is about the Agile Manifesto and Principles. This and the following entries rely on the ‘Agile Software Development Ecosystems’ book, […]

Create a JavaScript jsonP Class

Classic AJAX requests are limited to the same domain. JSON with padding allows us to make requests to different domains. Below is an example of how to create a jsonP class, and handle requests using PHP. JSON with padding works by making a JavaScript script request, using a SCRIPT tag and a callback function. The back […]

Agile Methodologies: SCRUM

According to Ken Schwaber, co-creator of Scrum: “You can’t predict or definitely plan what you will deliver, when you will deliver it, and what the quality and cost will be”.  Scrum is focused on delivering working software regularly, monitor features delivered and adjust plans according to the results. Unlike XP, which puts more emphasis on […]