poniedziałek, 21 listopada 2011

Struktura plików w projekcie

cogdogblog, CC BY 2.0
Gdy już mamy głębszą wizję naszego projektu - być może naszkicowaliśmy go na kartce papieru, albo przedstawiliśmy w formie modelu - czas zabrać się za pisanie kodu. Pierwszą rzeczą, która powinna nas interesować to struktura plików, chciałbym zaprezentować mój bootstrap na małe i średnie projekty.


Czekam na czasy kiedy HTML zostanie rozczłonkowane na trzy rodzaje dokumentów, które przejmą po jednej funkcji jaką dotychczas spełniał jeden:
  1. Treść
  2. Semantyka
  3. Struktura
Póki co pozostaje mi dzielić pliki w projektach między foldery:
  • data - jeśli nie używamy do cache i sesji SQL, poza tym logi, konfiguracja, które dobrze mieć w takiej formie, temp, skrypty SQL, ewentualnie pliki statyczne db takie jak grafiki, oraz same bazy danych jeśli stosujemy flat file database, lub SQLite
  • engine - kod PHP
  • public - pliki bezwzględnie potrzebny, czyli index.php i .htaccess, ewentualnie robots.txt, humans.txt, i sitemap.xml
  • template - pliki odpowiedzialnie za wygląd: CSS, grafiki, JavaScript i WebFonts
Eksperymentowałem wcześniej z wydzieleniem JavaScript do osobnego folderu ze względu na swoją wyjątkową role (język programowania client-side) podobnie do PHP, ale było to zbyt naciągane.

Po zastosowaniu powyższego podziału plików mój bootstrap wygląda tak:

                  
          data/ 
                    cache/
                    cfgs/
                    db/
                    logs/
                    misc/
                    static/
          engine/
                    controllers/
                    framework/
                    libs/
                    models/
                    views/
                    Bootstrap.class.php
          public/
                    .htaccess
                    humans.txt
                    index.php
                    robots.txt
                    sitemap.xml
          template/
                    fonts/
                    imgs/
                    misc/
                    scripts/
                    styles/


Dobrze wypracować własne metody, żeby harmonizowały się z resztą pracy, ale przy opracowywaniu ich nie zapominajmy o ewentualnych innych uczestnikach projektu.