Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHP Episodio VII: El Despertar de la Fuerza
Search
César Suárez Ortega
February 24, 2016
Programming
1
260
PHP Episodio VII: El Despertar de la Fuerza
César Suárez Ortega
February 24, 2016
Tweet
Share
More Decks by César Suárez Ortega
See All by César Suárez Ortega
Symfony y concurrencia: el componente Lock
csuarez
0
1k
Consumiendo una API REST con AngularJS
csuarez
0
330
Construyendo una API REST con Python y MongoDB
csuarez
0
280
Automatización de tareas con Ansible
csuarez
1
350
Procesanso datos con Hadoop: MapReduce y YARN
csuarez
0
330
Introducción a SCRUM
csuarez
0
320
Introducción a GIT
csuarez
1
220
Using CAD Systems and E-Learning in radiologist training
csuarez
0
95
CETA-CIEMAT: Salud + Investigación
csuarez
0
110
Other Decks in Programming
See All in Programming
コーディングエージェント概観(2025/07)
itsuki_t88
0
120
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
180
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
180
レトロゲームから学ぶ通信技術の歴史
kimkim0106
0
130
AI コーディングエージェントの時代へ:JetBrains が描く開発の未来
masaruhr
1
210
型で語るカタ
irof
0
790
階層化自動テストで開発に機動力を
ickx
1
410
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
640
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
1.2k
AIともっと楽するE2Eテスト
myohei
9
3.1k
[SRE NEXT] 複雑なシステムにおけるUser Journey SLOの導入
yakenji
0
720
Workers を定期実行する方法は一つじゃない
rokuosan
0
120
Featured
See All Featured
Producing Creativity
orderedlist
PRO
346
40k
Embracing the Ebb and Flow
colly
86
4.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
BBQ
matthewcrist
89
9.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
None
None
csuarez tharandur BEET.TECH
None
None
None
None
None
Novedades en PHP 5.x PHP 5.3 Namespaces: use keyword Closures
PHP 5.4 Traits Built-in server
Novedades en PHP 5.x PHP 5.5 Generators finally keyword PHP
5.6 Variadic functions: ... Keyword phpdbg
None
None
Hiphop HPHPc Compilador de PHP a C++ En tiempo de
ejecución (JIT compiler) HPHPi Intérprete para desarrollo Descontinuado
Hiphop vs PHP 5 http://php.webtutor.pl/en/2011/05/17/drupal-hiphop-for-php-vs-apc-benchmark/
None
hhvm Máquina virtual ¡No es un conversor de código! Compilador
JIT: PHP a byte code (HHBC) HHBC en código máquina x64 Optimización al vuelo Detección de zonas calientes
Hhvm vs hpHpC http://hhvm.com/blog/2027/faster-and-cheaper-the-evolution-of-the-hhvm-jit
Hhvm parity http://hhvm.com/blog/2813/we-are-the-98-5-and-the-16
Caso real: etSy https://codeascraft.com/2015/04/06/experimenting-with-hhvm-at-etsy/
Caso real: etSy https://codeascraft.com/2015/04/06/experimenting-with-hhvm-at-etsy/ La migración no es trivial Problemas
con las extensiones
Caso real: wikipedia https://blog.wikimedia.org/2014/12/29/how-we-made-editing-wikipedia-twice-as-fast/ Ahorro en infraestructuras Ayuda directa de
Facebook
None
Hack Superconjunto de PHP HHVM ejecuta Hack y PHP https://learnxinyminutes.com/docs/hack/
Hack
Hack
None
None
performance https://kinsta.com/blog/the-definitive-php-7-final-version-hhvm-benchmark/
performance https://kinsta.com/blog/the-definitive-php-7-final-version-hhvm-benchmark/
performance https://kinsta.com/blog/the-definitive-php-7-final-version-hhvm-benchmark/
performance https://kinsta.com/blog/the-definitive-php-7-final-version-hhvm-benchmark/
Scalar Type Hints <?php declare(strict_types=1); class ElePHPant { public $name,
$age, $cuteness, $evil; public function __construct(string $name, int $age, float $cuteness, bool $evil) { $this->name = $name; $this->age = $age; $this->cuteness = $cuteness; $this->evil = $evil; } }
ReturN Type Hints <?php function foo(): array { return [];
} function foo2(): DateTime { return null; // invalid } function &array_sort(array &$data): array { return $data; }
Spaceship operatoR // Si $a < $b devuelve -1 //
Si $a = $b devuelve 0 // Si $a > $b devuelve 1 function compare(int $a, int $b): int { return $a <=> $b; } unicode codePoint echo "\u{9999}"; //prints 香
Null coalesce operator $var = $value1 ?? $value2 ?? $value3;
Bind closure on Call $three = new Value(3); $four = new Value(4); $closure = function ($delta) { var_dump($this->getValue() + $delta); }; $closure->call($three, 4); // prints 7 $closure->call($four, 4); // prints 8
Group use declarations use Doctrine\Common\Collections\Expr\Comparison; use Doctrine\Common\Collections\Expr\Value; use Doctrine\Common\Collections\Expr\CompositeExpression; use
Doctrine\Common\Collections\Expr\{ Comparison, Value, CompositeExpression }; Anonymous classes $util->setLogger(new class { public function log($msg) { echo $msg; } });
Engine exceptions BaseException (abstract) ├── Exception extends BaseException ├── ErrorException
extends Exception └── RuntimeException extends Exception └── EngineException extends BaseException ├── TypeException extends EngineException ├── ParseException extends EngineException └── AssertionError extends EngineException
gracias