Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Architektura PHP?
Grzesiek
post 29.04.2003, 09:30:18
Post #1





Grupa: Zarejestrowani
Postów: 96
Pomógł: 3
Dołączył: 15.04.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Czy ktoś może mi powiedzieć jak najlepiej budować duże serwisy internetowe oparte o php?
Czy są to:
- funkcje i klasy
- każda strona osobno, inkludować tylko nagłówek i stopke
- wszystkie strony w jednej

a może jeszcze inaczej?


--------------------
Linux is like wigwam, no windows, no gates and an apache inside.
Mój blog łebmasterski (po angielsku) Web Development Blog.
Go to the top of the page
+Quote Post
Seth
post 29.04.2003, 10:23:14
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

Ostrzeżenie: (0%)
-----


Wiec nigdy do tej pory nie bawilem sie w includowanie plikow, ktore byly by osonymi stronami w zaleznosci od parametru w adresie. Ja stawiam na trzymanie textu w bazie danych i stamtad go wyciaganie i przerabianie przez jeden plik (do odpowiedniej grupy strony - np dla artykulow jden plik artciles.php itd).

Do tego powinno byc wszystko oparte o wzroce. Najwazniejsze jest oddzielenie kodu od wygladu strony. Ogolnym zalozeniem jest, ze kazdy robi swoja dzialke. Programista oskryptowuje strone a designer/webmaster tworzy jej wyglad.

Funkcje czy klasy hmm funkcje sa szybsze natomiast nieraz mozemy potrzebowac stworzyc kilka jednakowych obiektow, wiec klasy sa najlepszym rozwiazaniem. Tak wiec polaczenie klas i funkcji w zaleznosci od potrzeb.

Najwazniejszy jest jednak plan systemu. Trzeba rozrysowac sobie wszystie elementy. Potem dokonac selekcji newraligicznych pkt-ow i odpowiednio je zabezpieczyc czy przyspieszyc ich dzialanie.
Go to the top of the page
+Quote Post
DeyV
post 29.04.2003, 10:40:40
Post #3





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Ja natomiast pracuję troszkę inaczej. Tzn. z zachowaniem tych samych zasad, tj. szablony, classy itp. ale...
Zazwyczaj oddzielam panel administracyjny od konstrukcji strony.
Panele te tworzę zazwyczaj w oparciu o phpObjectForms, oraz przygotowane klasy z wygladem menu'sów oraz wyglądu strony.
Tak wiec przygotowanie konkretnego działu, np. dodawanie i wyświetlanie użytkowników polega na:
utworzeniu pliku users.php, includującego config, wszystkie niezbędne klasy i funkcje i zawierający informacje o tym jak i gdzie mają pojawić sie menu.
Dalej, już w wyniku wyborów użytkownika,
includuję pliki, gdzie zdefiniowane są formularze, lub
wykonuję odpowiednie zapytania do bazy, ładując wszytko do tabel, i
informuję skrypt, jaki plik ma zaincludować w odpowiednim (stałym) miejscu strony, czyli odpowiednim ekranie, by te dane wyświetlić. Zazwyczaj kożystam wtedy z Eval. Ma to sens szczegulnie wtedy, gdy dane wyświetlane są w prosy sposób, np. zwykłe tabele, z co najwyżej dodanymi elementami sortowania, przewijania itp. Zazwyczaj mają one taki sam wygląd, więc nie ma problemu z designem winksmiley.jpg

Oczywicie sytuacja wyglada zupełnie inaczej w przypadku części użytkowej, gdzie, od pewnego czasu, panuje SMARTY.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Grzesiek
post 29.04.2003, 11:14:08
Post #4





