SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
Starting Out With PHP
Mark Niebergall

https://joind.in/talk/fa612
Starting Out With PHP
• PHP is a useless language to learn

• PHP is hated by all developers

• PHP is insecure, slow, and not modern

• PHP is bad
Starting Out With PHP
• Lets developers make mistakes

- $password = md5(‘password123’);

- eval($userInput);
Starting Out With PHP
• Lets developers make mistakes

- echo $$variable . $$$variable;

- if (‘true’ == false) {…}
Starting Out With PHP
• Lets developers make mistakes

- $sql = “DELETE FROM users WHERE id =
{$_GET[‘id’]}”;

- “INSERT INTO some_data VALUES (NULL,
‘{$_POST[‘name’]}’);
Starting Out With PHP
• Lets developers make mistakes

- le_get_contents($randomUrl);

- $GLOBALS[‘everything’] = $everything;
Starting Out With PHP
• Lets developers make mistakes

- $oneCase + $two_case + $ThreeCase_More

- if (empty($allTheThings)) {…}
Starting Out With PHP
• Lets developers make mistakes

- if ($a < $b) {

if ($test == true) {

if ($number < 100) {

if (strpos($string, ‘abc’) != 0) {

if ($nestMore == ‘Yes’) {

echo ‘Nesting if statements is great!’;

}

}

}

}

}
Starting Out With PHP
• Lets developers make mistakes

- Works on my box!
Starting Out With PHP
• PHP runs over 83% of the web

• PHP has an active community

• PHP is secure, fast, and constantly being updated

• PHP is good
About Mark Niebergall
• PHP since 2005

• Masters degree in MIS

• Senior Software Engineer

• Drug screening project

• UPHPU President

• CSSLP, SSCP Certified and SME

• Drones, fishing, skiing, father of 5 boys
Starting Out With PHP
• What is PHP

• Basic Syntax

• Language Features

• PHP Ecosystem
What is PHP
What is PHP
<?php
What is PHP
<?php



echo ‘Hello world!’;

echo “Hello $name”;
What is PHP
<?php



class HelloWorld

{

public function sayHello($name)

{

echo ‘Hello ‘ . $name;

}

}



$helloWorld = new HelloWorld;

$helloWorld->sayHello(‘OpenWest Attendees’);

What is PHP
• Personal Home Page

• Rasmus Lerdorf in 1994

• PHP: Hypertext Preprocessor
What is PHP
• Programming language designed for the Internet

• Server-side scripting language

• General-purpose programming language
What is PHP
• Facebook

• Slack

• Tumblr

• Wikipedia

• News sites

• Blogs
What is PHP
• Open source

- Free to use

- Anyone can contribute

- Source is public
What is PHP
• Written in C

• Compiled at run-time
What is PHP
What is PHP
What is PHP
• Runs with web servers

- Apache

- Nginx
What is PHP
• Interacts with databases

- PostgreSQL

- MySQL

- MSSQL

- Mongo

- Many more
What is PHP
• APIs

• Server

• Mail

• Files
Starting Out With PHP
• What is PHP

• Basic Syntax

• Language Features

• PHP Ecosystem
Basic Syntax
<?php



$variable = ‘something’;

$isSomething = true;

$someInput = $_GET[‘get_key’];
Basic Syntax
<?php



$variable = ‘something’;

$isSomething = true;

$someInput = $_GET[‘get_key’];



if ($isSomething) {

echo $variable;

}
Basic Syntax
<?php



$variable = ‘something’;

$isSomething = true;

$someInput = $_GET[‘get_key’];



if ($isSomething === true || $someInput == ‘Yes’) {

echo $variable;

}
Basic Syntax
<?php



$string = ‘Abc 123’;

$integer = 123;

$float = 123.456;

$bool = true;

$null = null;

$array = [123, 456];

$resource = fopen(‘SomeFile.txt’, ‘r’);

$object = new SomeClass;
Basic Syntax
<?php



