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
250
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
340
Procesanso datos con Hadoop: MapReduce y YARN
csuarez
0
320
Introducción a SCRUM
csuarez
0
310
Introducción a GIT
csuarez
1
210
Using CAD Systems and E-Learning in radiologist training
csuarez
0
89
CETA-CIEMAT: Salud + Investigación
csuarez
0
98
Other Decks in Programming
See All in Programming
エラーって何種類あるの?
kajitack
5
310
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
300
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
400
生成AIで日々のエラー調査を進めたい
yuyaabo
0
650
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
800
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
100
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
110
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
150
Benchmark
sysong
0
270
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
240
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
330
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
690
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Why Our Code Smells
bkeepers
PRO
337
57k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Making Projects Easy
brettharned
116
6.3k
Adopting Sorbet at Scale
ufuk
77
9.4k
Building an army of robots
kneath
306
45k
Rails Girls Zürich Keynote
gr2m
94
14k
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