Grupa: Zarejestrowani
Postów: 96
Pomógł: 3
Dołączył: 15.04.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dzięki za podpowiedź biggrin.gif
Mam jeszcze jedno pytanie:
Co z prędkością? Z tego co wiem to includowanie zajmuje komputerowi najwięcej czasu i niewiem czy dobrym rozwiązaniem będzie umieszczenie skryptów dodatkowych w zewnętrznym pliku.
Chodzi mniej więcej o to:
adds.php
Cytat
function data() {
//zawartosć
}
function licznik() {
//zawartość
}
.....

index.php
Cytat
//Cała strona w php
include("/adds.php");
data();

Czy coś takiego ma sens jeżeli date i licznik używam wielokrotnie w różnych plikach (np. artykuly.php, news.php itd), no i najważniejsze pytanie czy to nie zwolni działania mojej strony?
?>[/php]


--------------------
Linux is like wigwam, no windows, no gates and an apache inside.
Mój blog łebmasterski (po angielsku) Web Development Blog.
Go to the top of the page
+Quote Post
Seth
post 29.04.2003, 11:17:10
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

Ostrzeżenie: (0%)
-----


Hmm includowanie ma to do siebie, ze pozwala tworzyc plik do wielo krotnego uzytku ale jezeli dane funkcje sa male to lepiej je wrzucic do pliku, a nie includowac.
Go to the top of the page
+Quote Post
DeyV
post 29.04.2003, 11:30:57
Post #6





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Spowalnia? Naprawdę minimalnie.
Przepwrowadziłem kiedyś serię testów, które przekonały mnie, że włąściwie nie ma to żadnego wpływu na czes wykonywania skryptu. Chyba że zależy ci na oszczędnościach rzędu 0.001 sek. aaevil.gif

Natomiast znacznie ułatwia pisanie. Warto jedynie pamiętać, by zawsze używać include, (require) _once()


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Grzesiek
post 29.04.2003, 11:58:31
Post #7





Grupa: Zarejestrowani
Postów: 96
Pomógł: 3
Dołączył: 15.04.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Teraz już naprawde ostatnie pytanie rolleyes.gif
Z jakiej instrukcji korzystacie przy np systemie newsow.
Załózmy, że ten system ma trzy odnośniki:
- wszystkie newsy
- dodaj newsa
- dodaj komentarz

I jeżeli trzymam wszystko w jednym pliku, z której instrukcji lepiej skorzystać?
[php:1:ed32230062]
switch ($akcja)
case: "dodaj_newsa"
//cos
break;
case: "wszystkie"
//cos
break;
[/php:1:ed32230062]

czy

[php:1:ed32230062]
if($akcja=="dodj_newsa") {
//dd
} elseif($akcja=="wszystkie") {
//ff
}
[/php:1:ed32230062]
(oczywiście zmienną $akcja pobieram metodą GET z adresu strony.)

czy lepiej zrobić osobne pliki (choć nie wydaje mi się to dobrym rozwiązaniem)


--------------------
Linux is like wigwam, no windows, no gates and an apache inside.
Mój blog łebmasterski (po angielsku) Web Development Blog.
Go to the top of the page
+Quote Post
BzikOS
post 29.04.2003, 12:05:51
Post #8





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

Ostrzeżenie: (0%)
-----


Ja osobiście używam konstrukcji:
Kod
switch($akcja) {

  case "dodaj_newsa":

    dodaj_newsa();

    break;

  

  case "wszystkie":

    wszystkie();

    break;

}



function dodaj_newsa() {

}



function wszystkie() {

}
Go to the top of the page
+Quote Post
Jabol
post 29.04.2003, 12:25:49
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Cytat
Ja osobiście używam konstrukcji:
Kod
switch($akcja) {

  case "dodaj_newsa":

    dodaj_newsa();

    break;

  

  case "wszystkie":

    wszystkie();

    break;

}



function dodaj_newsa() {

}



function wszystkie() {

}

poprawnie to powinieneś umieścić funckje przed dokumentem, bo wprawdzie w php4 nie ma to różnicy, ale to zły nawyk, jakbyś chciał wyjść poza php
Go to the top of the page
+Quote Post
DeyV
post 29.04.2003, 13:38:50
Post #10





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




