SlideShare a Scribd company logo
1 of 128
Download to read offline
PHP 8.1
What’s new and changed
Ayesh Karunaratne | https://aye.sh/talk/php81-drupalconeur-2021
#DrupalConEur
PHP 8.1
What’s new and changed
Ayesh Karunaratne | https://aye.sh/talk/php81-drupalconeur-2021
#DrupalConEur
@Ayeshlive | @phpwch
https://aye.sh | https://php.watch
Ayesh Karunaratne
Freelance Software Developer, Security Researcher, Full-time
traveler
ayesh@aye.sh
Kandy, Sri Lanka - Everywhere
PHP 8.1
New and changed
New and changed
PHP 8.1
PHP 8.1
PHP 8.0 General Availability
2020 Nov 26
2021 Nov 25
14 Jun 2021 PHP 8.1 - First alpha
20 Jul 2021 Feature-freeze / First beta
2021 Oct 04 DrupalCon Europe
02 Sep 2021 First Release Candidate
New Features
Enums
Fibers
Readonly Properties
Changed Functionality
Deprecations
Backwards Compatibility
PHP 8.1: New and Changed
Type System Improvements
Misc.
Testing out today
Enums
Fibers
Readonly
Properties
PHP 8.1: New and Changed
Type
System
Improvements
Misc.
New Features Changed Functionality Deprecations
Backwards
Compatibility
Testing out today
PHP 8.1
New Features
New Features
Enums
core/modules/comment/src/Plugin/Field/FieldType/CommentItemInterface.php
New Features: Enums
core/modules/comment/src/Plugin/Field/FieldType/CommentItemInterface.php
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
core/modules/comment/src/Plugin/views/filter/NodeComment.php
New Features: Enums
core/modules/comment/src/Plugin/views/filter/NodeComment.php
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
New Features: Enums
• Enums can have zero or more members
New Features: Enums
• Enums can have zero or more members
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
is_object(Suit::Hearts);
// true
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
var_dump(Suit::Hearts);
// enum(Suit::Hearts)
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
• May contain string|int backed values
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
• May contain string|int backed values
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
• May contain string|int backed values
• May contain non-duplicated constants
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
• May contain string|int backed values
• May contain non-duplicated constants
• May contain static methods
Suit::cheer();
// Yay!
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
• May contain string|int backed values
• May contain non-duplicated constants
• May contain static methods
• May contain non-staticmethods
Suit::Clubs->show();
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
• May contain string|int backed values
• May contain non-duplicated constants
• May contain static methods
• May contain non-static methods
• $this refers to the Enumerated element
Suit::Clubs->show();
enum(AppPlayingCardsSuit::Clubs)
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
• May contain string|int backed values
• May contain non-duplicated constants
• May contain static methods
• May contain non-static methods
• $this refers to the Enumerated element
• ->nameproperty is the name of the member
Suit::Clubs->show();
enum(AppPlayingCardsSuit::Clubs)
string(5) "Clubs"
string(5) "Clubs"
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
• May contain string|int backed values
• May contain non-duplicated constants
• May contain static methods
• May contain non-static methods
• $this refers to the Enumerated element
• ->nameproperty is the name of the member
• ->value property is the backed value
Suit::Clubs->show();
enum(AppPlayingCardsSuit::Clubs)
string(5) "Clubs"
string(5) "Clubs"
string(6) "♣️"
string(6) "♣️"
New Features: Enums
• Enums can have zero or more members
• Enum members are objects
• Enums can be namespaced and autoloaded
• May contain string|int backed values
• May contain non-duplicated constants
• May contain static methods
• May contain non-static methods
• $this refers to the Enumerated element
• ->nameproperty is the name of the member
• ->value property is the backed value
Suit::Clubs->show();
enum(AppPlayingCardsSuit::Clubs)
string(5) "Clubs"
string(5) "Clubs"
string(6) "♣️"
string(6) "♣️"
New Features: Enums
Class Semantics
• Supports namespaces
• Supports traits
• Supports autoloading
• Supports magic constants
• Supports instanceof
• Supports methods
New Features: Enums
Enum Semantics
• Must not contain state
New Features: Enums
Enum Semantics
• Must not contain state
• Enum members are identical
to same member
New Features: Enums
New Features: Enums
New Features: Enums
$connection->insert('mytable')
->fields([
'entity_id' => $entity->getId(),
'comment' => $commentState->value,
])
->execute();
New Features: Enums
$connection->insert('mytable')
->fields([
'entity_id' => $entity->getId(),
'comment' => $commentState->value,
])
->execute();
New Features: Enums
$database->query("
SELECT entity_id
FROM {my_table}
WHERE status = :status",
[':status' => CommentStatus::OPEN->value]
);
New Features: Enums
$database->query("
SELECT entity_id
FROM {my_table}
WHERE status = :status",
[':status' => CommentStatus::OPEN->value]
);
New Features: Enums
$database->query("
SELECT entity_id
FROM {my_table}
WHERE status = :status",
[':status' => CommentStatus::OPEN->value]
);
New Features: Enums
$database->query("
SELECT entity_id
FROM {my_table}
WHERE status = :status",
[':status' => CommentStatus::OPEN->value]
);
New Features: Enums
$state = $formState->getValue('comment_state');
$state = CommentStatus::from($state);
$node->setCommentState($state);
New Features: Enums
$state = $formState->getValue('comment_state');
$state = CommentStatus::from($state);
$node->setCommentState($state);
New Features: Enums
$state = $formState->getValue('comment_state');
$state = CommentStatus::from($state);
$node->setCommentState($state);
New Features: Enums
enum(CommentStatus::Open)
New Features
Fibers
New Features: Fibers
Lightweight and controlled concurrency to PHP
A Fiber is a code block that maintains its own stack (variables and state), that can be
started, suspended, or terminated cooperatively by the main code and the Fiber.
Fibers
New Features: Fibers
Normal Execution Flow
Start End
New Features: Fibers
Concurrent Execution Flow
Start End
New Features: Fibers
Concurrent Execution Flow
Start End
New Features: Fibers
Concurrent Execution Flow
Start End
New Features: Fibers
Concurrent Execution Flow
Start End
$fiber = new Fiber();
$fiber->start();
Fiber::suspend()
$fiber->resume()
Fiber::suspend()
$fiber->resume()
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
Main started
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
Main started
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
Main started
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
Main started
Fiber started
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
Main started
Fiber started
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
Main started
Fiber started
Fiber returned
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
Main started
Fiber started
Fiber returned
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
Main started
Fiber started
Fiber returned
Fiber resumed
New Features: Fibers
echo "Main started";
$fiber = new Fiber(function(): void {
echo "Fiber started";
Fiber::suspend();
echo "Fiber resumed";
});
$fiber->start();
echo "Fiber returned";
$fiber->resume();
echo "Fiber Ended";
Main started
Fiber started
Fiber returned
Fiber resumed
Fiber Ended
New Features: Fibers
final class Fiber {
public function __construct(callable $callback) {}
public function start(mixed ...$args): mixed {}
public static function suspend(mixed $value = null): mixed {}
public function resume(mixed $value = null): mixed {}
public static function getCurrent(): ?self {}
public function getReturn(): mixed {}
public function throw(Throwable $exception): mixed {}
public function isStarted(): bool {}
public function isSuspended(): bool {}
public function isRunning(): bool {}
public function isTerminated(): bool {}
}
https://php.watch/versions/8.1/fibers
New Features
Readonly Properties
New Features: Readonly Properties
Properties with the readonly flag can only be initialized
from object scope, and cannot be overwritten.
Readonly Properties
New Features: Readonly Properties
New Features: Readonly Properties
New Features: Readonly Properties
New Features: Readonly Properties
New Features
Type System Improvements
New Features: Type System Improvements
Intersection Types
New Features: Type System Improvements
Intersection Types
New Features: Type System Improvements
Intersection Types
New Features: Type System Improvements
Intersection Types
New Features: Type System Improvements
Intersection Types
New Features: Type System Improvements
Intersection Types
New Features: Type System Improvements
type
New Features: Type System Improvements
type
New Features: Type System Improvements
type
New Features
Other New Features
New Features: Other New Features
• Final class constants
• New and functions
• New function
• Sodium functions
• First-class callable syntax
• Explicit Octal numeral notation
• xxHash and MurmurHash3 hashing algorithms
• Directory-upload support with
Changed Functionality
Changed Functionality
Tentative Return Types
Changed Functionality
Tentative Return Types
Changed Functionality
Tentative Return Types
Changed Functionality
Tentative Return Types
Changed Functionality
Tentative Return Types
Changed Functionality
Tentative Return Types
Changed Functionality
Variable Restrictions
Changed Functionality
Variable Restrictions
Changed Functionality
Resource to Object Migrations
Extension resource (PHP < 8.1) object (PHP >= 8.1)
GD gd font (integer) GdFont
FTP ftp FTPConnection
IMAP imap IMAPConnection
finfo file_info finfo
PSpell pspell (int) PSpellDictionary
PSpell pspell config (int) PSpellConfig
LDAP ldap link LDAPConnection
LDAP ldap result LDAPResult
LDAP ldap result entry LDAPResultEntry
PgSQL pgsql link PgSqlConnection
PgSQL pgsql result PgSqlResult
PgSQL pgsql large object PgSqlLob
Deprecations
Deprecations
• Passing to non-nullable internal function parameters is deprecated
• Return types in PHP built-in class methods and deprecation notices
• Automatic conversion of "false" into an empty array on write operands is deprecated.
• Serializable interface deprecated
• Implicit incompatible float to int conversion is deprecated
• Calling a static method or accessing a static property directly on a trait is deprecated
• mysqli::get_client_info method and mysqli_get_client_info($param) is deprecated
• date_sunrise, date_sunset functions and related INI settings are deprecated
• strftime() and gmstrftime() functions are deprecated
• mhash*() functions (hash extension) are deprecated
• filter.default and filter.default_options INI settings are deprecated
• PDO::FETCH_SERIALIZE is deprecated
• auto_detect_line_endings INI directive is deprecated
• MySQLi: mysqli_driver->driver_version property is deprecated
Backwards Compatibility
Backwards Compatibility
Drupal 10
Drupal 9.3
Drupal 8.9 – Until Nov 2021
Drupal 7 – Until Nov 2022
Backwards Compatibility
Trying Out PHP 8.1
Trying Out PHP 8.1
Try it online with 3v4l.org
Trying out Enums today
Nightly Docker Images
docker pull phpdaily/php:8.1-dev
Trying out Enums today
Compiled Windows Binaries
https://windows.php.net/qa/ https://www.apachehaus.com/cgi-
bin/download.plx
Trying out Enums today
Self-compile PHP from source
$ git clone git@github.com:php/php-src.git
$ ./buildconf
$ ./configure
$ make -j$(nproc)
$ ./sapi/cli/php -a
https://php.watch/articles/compile-php-ubuntu
https://php.watch/articles/compile-php-fedora-rhel-centos
Further Resources
• https://aye.sh/talk/php81-drupalconeur-2021
• https://php.watch/versions/8.1/enums
• https://php.watch/versions/8.1/fibers
• https://php.watch/versions/8.1/readonly
• https://php.watch/versions/8.1
• https://github.com/phpdaily/php
• https://3v4l.org/
• https://php.watch/articles/compile-php-ubuntu
• https://php.watch/articles/compile-php-fedora-rhel-centos
Questions?
No question is too small.
#DrupalConEur @Ayeshlive ayesh@php.watch
https://aye.sh/talk/php81-drupalconeur-2021
Thank You
Dank u
dankie
faleminderit
‫لك‬ ‫شكرا‬
Շնորհակալություն
hvala
благодаря
gràcies
M
̀ h’gōi
děkuji
tak
tänan
kiitos
Благодаря ти
danke
ευχαριστώ
mahalo
.
‫תודה‬
dhanyavād
köszönöm
takk
terima kasih
grazie
arigatô
cảm ơn bạn
paldies
choukrane
ačiū
Благодарам
grazzi
谢谢
Баярлалаа
dziękuję
obrigado
mulţumesc
спасибо
xвала
Ďakujem
gracias
tack
நன்றி
kop khun
teşekkür ederim
Дякую
diolch
a dank ngiyabonga
ස්තුතියි

