Top Banner
Standardize it! PHP Standards explained PHPMeetup Budapest | 2013. 10. 08. Francsics Balázs PHP dev @ Ustream | @winyaa on Twitter
17

Standardize it!

Jun 21, 2015

Download

Technology

Előadásom a PHP-FIG munkacsoport által összeállított PSR-ekről.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Standardize it!

Standardize it!PHP Standards explained

PHPMeetupBudapest | 2013. 10. 08.

Francsics BalázsPHP dev @ Ustream | @winyaa on Twitter

Page 2: Standardize it!

Milyen a PHP standerdek nélkül?

Page 3: Standardize it!

Pont ilyen.

Page 4: Standardize it!

Van megoldás!A PHP-FIG munkacsoport meghatározott

néhány irányt.

Page 5: Standardize it!

Na de mi a fene az a PHP-FIG?

2009-ben született a php|tek konferenciánPHP Framework Interop Group

Korábban PHP Standards GroupJelenleg 28 projekt képviselő a tagja

Page 6: Standardize it!

És mi az a PSR?

PHP Standards RecommendationAjánlás, egy egységesebb PHP érdekében

A projekt által delegált személyek szavaznakJelenleg 4 elfogadott szabvány:PSR-0, PSR-1, PSR-2, PSR-3

További 3 kidolgozás és elfogadás alatt.

Page 7: Standardize it!

PSR-0 / Autoloading

Hatalmas lépés az újrahasznosíthatóság feléEgységes elnevezési konvenció:

\<Vendor Name>\(<Namespace>\)*<Class Name>A Composer és a PEAR PSR-0 kompatibilis

Például:\Symfony\Core\Request => /path/to/project/lib/vendor/Symfony/Core/Request.php

\Zend\Mail\Message => /path/to/project/lib/vendor/Zend/Mail/Message.php

Page 8: Standardize it!

PSR-1 / Basic Coding Standard

Csak <?php és <?= megengedettFájlok UTF-8 kódolásúak kell hogy legyenek

Egy fájlban csak deklaráció VAGY bármi más, ne mixeljük

Class nevek: StudlyCapsKonstansok: ALL_UPPERCASE

Metódusok, fügvények: camelCasePSR-0 megfelelés szükséges

Page 9: Standardize it!

PSR-2 / Coding Style Guide

Kód olvashatóságát hivatott javítaniIndentálás 4 space, csak semmi tab!

Ajánlott sorszélesség 80, de nincs limitációnamespace és use után üres sor

Class és metódus deklaráció után a kapcsos zárójel új sorban

Visibility kulcsszavak kötelezőekVezérlési szerkezetek szabályozása

PSR-1 megfelelés szükséges

Page 10: Standardize it!

PSR-2 / Coding Style Guide

Page 11: Standardize it!

PSR-3 / Logger Interface

Egységes naplózó interfészSyslog RFC szerint nyolc naplózási szint:emergency, alert, critical, error, warning, notice, info

Megadható kontextus az üzenethez

Néhány implementor:Monolog, Analog, Symfony, Mustache.php

Page 12: Standardize it!

(Review) PSR-4 / Autoloader

A PSR-0 egy modernebb változataOrvosság a PSR-0 mellékhatásaira:

Valódi namespace vs _$instance = new Package\Foo\Bar\Baz();

$instance = new Package\Foo_Bar_Baz();

Composer furcsaság:PSR-0: Foo/Bar/Baz => vendor/foo/bar/src/Foo/Bar/Baz

PSR-4: Foo/Bar/Baz => vendor/foo/bar/src/Baz

Page 13: Standardize it!

(Draft) PSR-5 / PHPDoc

A sok API dokumentációs markup-ot szeretné közös nevezőre hozni

Végre egységes formátum az annotációkra!

Page 14: Standardize it!

(Draft) PSR-6 / Cache

Cél ugyanaz, mint a PSR-3-nálCachePool, és CacheItem definíció

Ahogy az adat bemegy, úgy kell kijönnie

Page 15: Standardize it!

Kérdések?

Page 16: Standardize it!

Köszönöm a figyelmet!

Kérdések?