$oldArray = array(‘alligator’, ‘bear’, ‘camel’, ‘deer’);



$data = [‘apple’, ‘banana’, ‘carrot’];



$withKeys = [‘test’ => 123, ‘other’ => 456];



foreach ($data as $food) {

echo ‘Eat a ‘ . $food . PHP_EOL;

}
Basic Syntax
<?php



$whatAmI = ‘Drone’;



switch ($whatAmI) {

case ‘Airplane’:

echo ‘Fly far away’;

break;



case ‘Drone’:

case ‘Helicopter’:

echo ‘Fly close by’;

break;

}
Basic Syntax
<?php



$number = 0;



while ($number < 7) {

$number += 1;

}



return $number;
Basic Syntax
<?php



for ($i = 0; $i < 100; $i++) {

…

}
Basic Syntax
<?php



$variable = ‘something’;

$isSomething = true;

$someInput = $_GET[‘get_key’];



function doSomething($variable, $isSomething)

{

if ($isSomething) {

return $variable;

}

return ‘Not something: ‘ . $something;

}
Basic Syntax
<?php



class Cat{}
Basic Syntax
<?php



class Cat {

protected $name;



public function __construct($name) {

$this->name = $name;

}



public function pet() {

return ‘purr’;

}

}
Basic Syntax
<?php



class Cat

{

// Anything can use public

public function pet() {…}



// Cat class and anything inheriting can use protected

protected function speak() {…}



/* only Cat class can use private */

private function _ignoreHuman() {…}

}
Basic Syntax
<?php

abstract class Pet {

protected $name;

abstract public function feed(Food $food);

}



class Cat extend Pet {

public function feed(Food $food) {

return $this->stare($food);

}

protected function stare($thing) {}

}
Basic Syntax
<?php



namespace AnimalPet;



use AnimalHuman;



class Cat

{

public function pet() {…}

protected function speak() {…}

private function _ignoreHuman(Human $human) {…}

}
Basic Syntax
<?php



include(‘Cat.php’);

include_once(‘Dog.php’);



require(‘/../Pet.php’);

require_once(‘/../../Animal.php’);
Basic Syntax
<?php



class AutloadClass

{

public function loadMethod($className)

{

require_once(__DIR__ . ‘/../src/‘ . $className);

}

}



spl_autoload_register([AutoloadClass::class, ‘loadMethod’]);
Basic Syntax
<?php

class Db

{

protected $connection;

public function connect($db, $host, $port, $user, $pwd)

{

$this->connection = new PDO(

‘mysql:dbname=‘ . $db . ‘;host=‘ . $host .

‘;port=‘ . $port’,

$user,

$pwd

);

}

}
Basic Syntax
<?php



// use frameworks for database



$query = $this->getDb()->select()

->from([‘tn’ => ‘table_name’], [‘id’, ‘name’])

->join([‘ot’ => ‘other_table’], ‘ot.id = tn.other_id’,
[‘other_thing’])

->where(‘tn.some_date > ?’, $date)

->where(‘ot.other_number = ?’, $number);



$rows = $this->getDb()->fetchAll($query);
Basic Syntax
<?php



$hashed = password_hash($password,
PASSWORD_DEFAULT);



$isValid = password_verify($userEntered, $hashed);
Starting Out With PHP
• What is PHP

• Basic Syntax

• Language Features

• PHP Ecosystem
Language Features
• Functional

• Object-oriented
Language Features
• Data types

• Type juggling
Language Features
• Method parameter type hinting

• Method return type
Language Features
• Class

• Abstract

• Interface

• Trait
Language Features
• Class

- Constants

- Properties

- Methods

- Magic methods
Language Features
• Class

- class Cat extends Pet implements HousePet {

use MouseCatcherTrait;

const FAMILY = ‘Feline’;

protected $name;

public function __construct($dependencies) {…}

public static function independentAction() {…}

protected function eatFood(Food $food) : Food {…}

private function _controlHuman(Human $human) {…}

}
Language Features
• Abstract