More Related Content

What's hot

ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptWojciech Dzikowski
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Regular expression
Regular expressionRegular expression
Regular expressionLarry Nung
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & StreamsEyal Vardi
 
1. Arrow Functions | JavaScript | ES6
1. Arrow Functions | JavaScript | ES61. Arrow Functions | JavaScript | ES6
1. Arrow Functions | JavaScript | ES6pcnmtutorials
 
Web 2 | CSS - Cascading Style Sheets
Web 2 | CSS - Cascading Style SheetsWeb 2 | CSS - Cascading Style Sheets
Web 2 | CSS - Cascading Style SheetsMohammad Imam Hossain
 
Collections Framework
Collections FrameworkCollections Framework
Collections FrameworkSunil OS
 
Regular Expressions grep and egrep
Regular Expressions grep and egrepRegular Expressions grep and egrep
Regular Expressions grep and egrepTri Truong
 
Quicksort - a whistle-stop tour of the algorithm in five languages and four p...
Quicksort - a whistle-stop tour of the algorithm in five languages and four p...Quicksort - a whistle-stop tour of the algorithm in five languages and four p...
Quicksort - a whistle-stop tour of the algorithm in five languages and four p...Philip Schwarz
 
Class Intro / HTML Basics
Class Intro / HTML BasicsClass Intro / HTML Basics
Class Intro / HTML BasicsShawn Calvert
 
