2013-10-29 17 views
15

Jestem nowy w PHP i chcę poznać strukturę katalogów dla projektów php. Mam doświadczenie w Javie iw java mamy src zawiera pliki źródłowe java, WEB-INF zawiera strony lib i jsp. Czy mamy podobną standardową strukturę katalogów w PHP? Również mamy warstwy w php jak mamy warstwy w java (np. Web, Service, warstwy DAO)Struktura projektu dla PHP

Przeglądałem kilka linków. Ale każdy daje różne odpowiedzi.

Nie jestem pewien, czy potrafimy porównać oba języki. Chcę tylko trzymać się pewnych standardów.

Z góry dziękuję.

Odpowiedz

20

Nie. PHP jest tym, co z niego robisz. Mogą to być bardzo proste pliki płaskie lub dowolne.

W związku z powyższym istnieje kilka uzgodnionych standardów kodowania, ale nie ma "egzekwowania" wspomnianych standardów. Nazywa się je PSR (PHP Standards Recommendation). Jest tło na nim tutaj: http://net.tutsplus.com/tutorials/php/psr-huh/
można przeglądać standardów pojedynczo tutaj: http://www.php-fig.org/psr/

Większość głównych ram spełnia tych standardów, a jeśli masz zamiar użyć jednego, może być łatwiej iść z pływ.

Znowu każda struktura, projekt, plugin, program itp ma różne układy z różnymi strukturami projektu. Wspólna struktura jest mniej więcej tak:

-framework_dir 
-public_html 
    -js 
    -img 
    -css 
    -index.php 
    -protected/private 
     -controllers 
     -models 
     -views 
     -etc 

one następnie użyć pliku .htaccess zablokować dostęp do chronionych katalogów. Ponownie, jest to po prostu wspólna reprezentacja, którą widziałem w kilku ramach. Jeśli robisz osobisty projekt, po prostu użyj czegoś, co jest dla ciebie wygodne. Każda struktura da ci inną bibliotekę lub sposób dostępu do danych. Nie ma "warstw", ale znowu każda struktura ma obiekty, które obsługują różne obszary (poczta e-mail, bazy danych, pamięć podręczna, http, logi itp.). Ponieważ istnieją dziesiątki popularnych, to właśnie do Ciebie, aby znaleźć to, co pasuje do twojej filozofii lub projektu. Obejrzyj kilka 5-minutowych blogów wideo, zobacz, co jives, a następnie uruchom test na kilka dni. Jeśli ci się nie podoba, przełącz się na inny.

+0

Dzięki za pomoc. Zrobiłem tak, jak sugerujesz. Mam jeden plik właściwości bazy danych, który chcę odczytać z kodu php i chcę ograniczyć dostęp użytkownika do przeglądarki. Czy możesz podać przykładowy plik .htaccess, w którym mogę wprowadzić zmiany. Próbowałem, ale daje mi wewnętrzny błąd serwera. – javafan

2

Niestety (lub nie?) Jesteś bardzo wolny z PHP. To zależy od Ciebie.

Oto moja konstrukcja:

framework/ 
controllers/    
models/ 
configs/ 
files/ 
templates/ 
themes/ 
tmp/ 
index.php 
init.php 
.htaccess 

Można kontrolować dostęp za pośrednictwem .htaccess.

+0

Co ze skryptami CI? –

+0

@NBhargav jakie skrypty CI masz na myśli? –

+0

Jeśli chcę używać funkcji Continuous Integration z projektem PHP, w jaki sposób zachować folder skryptów CI. Gdzie i jak to zachowujesz? –

0

Wraz z wynalezieniem Composer, ludzie mają teraz centralne miejsce, aby zarejestrować swoje projekty na świat konsumować, a inni ludzie mogą teraz spojrzeć na tej podstawie kodu i zobaczyć podobieństwa.

Rezultat jest taki: https://github.com/php-pds/skeleton

W skrócie:

If a package has a root-level directory for ... 
          ... then it MUST be named: 
command-line executables bin/ 
configuration files   config/ 
documentation files   docs/ 
web server files   public/ 
other resource files  resources/ 
PHP source code    src/ 
test code     tests/ 

Ten standard nie wprowadza żadnych dodatkowych zaleceń, o których katalogi mają istnieć poniżej src lub public. Proponuję, aby po prostu mieć jeden nazw poniżej src i realizacji jakiegokolwiek zróżnicowania „modeli”, „sterowników” itd robiąc to przez pełną nazwę klasy, npJeśli zdecydujesz się na klasę Projectname\Controller\WhateverController, będzie ona znajdować się na ścieżce zgodnej z PSR-4 src/Controller/WhateverController.php i będzie automatycznie ładowana przez Composer pod numerem "autoload":{"psr-4":{"Projectname\\": "src"}}.

-2

to najlepsza struktura folderów:

this is the best folder structure

Powiązane problemy