- Class can extend one abstract at a time

- Can have parent, grandparent, etc.

- Mixed functions lled in and others not

- abstract class Pet {

abstract protected function eatFood(Food $food) :
Food {};

}
Language Features
• Interfaces

- Contract

- Class can implement many interfaces

- interface Port {

public function connect(Connection $connection);

}
Language Features
• Trait

- Common characteristics

- trait SomeCharacteristic {

public function doSomething() {…}

}

- class Thing {

use SomeCharacteristic;

}
Language Features
• Exceptions

- try {

…

throw new Exception(‘Error message’);

…

throw new CustomException(‘Failed’);

} catch (Exception | CustomException $e) {

echo $e->getMessage();

}
Language Features
• Magic methods

- Called automatically

- __construct when instantiated

- __set, __get

- __destruct, __call, __callStatic, __isset, __unset,
__sleep, __wakup, __toString, __invoke, __set_state,
__clone, __debugInfo
Language Features
• Namespaces

- namespace AnimalMammalFeline;

use AnimalFish;



class Cat

{

public function eat(Fish $fish) {…}

}

…

new AnimalMammalFelineCat;
Language Features
• Libsodium

- First programming language with modern security
library built-in

- Hash

- Encrypt

- Keys

- Random
PHP Ecosystem
• Frameworks

• Tools

• Community

• Career
PHP Ecosystem
• CMS Frameworks

- Wordpress

- Drupal

- Joomla
PHP Ecosystem
• Frameworks

- larvel

- Symfony

- CakePHP

- Zend

- Slim
PHP Ecosystem
• Frameworks

- Framework Interop Group (PHP-FIG)

‣ Coding standard recommendations

‣ Common interfaces
PHP Ecosystem
• Tools

- composer package manager

‣ packagist repositories

- PECL extension manager
PHP Ecosystem
PHP Ecosystem
• Tools

- PhpStorm

- Zend Studio

- Many other IDEs to choose from

- Any text editor
PHP Ecosystem
• Tools

- PHPUnit

- behat

- phpspec

- Faker
PHP Ecosystem
• Tools

- Xdebug

‣ Step-into debugging

‣ Stacktrace

‣ Performance
PHP Ecosystem
• Tools

- Guzzle

- Apigility
PHP Ecosystem
• Tools

- git

- Mercurial

- Others
PHP Ecosystem
• Community

- User groups

‣ https://www.meetup.com/Utah-PHP-User-Group/

- Conferences

- Magazine
PHP Ecosystem
• Community

- Slack channels

‣ utos.slack.com

‣ phpcommunity.slack.com

‣ phpchat.slack.com

‣ phpug.slack.com
PHP Ecosystem
• Community

- Open source

- Diversity

- Elephpants
PHP Ecosystem
• Community

- Welcoming

- Open to other technologies, languages
PHP Ecosystem
• Career

- Experience

- Education
PHP Ecosystem
• Career

- Lots of jobs

‣ Recruiters

‣ Job boards

‣ Contracts

‣ Who you know
PHP Ecosystem
• Career

- Good pay

‣ $40k-$60k starting

‣ $60k-$80k mid

‣ $80k+ advanced and lead
PHP Ecosystem
• Career

- Local

- Remote
Starting Out With PHP
• What is PHP

• Basic Syntax

• Language Features

• PHP Ecosystem
Questions?
• https://joind.in/talk/fa612
References
• php.net

Weitere ähnliche Inhalte

Was ist angesagt?

Php Tutorials for Beginners
Php Tutorials for BeginnersPhp Tutorials for Beginners
Php Tutorials for BeginnersVineet Kumar Saini
 
Introduction in php part 2
Introduction in php part 2Introduction in php part 2
Introduction in php part 2Bozhidar Boshnakov
 