A jeszcze lepiej, szybciej:
[php:1:01ec973565]<?php
switch($akcja) {
case "dodaj_newsa":
include_once 'dodaj_newsa.inc.php';
break;
}
?>[/php:1:01ec973565]


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Jabol
post 29.04.2003, 13:56:04
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


A tak?[php:1:b007982f6b]<?php
include_once($akcja.'.inc.php');
?>[/php:1:b007982f6b]
Go to the top of the page
+Quote Post
DeyV
post 29.04.2003, 14:53:21
Post #12





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




raczej nie...
Przy Swich zawsze jest wartość default, a to jest ważne - niegdy nie ufaj danym pochodzącym od użytkownika...


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Jabol
post 29.04.2003, 16:30:29
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


to może[php:1:694cd2fb05]<?php
$includes=array(
'index'=>'pliki/index.php',
'itp'=>'pliki/itp.php'
);
include $includes[$akcja];//tylko czy switch nie będzie szybsze i mniej zasobożerne??
?>[/php:1:694cd2fb05]
Go to the top of the page
+Quote Post
KaMeLeOn
post 29.04.2003, 22:38:54
Post #14





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat
to może[php:1:ee34b7f9e3]<?php
$includes=array(
'index'=>'pliki/index.php',
'itp'=>'pliki/itp.php'
);
include $includes[$akcja];//tylko czy switch nie będzie szybsze i mniej zasobożerne??
?>[/php:1:ee34b7f9e3]

Tak nie bo musisz jeszcze dodatkowo sprawdzić czy istnieje taki klucz w tablicy...
[php:1:ee34b7f9e3]<?php
if( isset($includes[$akcja]) ) include $includes[$akcja];
?>[/php:1:ee34b7f9e3]


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
scanner
post 30.04.2003, 06:54:09
Post #15





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat
Przy Swich zawsze jest wartość default, a to jest ważne - niegdy nie ufaj danym pochodzącym od użytkownika...
Dlatego ja np. używam czegoś w rodzaju:[php:1:bfc83bfcfb]<?php
// sprawdzam $_GET[] ...
switch($_GET['costam']{
default:
// wyswietlanie newsów (czy czegokolwiek innego)
break;
case 'dodaj':
// ....
break;
case 'edytuj':
// ....
break;
case 'kasuj':
// ....
break;
}
?>[/php:1:bfc83bfcfb]


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
5z474n
post 4.05.2003, 21:35:38
Post #16





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 2.05.2003

Ostrzeżenie: (0%)
-----


include_once(); questionmark.gif

czym to sie rozni od include() ? snitch.gif


--------------------
niczym ten co go nie ma //...........
Go to the top of the page
+Quote Post
KaMeLeOn
post 4.05.2003, 21:41:09
Post #17





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat
include_once(); questionmark.gif

czym to sie rozni od include() ? snitch.gif

W MANUALU jest cała strona poświęcona
include(), include_once(), require(), require_once()...
Poczytaj...


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
5z474n
post 4.05.2003, 22:29:22
Post #18





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 2.05.2003

Ostrzeżenie: (0%)
-----


nic nei rozumiem sad.gif


--------------------
niczym ten co go nie ma //...........
Go to the top of the page
+Quote Post
itsme
post 4.05.2003, 23:17:43
Post #19





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




Cytat
nic nei rozumiem sad.gif

podpowiedz zwroc uwage na swlowo once
a w manulau jest napisane i nie ma co rozumiec smile.gif


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post
5z474n
post 5.05.2003, 00:11:21
Post #20





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 2.05.2003

Ostrzeżenie: (0%)
-----


jest napisane nie po mojemu :]

once ...mhmm :? raz ? dolacz raz ? dalej nei widze oznicy miedze zwyklym include sad.gif a tym include once sad.gif


--------------------
niczym ten co go nie ma //...........
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 22:09