Slide 1

Slide 1 text

AGILE TOOLBOX FOR A PHP DEVELOPER Philippines PHP User Group 1

Slide 2

Slide 2 text

SPEAKERDECK http://bit.ly/agiletoolbox-php 2

Slide 3

Slide 3 text

MICHAEL CHENG Engineer, Neo Innovations ! http://twitter.com/coderkungfu http://github.com/miccheng http://CoderKungfu.com 3

Slide 4

Slide 4 text

AGILE DEVELOPER • Software Craftsmen. • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan Source: http://agilemanifesto.org 4

Slide 5

Slide 5 text

AGILE DEVELOPER • Communicative and collaborative. • Discussions around stories. • Test Driven & Behaviour Driven. • Tests contains the documentation. • Responsive to change. • Not waiting till the end of the dev lifecycle to fix a bug. 5

Slide 6

Slide 6 text

THE TOOLBOX • Not all of them are written in PHP. • Best tool for the task. • DevOps tools - automate tedious tasks. 6

Slide 7

Slide 7 text

THE TOOLS • Version Control System • Git (http://git-scm.com/) • GitHub / BitBucket 7

Slide 8

Slide 8 text

THE TOOLS • Check code dependencies. • Composer (https://getcomposer.org/) 8

Slide 9

Slide 9 text

COMPOSER • Pick and choose libraries you want to put together on Packagist (https://packagist.org/). • Compose your own composer.json. • Choose a package namespace for your own project. • Reference: https://getcomposer.org/ 9

Slide 10

Slide 10 text

COMPOSER.JSON {! "require":{! "respect/rest": "0.5.0",! "monolog/monolog": "1.7.0",! "php-activerecord/php-activerecord": "v1.1.2"! },! "require-dev": {! "phpunit/phpunit": "4.0.*",! "guzzle/guzzle": "v3.8.1"! }! } 10

Slide 11

Slide 11 text

INSTALL LIBRARIES $ composer install! ! Loading composer repositories with package information! Installing dependencies (including require-dev)! - Installing respect/rest (0.5.0)! Downloading: 100%! ! - Installing psr/log (1.0.0)! Downloading: 100%! ! - Installing monolog/monolog (1.7.0)! Downloading: 100%! ! - Installing php-activerecord/php-activerecord (v1.1.2)! Downloading: 100% 11

Slide 12

Slide 12 text

THE TOOLS • Quick PHP server • Build in web server (php -S localhost:8000) • PHPUp (https://github.com/lox/phpup) 12

Slide 13

Slide 13 text

PHP BUILD IN WEB SERVER $ php -S 0.0.0.0:8000! ! PHP 5.5.12 Development Server started at Sat May 3 14:34:44 2014! Listening on http://0.0.0.0:8000! Document root is /Users/miccheng/Dropbox/workspace/plain! Press Ctrl-C to quit.! [Sat May 3 14:34:47 2014] 127.0.0.1:50368 [200]: /! [Sat May 3 14:34:47 2014] 127.0.0.1:50370 [404]: / favicon.ico - No such file or directory 13

Slide 14

Slide 14 text

THE TOOLS • Use a Testing Framework • PHPUnit (http://phpunit.de/) • Codeception (http://codeception.com/) 14

Slide 15

Slide 15 text

THE TOOLS • Use a PHP framework that supports testing • Laravel 4 (http://laravel.com/) • CakePHP (http://cakephp.org/) 15

Slide 16

Slide 16 text

THE TOOLS • Offline documentation and quick search • Dash (http://kapeli.com/dash) 16

Slide 17

Slide 17 text

THE TOOLS • Use an IDE • PHPStorm (http://www.jetbrains.com/ phpstorm) • Netbeans for PHP (https://netbeans.org/ features/php/) 17

Slide 18

Slide 18 text

THE TOOLS • Use a Virtual Machine for development: • Vagrant (http://vagrantup.com) • Tool for building complete development environments. • PuPHPet (https://puphpet.com/) • Configuration for a Vagrant VM. 18

Slide 19

Slide 19 text

THE TOOLS • Debugging tools • Xdebug (http://xdebug.org/) • WebGrind (https://github.com/jokkedk/ webgrind) • PHPDBG (http://phpdbg.com/) • > PHP 5.4.* (build in for PHP 5.6) 19

Slide 20

Slide 20 text

THE TOOLS • Online tools • Modern.ie (http://modern.ie/en-us) • Online JSON viewer (http:// jsonviewer.stack.hu/) • Nitrous.io (http://nitrous.io) • PivotalTracker (http://pivotaltracker.com) 20

Slide 21

Slide 21 text

MORE READINGS… • PHP The Right Way 
 (http://www.phptherightway.com/) • The PHP Framework Interop Group (PHP-FIG) (http://www.php-fig.org/) • Clean Code: A Handbook of Agile Software Craftsmanship (http://www.amazon.com/Clean-Code- Handbook-Software-Craftsmanship/dp/0132350882) 21

Slide 22

Slide 22 text

QUESTIONS? 22