Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
A State of PHP in 2020
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Konrad Alfaro
February 12, 2020
Programming
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
A State of PHP in 2020
Konrad Alfaro
February 12, 2020
More Decks by Konrad Alfaro
See All by Konrad Alfaro
Sylius as a... Vending machine? A tale of unusual Sylius' use-cases
radnok
0
72
Finding lost features - How NOT to build mazes and complexity
radnok
0
360
Tablice zostawmy Mojżeszowi - czyli o strukturach danych w PHPie
radnok
0
410
Sylius as an Infrastructure
radnok
0
350
Tablice zostawmy Mojżeszowi
radnok
1
480
Framework Agnostic
radnok
0
690
PHP & GraphQL - Will it blend?
radnok
0
250
Other Decks in Programming
See All in Programming
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
230
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
410
すこし踏み込む CancellationToken
htkym
2
1.7k
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.4k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
250
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.1k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
780
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
250
phperだってパンチカードでコーディングしたい
o0h
PRO
0
300
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
210
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
450
Accessibility Awareness
sabderemane
1
250
Prompt Engineering for Job Search
mfonobong
0
500
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Test your architecture with Archunit
thirion
2
2.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Skip the Path - Find Your Career Trail
mkilby
1
250
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
560
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Transcript
A state of PHP in 2020 BetterCollective Ciasteczka #4 -
Dev Meetup
Konrad Alfaro Software Developer @ BetterCollective
None
None
Thank you! github.com/RadnoK twitter.com/RadnoK_ radnok.com
None
Jokes aside
The (sad) past
Low entry level PHP
None
None
None
~ Już na pewno NIE mój kolega
None
None
None
github.com/google/tink/issues/104#issuecomment-417512050
None
It’s simple!
None
None
None
roots.io
None
< 7.0
Versioning
None
OOP, Dynamic types only…
Current problems
Standard PHP Library functions
Standard PHP Library functions SPL for short*
Standard PHP Library functions SPL for short*
array_map( callable $callback, array $array1 [, array $... ] )
: array array_filter( array $array [, callable $callback [, int $flag = 0 ]] ): array
array_map( callable $callback, array $array1 [, array $... ] )
: array array_filter( array $array [, callable $callback [, int $flag = 0 ]] ): array
phpsadness.com
Modern times
Language itself
PHP 7.x
None
Fancy and cool features
Type-hints / Return types!
None
None
Arrow functions!
None
None
Null coalescing assignment operator
Array spread operator
And many more…
Yes, we know that others have it for a long
time…
But we are getting there, too!
Dependencies
None
Ich LIBe Dich
None
None
None
None
composer.json composer.lock
None
Frameworks
None
None
❤
There is something slightly similar…
None
•Both like Annotations, YAMLs •Use separate fully-featured ORM •Is based
on Components
But it’s (not) a full-stack framework!
None
None
But wait! There is something similar…
None
•Model View Controller (MVC) •ActiveRecord pattern for ORM •Authorization out
of the box •Full-stack framework •Magic…
None
And others…
None
None
None
But we’ve got more!
eCommerce world
⚡
None
Tools
None
blog.jetbrains.com/phpstorm/category/ php-annotated-monthly/
None
None
None
Libraries
Static Code Analysis
Yup, we do that
github.com/exakat/php-static-analysis-tools
Event-Driven in PHP?
Yup, we do that
reactphp.org
Serverless?
Yup, we do that
github.com/brefphp/bref
Tests?
Yeah, we do that too!
None
None
Event Sourcing, CQRS etc.
I’ve got a Prooph
github.com/prooph
Machine Learning?
Yup, even that
github.com/php-ai/php-ml
⭐ Standards?
Hell, YES!
None
None
None
None
None
PHP around us
None
None
None
None
Well, no longer…
None
gist.github.com/nikcub/3833406
None
Well, no longer…
HHVM & Hack
HipHop Virtual Machine
<?hh Hack Language
None
Implemented in PHP! Implemented in PHP!
Implemented in PHP! We are still waiting… Implemented in PHP!
PHP 7.4 kicks in!
None
None
None
Community
Meet-ups
None
None
None
❤
None
None
Conferences
2019… and more…
confs.tech/php
Online
None
None
None
None
Last thoughts
twitter.com/akrabat/status/1223214852191268865
PHP is just a tool. Like any other tool, it
can be used in a bad or a good way.
Thank you! github.com/RadnoK twitter.com/RadnoK_ radnok.com
PS. Rekrutujemy BetterCollective bettercollective.com/career