Standardize it! PHP Standards explained PHPMeetup Budapest | 2013. 10. 08. Francsics Balázs PHP dev @ Ustream | @winyaa on Twitter
Jun 21, 2015
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?
Források:http://www.php-fig.org/https://github.com/php-fig/fig-standards/wiki/PHP-Standard-Recommendationshttps://groups.google.com/forum/#!forum/php-fig
http://www.php-fig.org/psr/0/http://www.php-fig.org/psr/1/http://www.php-fig.org/psr/2/https://github.com/php-fig/fig-standards/tree/master/proposed/psr-4-autoloaderhttps://github.com/phpDocumentor/fig-standards/tree/master/proposedhttps://github.com/Crell/fig-standards/tree/Cache/proposed
http://twitter.com/winyaa :)