Ondřej Flídr <ul><ul><li>Zend Framework Coding Standard </li></ul></ul>
Proč Coding Standard? <ul><li>Přehlednost </li></ul><ul><li>Lepší kvalita kódu </li></ul><ul><li>Méně chyb </li></ul>Ondře...
PHP soubory <ul><li>Nepoužívat  ?> </li></ul><ul><li>Pro odsazení 4 mezery </li></ul><ul><li>Řádek maximálně 120 znaků </l...
Konvence pojmenování - třídy <ul><li>Mapují cestu k souboru </li></ul><ul><li>Pouze písmena, čísla a podtržítko </li></ul>...
Konvence pojmenování - rozhraní <ul><li>Platí totéž co pro třídy </li></ul><ul><li>Končí slovem Interface </li></ul><ul><u...
Konvence pojmenování - soubory <ul><li>Pouze písmena, čísla, podtržítko a pomlčka </li></ul><ul><ul><li>Mezera je zakázána...
Konvence pojmenování - funkce <ul><li>Pouze písmena </li></ul><ul><li>Začíná malým písmenem </li></ul><ul><li>Víceslovné n...
Konvence pojmenování - metody <ul><li>Platí totéž co u funkcí </li></ul><ul><li>Pokud implementují NV, dodržují pojmenován...
Konvence pojmenování – proměnné <ul><li>Pouze písmena a čísla </li></ul><ul><ul><li>Podtržítko pouze u private a protected...
Konvence pojmenování – konstanty <ul><li>Čísla, velká písmena, podtržítko </li></ul><ul><li>Slova oddělena _ </li></ul><ul...
Styl zápisu kódu – vyznačení PHP <ul><li>Povolený je pouze plný zápis, tj.  <?php ?> </li></ul><ul><ul><li>Short tagy jeno...
Styl zápisu kódu – Řetězce <ul><li>Pokud neobsahuje proměnnou, uzavřít do ' </li></ul><ul><li>Pokud řetězec obsahuje ', mo...
Styl zápisu kódu – Pole <ul><li>Číselné indexy nezáporné </li></ul><ul><li>Prvky oddělené mezerou </li></ul><ul><ul><li>$a...
Styl zápisu kódu – Deklarace tříd <ul><li>Názvy dle konvence pojmenování </li></ul><ul><li>Pouze jedna třída v jednom soub...
Styl zápisu kódu – členy tříd <ul><li>Dle příslušné konvence zápisu </li></ul><ul><li>Zákaz používání  var </li></ul><ul><...
Styl zápisu kódu – deklarace metod <ul><li>Pojmenování dle konvence </li></ul><ul><li>Vždy uvádět viditelnost pomocí  publ...
Styl zápisu kódu – volání metod <ul><li>Argumenty odděleny mezerou za čárkou </li></ul><ul><li>Pokud je argumentem pole, j...
Styl zápisu kódu – řídící struktury <ul><li>if / else / else if </li></ul><ul><li>Podmínky odděleny mezerou z obou stran, ...
Styl zápisu kódu – řídící struktury <ul><li>switch </li></ul><ul><li>Proměnná ohraničena mezerou </li></ul><ul><ul><li>swi...
Styl zápisu kódu – dokumentace <ul><li>Bloky kompatibilní s phpDocumentor </li></ul><ul><li>Každý soubor s kódem musí obsa...
Prostor pro vás Ondřej Flídr <ul><ul><li>? </li></ul></ul>
Dostupnost slidů a kódu <ul><li>http://blog.snipers-softworks.net </li></ul><ul><ul><li>Včetně doprovodného textu </li></u...
Upcoming SlideShare
Loading in...5
×

Zend Framework Coding Standard

846

Published on

