Slide 1

Slide 1 text

PDC for PHP Smart little worker that checks on your PHP source code's class dependencies. Sam-Mauris Yong HeartCode Singapore [email protected] http://mauris.sg/ @_mauris 1 Dec 2012 Sam-Mauris Yong 1

Slide 2

Slide 2 text

What is PDC? • Packfire Dependency Checker • Minimal CLI tool written in PHP • Class dependency problems in PHP • Generates a little report 1 Dec 2012 Sam-Mauris Yong 2

Slide 3

Slide 3 text

Checks for… • Unused use statement; • Missing declaration of a class being used; • Namespace that doesn't exist according to PSR-0; • Files without namespace declaration. 1 Dec 2012 Sam-Mauris Yong 3

Slide 4

Slide 4 text

Why PDC? • Classes are loaded real-time with autoloaders. • Misspelled namespaces or classnames undetected. • Difficult to check until execution • IDEs do not report such errors. 1 Dec 2012 Sam-Mauris Yong 4

Slide 5

Slide 5 text

Reporting $ php pdc.phar src Packfire Dependency Checker Tool Written by Sam-Mauris Yong v1.0.1 [src/Packfire/helper.php]: Warning: no namespace found. [src/Packfire/constants.php]: Warning: no namespace found. [src/Packfire/Cache/MemCache.php]: Not found: \Memcache Time: 0.60394 seconds Completed. Summary: 300 files 2 warnings 1 dependency not found 1 Dec 2012 Sam-Mauris Yong 5

Slide 6

Slide 6 text

Writing better codes • Saves time – Debugging – Manually checking • Can be attached to Continuous Integration build jobs: Automation! 1 Dec 2012 Sam-Mauris Yong 6

Slide 7

Slide 7 text

Usage • One argument to determine source code destination. $ php pdc.phar src 1 Dec 2012 Sam-Mauris Yong 7

Slide 8

Slide 8 text

Usage with Travis-CI • Add following to .travis.yml config file: • Reports will generate after PHPUnit on Travis-CI. after_script: - "wget --quiet http://mauris.sg/bin/pdc.phar && php pdc.phar src" 1 Dec 2012 Sam-Mauris Yong 8

Slide 9

Slide 9 text

More about PDC • Official repository: https://github.com/packfire/pdc 1 Dec 2012 Sam-Mauris Yong 9

Slide 10

Slide 10 text

Thank you! 1 Dec 2012 Sam-Mauris Yong 10