Slide 1

Slide 1 text

Defensive Programming

Slide 2

Slide 2 text

Use a Framework

Slide 3

Slide 3 text

Don't Trust Users

Slide 4

Slide 4 text

Filter User Content

Slide 5

Slide 5 text

filter_var( $input, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE );

Slide 6

Slide 6 text

filter_var( $input, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE );

Slide 7

Slide 7 text

filter_var( $input, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE );

Slide 8

Slide 8 text

→ FILTER_VALIDATE_EMAIL → FILTER_VALIDATE_IP → FILTER_VALIDATE_REGEXP → FILTER_VALIDATE_URL

Slide 9

Slide 9 text

v::alnum() ->length(1,15) ->validate("PHP 6"); // true

Slide 10

Slide 10 text

→ https://php.net/manual/en/function.filter-var.php → https://php.net/manual/en/filter.filters.validate.php → https://github.com/respect/validation

Slide 11

Slide 11 text

Use Database Abstractions

Slide 12

Slide 12 text

→ http://www.doctrine-project.org/projects/orm.html → https://github.com/auraphp/Aura.Sql

Slide 13

Slide 13 text

Sanitise User Content

Slide 14

Slide 14 text

→ http://php.net/manual/en/function.strip-tags.php → http://php.net/manual/en/function.htmlentities.php

Slide 15

Slide 15 text

Don't Trust Developers

Slide 16

Slide 16 text

Write Tests

Slide 17

Slide 17 text

→ http://grumpy-learning.com

Slide 18

Slide 18 text

Follow SOLID Principles

Slide 19

Slide 19 text

Single Responsibility Principle

Slide 20

Slide 20 text

Open-Closed Principle

Slide 21

Slide 21 text

Liskov Substitution Principle

Slide 22

Slide 22 text

Interface Segregation Principle

Slide 23

Slide 23 text

Dependency Inversion Principle

Slide 24

Slide 24 text

→ https://cleancoders.com

Slide 25

Slide 25 text

Type-hint

Slide 26

Slide 26 text

function average(array $values = []) { return array_sum($values) / count($values); }

Slide 27

Slide 27 text

function print_script($src) { assert( is_string($src), "src is not a string" ); print ""; }

Slide 28

Slide 28 text

Thanks! → https://joind.in/13401 → https://twitter.com/assertchris