Popis Zend Framework Coding Standardu pro psaní PHP projektů

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
846
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Zend Framework Coding Standard"

  1. 1. Ondřej Flídr <ul><ul><li>Zend Framework Coding Standard </li></ul></ul>
  2. 2. Proč Coding Standard? <ul><li>Přehlednost </li></ul><ul><li>Lepší kvalita kódu </li></ul><ul><li>Méně chyb </li></ul>Ondřej Flídr
  3. 3. PHP soubory <ul><li>Nepoužívat ?> </li></ul><ul><li>Pro odsazení 4 mezery </li></ul><ul><li>Řádek maximálně 120 znaků </li></ul><ul><li>Pro konec řádků používat LF </li></ul>Ondřej Flídr
  4. 4. Konvence pojmenování - třídy <ul><li>Mapují cestu k souboru </li></ul><ul><li>Pouze písmena, čísla a podtržítko </li></ul><ul><li>Ve slovech první písmeno velké, ostatní malá </li></ul><ul><ul><li>Možno porušit, viz. Zend_ X ml R pc </li></ul></ul><ul><li>Prefix Zend_ pouze pro oficiální třídy ZF </li></ul>Ondřej Flídr
  5. 5. Konvence pojmenování - rozhraní <ul><li>Platí totéž co pro třídy </li></ul><ul><li>Končí slovem Interface </li></ul><ul><ul><li>Tím je dán i název souboru </li></ul></ul>Ondřej Flídr
  6. 6. Konvence pojmenování - soubory <ul><li>Pouze písmena, čísla, podtržítko a pomlčka </li></ul><ul><ul><li>Mezera je zakázána! </li></ul></ul><ul><li>Soubory s PHP kódem mají příponu .php </li></ul><ul><ul><li>Vyjma View skriptů </li></ul></ul>Ondřej Flídr
  7. 7. Konvence pojmenování - funkce <ul><li>Pouze písmena </li></ul><ul><li>Začíná malým písmenem </li></ul><ul><li>Víceslovné názvy dodržují camelCase </li></ul><ul><li>Názvy popisují funkci </li></ul><ul><li>Akcesory prefixovány get a set </li></ul><ul><li>Použití globálních funkcí není doporučeno </li></ul><ul><ul><li>Balit do statických tříd </li></ul></ul>Ondřej Flídr
  8. 8. Konvence pojmenování - metody <ul><li>Platí totéž co u funkcí </li></ul><ul><li>Pokud implementují NV, dodržují pojmenování typické pro tento NV </li></ul><ul><ul><li>Napr. GetInstance() pro Singleton </li></ul></ul><ul><li>Private a Protected metody začínají _ </li></ul>Ondřej Flídr
  9. 9. Konvence pojmenování – proměnné <ul><li>Pouze písmena a čísla </li></ul><ul><ul><li>Podtržítko pouze u private a protected </li></ul></ul><ul><li>camelCase </li></ul><ul><li>Samovysvětlující </li></ul><ul><ul><li>Vyjma čítačů v cyklech apod. </li></ul></ul>Ondřej Flídr
  10. 10. Konvence pojmenování – konstanty <ul><li>Čísla, velká písmena, podtržítko </li></ul><ul><li>Slova oddělena _ </li></ul><ul><li>Pouze jako členy tříd pomocí const </li></ul>Ondřej Flídr
  11. 11. Styl zápisu kódu – vyznačení PHP <ul><li>Povolený je pouze plný zápis, tj. <?php ?> </li></ul><ul><ul><li>Short tagy jenom ve view pro zápis <?= ?> </li></ul></ul>Ondřej Flídr
  12. 12. Styl zápisu kódu – Řetězce <ul><li>Pokud neobsahuje proměnnou, uzavřít do ' </li></ul><ul><li>Pokud řetězec obsahuje ', možno použít &quot; </li></ul><ul><li>Pro spojování řetězců použít . z obou stran oddělenou mezerou </li></ul><ul><ul><li>'Lorem ipsum ' . 'dolor sit amet'; </li></ul></ul><ul><li>Zarovnat zalomení </li></ul><ul><ul><li>$sql = &quot;SELECT 'name' FROM 'people' &quot; . &quot;WHERE 'name' = 'Susan' &quot; . &quot;ORDER BY 'age' ASC&quot;; </li></ul></ul>Ondřej Flídr
  13. 13. Styl zápisu kódu – Pole <ul><li>Číselné indexy nezáporné </li></ul><ul><li>Prvky oddělené mezerou </li></ul><ul><ul><li>$array = array(1, 2, 'Zend'); </li></ul></ul><ul><li>Zarovnat zalomení </li></ul><ul><ul><li>$array = array(1, 2, 3, 'I', 'Can', 'Haz', 'Cheezburger', 'Lolcat'); </li></ul></ul><ul><li>U asociativních polí každý prvek na samostatném řádku, pod sebe zarovnat => </li></ul>Ondřej Flídr
  14. 14. Styl zápisu kódu – Deklarace tříd <ul><li>Názvy dle konvence pojmenování </li></ul><ul><li>Pouze jedna třída v jednom souboru </li></ul><ul><li>Odsazování pomocí mezer </li></ul><ul><li>V souboru pouze kód třídy </li></ul><ul><li>Závorky na novém řádku </li></ul><ul><ul><li>class LoremIpsum { // kod tridy } </li></ul></ul>Ondřej Flídr
  15. 15. Styl zápisu kódu – členy tříd <ul><li>Dle příslušné konvence zápisu </li></ul><ul><li>Zákaz používání var </li></ul><ul><li>Vždy zapisovat viditelnost pomocí public , private nebo protected </li></ul><ul><li>Doporučeno použití akcesorů </li></ul>Ondřej Flídr
  16. 16. Styl zápisu kódu – deklarace metod <ul><li>Pojmenování dle konvence </li></ul><ul><li>Vždy uvádět viditelnost pomocí public , protected nebo private </li></ul><ul><li>Závorky na nový řádek </li></ul><ul><li>Globální funkce silně nedoporučeny </li></ul>Ondřej Flídr
  17. 17. Styl zápisu kódu – volání metod <ul><li>Argumenty odděleny mezerou za čárkou </li></ul><ul><li>Pokud je argumentem pole, je možno jej zalomit dle konvencí pro pole </li></ul>Ondřej Flídr
  18. 18. Styl zápisu kódu – řídící struktury <ul><li>if / else / else if </li></ul><ul><li>Podmínky odděleny mezerou z obou stran, operátor také </li></ul><ul><ul><li>If ($a > 1) { </li></ul></ul><ul><li>Otevírací složená závorka na řádku s if, ukončovací na novém </li></ul>Ondřej Flídr
  19. 19. Styl zápisu kódu – řídící struktury <ul><li>switch </li></ul><ul><li>Proměnná ohraničena mezerou </li></ul><ul><ul><li>switch ($a) { </li></ul></ul><ul><li>case odsazeny o 4 mezery, jejich obsah o další </li></ul><ul><li>Každý switch musí obsahovat default sekci </li></ul>Ondřej Flídr
  20. 20. Styl zápisu kódu – dokumentace <ul><li>Bloky kompatibilní s phpDocumentor </li></ul><ul><li>Každý soubor s kódem musí obsahovat file-level blok, každá třída musí mít class-level blok </li></ul><ul><li>Každá metoda musí mít blok minimálně s popisem, všemi argumenty, návratovými hodnotami a vyhazovanými vyjímkami </li></ul><ul><li>Není nutné používat @access </li></ul>Ondřej Flídr
  21. 21. Prostor pro vás Ondřej Flídr <ul><ul><li>? </li></ul></ul>
  22. 22. Dostupnost slidů a kódu <ul><li>http://blog.snipers-softworks.net </li></ul><ul><ul><li>Včetně doprovodného textu </li></ul></ul><ul><li>http://ewiki.ilikethis.cz </li></ul><ul><ul><li>Sekce o certifikaci ZF </li></ul></ul><ul><ul><li>Kódy, slidy </li></ul></ul>Ondřej Flídr

×