Standardize it!

Post on 21-Jun-2015

783 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Előadásom a PHP-FIG munkacsoport által összeállított PSR-ekről.

Transcript

Standardize it!PHP Standards explained

PHPMeetupBudapest | 2013. 10. 08.

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

Milyen a PHP standerdek nélkül?

Pont ilyen.

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

néhány irányt.

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

É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.

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

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

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

PSR-2 / Coding Style Guide

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

(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

(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!

(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

Kérdések?

Köszönöm a figyelmet!

Kérdések?

top related