Object-Oriented Programming with PHP (part 1)
Object-Oriented Programming with PHP (part 1)Object-Oriented Programming with PHP (part 1)
Object-Oriented Programming with PHP (part 1)Bozhidar Boshnakov
 
Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Prof. Wim Van Criekinge
 
Class 3 - PHP Functions
Class 3 - PHP FunctionsClass 3 - PHP Functions
Class 3 - PHP FunctionsAhmed Swilam
 
Class 2 - Introduction to PHP
Class 2 - Introduction to PHPClass 2 - Introduction to PHP
Class 2 - Introduction to PHPAhmed Swilam
 
Bioinformatics p5-bioperl v2013-wim_vancriekinge
Bioinformatics p5-bioperl v2013-wim_vancriekingeBioinformatics p5-bioperl v2013-wim_vancriekinge
Bioinformatics p5-bioperl v2013-wim_vancriekingeProf. Wim Van Criekinge
 
Cli the other sapi pbc11
Cli the other sapi pbc11Cli the other sapi pbc11
Cli the other sapi pbc11Combell NV
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to phpsagaroceanic11
 
(Parameterized) Roles
(Parameterized) Roles(Parameterized) Roles
(Parameterized) Rolessartak
 
Diving into HHVM Extensions (PHPNW Conference 2015)
Diving into HHVM Extensions (PHPNW Conference 2015)Diving into HHVM Extensions (PHPNW Conference 2015)
Diving into HHVM Extensions (PHPNW Conference 2015)James Titcumb
 
Intermediate PHP
Intermediate PHPIntermediate PHP
Intermediate PHPBradley Holt
 

Was ist angesagt? (20)

Introduction in php
Introduction in phpIntroduction in php
Introduction in php
 
Php Tutorials for Beginners
Php Tutorials for BeginnersPhp Tutorials for Beginners
Php Tutorials for Beginners
 
05php
05php05php
05php
 
Introduction in php part 2
Introduction in php part 2Introduction in php part 2
Introduction in php part 2
 
Object-Oriented Programming with PHP (part 1)
Object-Oriented Programming with PHP (part 1)Object-Oriented Programming with PHP (part 1)
Object-Oriented Programming with PHP (part 1)
 
Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013
 
Perl Basics for Pentesters Part 1
Perl Basics for Pentesters Part 1Perl Basics for Pentesters Part 1
Perl Basics for Pentesters Part 1
 
Bioinformatica p6-bioperl
Bioinformatica p6-bioperlBioinformatica p6-bioperl
Bioinformatica p6-bioperl
 
Class 3 - PHP Functions
Class 3 - PHP FunctionsClass 3 - PHP Functions
Class 3 - PHP Functions
 
Class 2 - Introduction to PHP
Class 2 - Introduction to PHPClass 2 - Introduction to PHP
Class 2 - Introduction to PHP
 
rtwerewr
rtwerewrrtwerewr
rtwerewr
 
Bioinformatics p5-bioperl v2013-wim_vancriekinge
Bioinformatics p5-bioperl v2013-wim_vancriekingeBioinformatics p5-bioperl v2013-wim_vancriekinge
Bioinformatics p5-bioperl v2013-wim_vancriekinge
 
Introduction to php php++
Introduction to php php++Introduction to php php++
Introduction to php php++
 
Cli the other sapi pbc11
Cli the other sapi pbc11Cli the other sapi pbc11
Cli the other sapi pbc11
 
Introduction to Perl and BioPerl
Introduction to Perl and BioPerlIntroduction to Perl and BioPerl
Introduction to Perl and BioPerl
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to php
 
(Parameterized) Roles
(Parameterized) Roles(Parameterized) Roles
(Parameterized) Roles
 
Diving into HHVM Extensions (PHPNW Conference 2015)
Diving into HHVM Extensions (PHPNW Conference 2015)Diving into HHVM Extensions (PHPNW Conference 2015)
Diving into HHVM Extensions (PHPNW Conference 2015)
 
Intermediate PHP
Intermediate PHPIntermediate PHP
Intermediate PHP
 
