plik konfiguracji
[watermeloncms.git] / 4DEVS
blobf5f4ae16e6dc41c3389a60eb96db641ead54a5f3
1      #### ##### #   # #        ##### ### ####    ##   #    # ###   ##
2     #    #  #   #   # #        #    # # #    #  #  #  ##   #  #   #  #
3     #       #   #   # #        #    # # #      #    # # #  #  #  #    #
4      ####   #    ###  #        #####  #  ####  ###### #  # #  #  ######
5          #  #     #   #        #      #      # #    # #   ##  #  #    #
6     #    #  #     #   #        #      # #    # #    # #    #  #  #    #
7      ####   #     #   ######   #     ### ####  #    # #    # ### #    #
9                 STYL PISANIA KODU WATERMELON CMS-A
10                                                      PRAWIE GOTOWE ...
11                       LEKTURA OBOWIĄZKOWA!
12 ____________________________________________________________________________
14    To jest obowiązyjący dla programistów Watermelon CMS-a styl programowa-
15    nia. Jednolity styl poprawia wygląd kodu i ułatwia jego późniejszą refa-
16    ktoryzację. Jeśli zauważysz, że ktoś zrobił inaczej, popraw.
18    1. Wygląd kodu
20       a) Taby
22          Nie ma tabów. Zamiast tabów trzy spacje!
24       b) Klamerki
26          Typowy styl - przed i po klamerce enter.
28          if(blablabla)
29          {
30             test();
31          }
32          else
33          {
34             test();
35          }
37       c) Operatory
39          Przed i po operatorze spacja.
41             $abcde = $x + ( 6 + 2 ) . 'abc';
43          Co do nawiasów - dotyczy tylko wyrażeń, czyli:
45             if(abc);
47          oraz
49             jakas_funkcja(); // nie robimy po nazwie funkcji spacji -
50                              // według nas jest to psucie czytelności.
52          ale
54             $test = ( $a * $h ) / 2;
56          Pisanie spacji nie dotyczy operatorów zasięgu ( "::" oraz "->" )
57          
58          Foo::Bar();
59          $foo->bar();
61          Po przecinku zawsze spacja!
63             funkcja(6, 8, 2);
65       d) Stringi
67          Normalnie używamy do stringów apostrofów. Cudzysłowy używamy dla
68          zapytań SQL, oraz tam gdzie to konieczne (np. "\n")
70       e) Stałe itp.
72          Stałe piszemy także dużymi literami. Stałe samego CMS-a zaczynają
73          się od WTRMLN_
75          Stałe własnego kodu musimy poprzedzić prefiksem, aby mieć pewność,
76          że nie będzie kolidowało z czymś innym.
78             FOO_SOMETHING
80          Pamiętamy, żeby używać stałych jeśli to NAPRAWDĘ konieczne.
82    2. Styl programowania
84       a) Pobieranie danych z DB
86          Dane z bazy danych pobieramy do obiektu. Nie pobieramy nic przez
87          funkcję mysql_result. Ewentualnie można użyć tablicy zamiast
88          obiektu, ale raczej preferujemy obiekty (czytelniej wygląda kod)
90          Przykład pobrania danych, które jest OK:
92             $data = $this->db->query("SELECT * FROM `test`");
94             while($item = $data->to_obj())
95             {
96                echo $data->text;
97             }
99       b) Działania na tablicach
101          Jeśli chcesz przejść po wszystkich elementach tablicy użyj foreach,
102          ponieważ jest dużo czytelniejsze od for. Ewentualnie można użyć
103          funkcji typu array_map, ale jest to raczej mniej wygodne i mniej
104          czytelne.
106          DOBRZE:
108             foreach($array as $item)
109             {
110                echo $item;
111             }
113          ŹLE:
115             for($i = 0 ; $i < count($array) ; $i++)
116             {
117                echo $array[$i];
118             }
120          Myślę, że różnica czytelności obu przykładów pokazuje, dlaczego
121          lepiej użyć foreach ;)
123       c) Globale
125          Zdecydowanie nie używamy globali. Są dobre sposoby, aby "przeżyć"
126          bez nich. Są to: pola (właściwości) klasy (zwykle prywatne, ale
127          mogą też być publiczne), singleton (odradzamy), referencje itd...
129    3. Pozostałe
131       Wszystkie pliki zapisujemy z kodowaniem UTF-8 i uniksowymi enterami,
132       tzn. \n, nie \r\n jak na windowsie.
134