Introduction to Cascading Style Sheets (CSS)
Introduction to Cascading Style Sheets (CSS)Introduction to Cascading Style Sheets (CSS)
Introduction to Cascading Style Sheets (CSS)Chris Poteet
 

What's hot (20)

CSS
CSS CSS
CSS
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern Javascript
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Basic of PHP
Basic of PHPBasic of PHP
Basic of PHP
 
Javascript
JavascriptJavascript
Javascript
 
CSS Selectors
CSS SelectorsCSS Selectors
CSS Selectors
 
Introduction to PHP
Introduction to PHPIntroduction to PHP
Introduction to PHP
 
Regular expression
Regular expressionRegular expression
Regular expression
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & Streams
 
Css ppt
Css pptCss ppt
Css ppt
 
Java script arrays
Java script arraysJava script arrays
Java script arrays
 
Css colors
Css   colorsCss   colors
Css colors
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
1. Arrow Functions | JavaScript | ES6
1. Arrow Functions | JavaScript | ES61. Arrow Functions | JavaScript | ES6
1. Arrow Functions | JavaScript | ES6
 
Web 2 | CSS - Cascading Style Sheets
Web 2 | CSS - Cascading Style SheetsWeb 2 | CSS - Cascading Style Sheets
Web 2 | CSS - Cascading Style Sheets
 
