ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Standardize it!
PHP Standards explained
PHPMeetup
Budapest | 2013. 10. 08.
Francsics Bal¨¢zs
PHP 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¨¢n
PHP Framework Interop Group
Kor¨¢bban PHP Standards Group
Jelenleg 28 projekt k¨¦pvisel? a tagja
?s mi az a PSR?
PHP Standards Recommendation
Aj¨¢nl¨¢s, egy egys¨¦gesebb PHP ¨¦rdek¨¦ben
A projekt ¨¢ltal deleg¨¢lt szem¨¦lyek szavaznak
Jelenleg 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:
SymfonyCoreRequest => /path/to/project/lib/vendor/Symfony/Core/Request.php
ZendMailMessage => /path/to/project/lib/vendor/Zend/Mail/Message.php
PSR-1 / Basic Coding Standard
Csak <?php ¨¦s <?= megengedett
F¨¢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: StudlyCaps
Konstansok: ALL_UPPERCASE
Met¨®dusok, f¨¹gv¨¦nyek: camelCase
PSR-0 megfelel¨¦s sz¨¹ks¨¦ges
PSR-2 / Coding Style Guide
K¨®d olvashat¨®s¨¢g¨¢t hivatott jav¨ªtani
Indent¨¢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?ek
Vez¨¦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¨¦sz
Syslog 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¨¢ltozata
Orvoss¨¢g a PSR-0 mell¨¦khat¨¢saira:
Val¨®di namespace vs _
$instance = new PackageFooBarBaz();
$instance = new PackageFoo_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¨¢l
CachePool, ¨¦s CacheItem defin¨ªci¨®
Ahogy az adat bemegy, ¨²gy kell kij?nnie
°­¨¦°ù»å¨¦²õ±ð°ì?
K?sz?n?m a figyelmet!
°­¨¦°ù»å¨¦²õ±ð°ì?
Forr¨¢sok:
http://www.php-fig.org/
https://github.com/php-fig/fig-standards/wiki/PHP-Standard-Recommendations
https://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-autoloader
https://github.com/phpDocumentor/fig-standards/tree/master/proposed
https://github.com/Crell/fig-standards/tree/Cache/proposed
http://twitter.com/winyaa :)

More Related Content

Viewers also liked (18)

PDF
?????????? 2
Ashkhen Grigoryan
?
PPTX
§¡§ß§Ñ§Ý§Ú§ä§Ú§Ü§Ñ §Ó §à§æ§æ§Ý§Ñ§Û§ß §Ú §à§ß§Ý§Ñ§Û§ß §â§Ö§Ü§Ý§Ñ§Þ§Ö. (§¥§£§ª§¬-2013)
internet27
?
PDF
Webinar starters op de woningmarkt: Klaar voor de Start
Fundament All Media
?
PDF
Nivel2
Kenyo Ch-y
?
PPTX
Menke korsholm
erikbachmann
?
PDF
?????_????_131010
DaishinSecurities
?
PPTX
Presentaci¨®n UOC Alumni - Ecommerce
Toni Mascar¨®
?
PPTX
Propiedad intelectual
noemaciel
?
PPTX
§¹§ä§à §ä§Ñ§Ü§à§Ö §ï§æ§æ§Ö§Ü§ä§Ú§Ó§ß§í§Û §ã§Ñ§Û§ä? §¤§à§ä§à§Ó§í§Ö §â§Ö§ê§Ö§ß§Ú§ñ §ß§Ñ §ã§Ý§å§Ø§Ò§Ö §å §Ó§Ñ§ê§Ö§Ô§à §ã§Ñ§Û§ä§Ñ §ß§Ñ §á§â§Ú§Þ§Ö...
internet27
?
PDF
ÊÀ½ç±¨Ö½Í·Ìõ1003
ÖÐ ÑëÉç
?
PPTX
????? ??? ???? ???
Ali Alsallal
?
PDF
Programma fondamentale del pes
Fabrizio Guccione
?
PPTX
Gudauskas, Renaldas ?Lietuvos valstyb?s informacijos politikos situacija ir p...
Lietuvos kompiuterinink? s?junga
?
PPTX
O Bras
Matheus Oliveira
?
PPTX
3?9? ????jpg
mkapi
?
ODP
T1 e1 guitart
Aleix Guitart Segura
?
PDF
Florestan Fernandes - "Os papeis pol¨ªticos dos intelectuais"
Mayara Dos Santos
?
?????????? 2
Ashkhen Grigoryan
?
§¡§ß§Ñ§Ý§Ú§ä§Ú§Ü§Ñ §Ó §à§æ§æ§Ý§Ñ§Û§ß §Ú §à§ß§Ý§Ñ§Û§ß §â§Ö§Ü§Ý§Ñ§Þ§Ö. (§¥§£§ª§¬-2013)
internet27
?
Webinar starters op de woningmarkt: Klaar voor de Start
Fundament All Media
?
Nivel2
Kenyo Ch-y
?
Menke korsholm
erikbachmann
?
?????_????_131010
DaishinSecurities
?
Presentaci¨®n UOC Alumni - Ecommerce
Toni Mascar¨®
?
Propiedad intelectual
noemaciel
?
§¹§ä§à §ä§Ñ§Ü§à§Ö §ï§æ§æ§Ö§Ü§ä§Ú§Ó§ß§í§Û §ã§Ñ§Û§ä? §¤§à§ä§à§Ó§í§Ö §â§Ö§ê§Ö§ß§Ú§ñ §ß§Ñ §ã§Ý§å§Ø§Ò§Ö §å §Ó§Ñ§ê§Ö§Ô§à §ã§Ñ§Û§ä§Ñ §ß§Ñ §á§â§Ú§Þ§Ö...
internet27
?
ÊÀ½ç±¨Ö½Í·Ìõ1003
ÖÐ ÑëÉç
?
????? ??? ???? ???
Ali Alsallal
?
Programma fondamentale del pes
Fabrizio Guccione
?
Gudauskas, Renaldas ?Lietuvos valstyb?s informacijos politikos situacija ir p...
Lietuvos kompiuterinink? s?junga
?
3?9? ????jpg
mkapi
?
T1 e1 guitart
Aleix Guitart Segura
?
Florestan Fernandes - "Os papeis pol¨ªticos dos intelectuais"
Mayara Dos Santos
?

Standardize it!