PHP - Introduction to PHP Functions
PHP -  Introduction to PHP FunctionsPHP -  Introduction to PHP Functions
PHP - Introduction to PHP Functions
 

Ähnlich wie Starting Out With PHP

PHP Basics and Demo HackU
PHP Basics and Demo HackUPHP Basics and Demo HackU
PHP Basics and Demo HackUAnshu Prateek
 
PHP: The easiest language to learn.
PHP: The easiest language to learn.PHP: The easiest language to learn.
PHP: The easiest language to learn.Binny V A
 
Intro to PHP
Intro to PHPIntro to PHP
Intro to PHPSandy Smith
 
HackU PHP and Node.js
HackU PHP and Node.jsHackU PHP and Node.js
HackU PHP and Node.jssouridatta
 
php (Hypertext Preprocessor)
php (Hypertext Preprocessor)php (Hypertext Preprocessor)
php (Hypertext Preprocessor)Chandan Das
 
Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018Adam Tomat
 
関西PHP勉強会 php5.4つまみぐい
関西PHP勉強会 php5.4つまみぐい関西PHP勉強会 php5.4つまみぐい
関西PHP勉強会 php5.4つまみぐいHisateru Tanaka
 
PHP from soup to nuts Course Deck
PHP from soup to nuts Course DeckPHP from soup to nuts Course Deck
PHP from soup to nuts Course DeckrICh morrow
 
Giới thiệu PHP 7
Giới thiệu PHP 7Giới thiệu PHP 7
Giới thiệu PHP 7ZendVN
 
PSR-7 - Middleware - Zend Expressive
PSR-7 - Middleware - Zend ExpressivePSR-7 - Middleware - Zend Expressive
PSR-7 - Middleware - Zend ExpressiveMilad Arabi
 
php fundamental
php fundamentalphp fundamental
php fundamentalzalatarunk
 
Php introduction with history of php
Php introduction with history of phpPhp introduction with history of php
Php introduction with history of phppooja bhandari
 
Phphacku iitd
Phphacku iitdPhphacku iitd
Phphacku iitdSorabh Jain
 

Ähnlich wie Starting Out With PHP (20)

PHP Basics and Demo HackU
PHP Basics and Demo HackUPHP Basics and Demo HackU
PHP Basics and Demo HackU
 
PHP: The easiest language to learn.
PHP: The easiest language to learn.PHP: The easiest language to learn.
PHP: The easiest language to learn.
 
Intro to PHP
Intro to PHPIntro to PHP
Intro to PHP
 
PHP for hacks
PHP for hacksPHP for hacks
PHP for hacks
 
Php hacku
Php hackuPhp hacku
Php hacku
 
HackU PHP and Node.js
HackU PHP and Node.jsHackU PHP and Node.js
HackU PHP and Node.js
 
PHP
PHPPHP
PHP
 
php (Hypertext Preprocessor)
php (Hypertext Preprocessor)php (Hypertext Preprocessor)
php (Hypertext Preprocessor)
 
Perl basics for Pentesters
Perl basics for PentestersPerl basics for Pentesters
Perl basics for Pentesters
 
Modern php
Modern phpModern php
Modern php
 
Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018
 
関西PHP勉強会 php5.4つまみぐい
関西PHP勉強会 php5.4つまみぐい関西PHP勉強会 php5.4つまみぐい
関西PHP勉強会 php5.4つまみぐい
 
PHP from soup to nuts Course Deck
PHP from soup to nuts Course DeckPHP from soup to nuts Course Deck
PHP from soup to nuts Course Deck
 
Giới thiệu PHP 7
Giới thiệu PHP 7Giới thiệu PHP 7
Giới thiệu PHP 7
 
PSR-7 - Middleware - Zend Expressive
PSR-7 - Middleware - Zend ExpressivePSR-7 - Middleware - Zend Expressive
PSR-7 - Middleware - Zend Expressive
 