Collections Framework
Collections FrameworkCollections Framework
Collections Framework
 
Regular Expressions grep and egrep
Regular Expressions grep and egrepRegular Expressions grep and egrep
Regular Expressions grep and egrep
 
Quicksort - a whistle-stop tour of the algorithm in five languages and four p...
Quicksort - a whistle-stop tour of the algorithm in five languages and four p...Quicksort - a whistle-stop tour of the algorithm in five languages and four p...
Quicksort - a whistle-stop tour of the algorithm in five languages and four p...
 
Class Intro / HTML Basics
Class Intro / HTML BasicsClass Intro / HTML Basics
Class Intro / HTML Basics
 
Introduction to Cascading Style Sheets (CSS)
Introduction to Cascading Style Sheets (CSS)Introduction to Cascading Style Sheets (CSS)
Introduction to Cascading Style Sheets (CSS)
 

Similar to PHP 8.1 - What's new and changed

Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?Martin Alfke
 
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet
 
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
 
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolsCPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolscharsbar
 
Learning Puppet basic thing
Learning Puppet basic thing Learning Puppet basic thing
Learning Puppet basic thing DaeHyung Lee
 
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T Puppet
 
Writing a REST Interconnection Library in Swift
Writing a REST Interconnection Library in SwiftWriting a REST Interconnection Library in Swift
Writing a REST Interconnection Library in SwiftPablo Villar
 
Synapseindia reviews on array php
Synapseindia reviews on array phpSynapseindia reviews on array php
Synapseindia reviews on array phpsaritasingh19866
 
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Robert Nelson
 

Similar to PHP 8.1 - What's new and changed (20)

Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?
 
05php
05php05php
05php
 
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
 
05php
05php05php
05php
 
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
 
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolsCPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its tools
 
Php classes in mumbai
Php classes in mumbaiPhp classes in mumbai
Php classes in mumbai
 
Initializing arrays
Initializing arraysInitializing arrays
Initializing arrays
 
Learning Puppet basic thing
Learning Puppet basic thing Learning Puppet basic thing
Learning Puppet basic thing
 
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
 
Rails 4.0
Rails 4.0Rails 4.0
Rails 4.0
 
PHP - Introduction to PHP
PHP -  Introduction to PHPPHP -  Introduction to PHP
PHP - Introduction to PHP
 
05php
05php05php
05php
 
Writing a REST Interconnection Library in Swift
Writing a REST Interconnection Library in SwiftWriting a REST Interconnection Library in Swift
Writing a REST Interconnection Library in Swift
 
Intro to Perl and Bioperl
Intro to Perl and BioperlIntro to Perl and Bioperl
Intro to Perl and Bioperl
 
Php Intermediate
Php IntermediatePhp Intermediate
Php Intermediate
 
Synapseindia reviews on array php
Synapseindia reviews on array phpSynapseindia reviews on array php
Synapseindia reviews on array php
 
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
 

More from Ayesh Karunaratne

More from Ayesh Karunaratne (7)

PHP Enums - PHPCon Japan 2021
PHP Enums - PHPCon Japan 2021PHP Enums - PHPCon Japan 2021
PHP Enums - PHPCon Japan 2021
 
PHP 8.1: Enums
PHP 8.1: EnumsPHP 8.1: Enums
PHP 8.1: Enums
 
Php Enums
Php EnumsPhp Enums
Php Enums
 
PHP 8: What's New and Changed
PHP 8: What's New and ChangedPHP 8: What's New and Changed
PHP 8: What's New and Changed
 
OWASP Top 10 - DrupalCon Amsterdam 2019
OWASP Top 10 - DrupalCon Amsterdam 2019OWASP Top 10 - DrupalCon Amsterdam 2019
OWASP Top 10 - DrupalCon Amsterdam 2019
 
PHP7+: The Whys and the Hows
PHP7+: The Whys and the HowsPHP7+: The Whys and the Hows
PHP7+: The Whys and the Hows
 
No! Drupal Europe 2018
No! Drupal Europe 2018No! Drupal Europe 2018
No! Drupal Europe 2018
 

Recently uploaded

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

PHP 8.1 - What's new and changed