php fundamental
php fundamentalphp fundamental
php fundamental
 
Php introduction with history of php
Php introduction with history of phpPhp introduction with history of php
Php introduction with history of php
 
php
phpphp
php
 
Perl Moderno
Perl ModernoPerl Moderno
Perl Moderno
 
Phphacku iitd
Phphacku iitdPhphacku iitd
Phphacku iitd
 

Mehr von Mark Niebergall

Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023Mark Niebergall
 
Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023Mark Niebergall
 
Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023Mark Niebergall
 
Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022Mark Niebergall
 
Developing SOLID Code
Developing SOLID CodeDeveloping SOLID Code
Developing SOLID CodeMark Niebergall
 
Unit Testing from Setup to Deployment
Unit Testing from Setup to DeploymentUnit Testing from Setup to Deployment
Unit Testing from Setup to DeploymentMark Niebergall
 
Stacking Up Middleware
Stacking Up MiddlewareStacking Up Middleware
Stacking Up MiddlewareMark Niebergall
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatMark Niebergall
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatMark Niebergall
 
Relational Database Design Bootcamp
Relational Database Design BootcampRelational Database Design Bootcamp
Relational Database Design BootcampMark Niebergall
 
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Mark Niebergall
 
Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Mark Niebergall
 
Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018Mark Niebergall
 
Inheritance: Vertical or Horizontal
Inheritance: Vertical or HorizontalInheritance: Vertical or Horizontal
Inheritance: Vertical or HorizontalMark Niebergall
 
Cybersecurity State of the Union
Cybersecurity State of the UnionCybersecurity State of the Union
Cybersecurity State of the UnionMark Niebergall
 
Cryptography With PHP - ZendCon 2017 Workshop
Cryptography With PHP - ZendCon 2017 WorkshopCryptography With PHP - ZendCon 2017 Workshop
Cryptography With PHP - ZendCon 2017 WorkshopMark Niebergall
 
Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017Mark Niebergall
 
Leveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsLeveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsMark Niebergall
 
Defensive Coding Crash Course
Defensive Coding Crash CourseDefensive Coding Crash Course
Defensive Coding Crash CourseMark Niebergall
 

Mehr von Mark Niebergall (20)

Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023
 
Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023
 
Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023
 
Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022
 
Developing SOLID Code
Developing SOLID CodeDeveloping SOLID Code
Developing SOLID Code
 
Unit Testing from Setup to Deployment
Unit Testing from Setup to DeploymentUnit Testing from Setup to Deployment
Unit Testing from Setup to Deployment
 
Stacking Up Middleware
Stacking Up MiddlewareStacking Up Middleware
Stacking Up Middleware
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and Behat
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and Behat
 
Hacking with PHP
Hacking with PHPHacking with PHP
Hacking with PHP
 
Relational Database Design Bootcamp
Relational Database Design BootcampRelational Database Design Bootcamp
Relational Database Design Bootcamp
 
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
 
Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018
 
Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018
 
Inheritance: Vertical or Horizontal
Inheritance: Vertical or HorizontalInheritance: Vertical or Horizontal
Inheritance: Vertical or Horizontal
 
Cybersecurity State of the Union
Cybersecurity State of the UnionCybersecurity State of the Union
Cybersecurity State of the Union
 
Cryptography With PHP - ZendCon 2017 Workshop
Cryptography With PHP - ZendCon 2017 WorkshopCryptography With PHP - ZendCon 2017 Workshop
Cryptography With PHP - ZendCon 2017 Workshop
 
Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017
 
Leveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsLeveraging Composer in Existing Projects
Leveraging Composer in Existing Projects
 
Defensive Coding Crash Course
Defensive Coding Crash CourseDefensive Coding Crash Course
Defensive Coding Crash Course
 

KĂźrzlich hochgeladen

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile EnvironmentVictorSzoltysek
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfWilly Marroquin (WillyDevNET)
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 

KĂźrzlich hochgeladen (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

Starting Out With PHP