Architektura PHP? |
Architektura PHP? |
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. |
|
|
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. |
|
|
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 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..."
|
|
|
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ź
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. |
|
|
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.
|
|
|
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. 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..."
|
|
|
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
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. |
|
|
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() { } |
|
|
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 |
|
|
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..."
|
|
|
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] |
|
|
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..."
|
|
|
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] |
|
|
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
|
|
|
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] -------------------- |
|
|
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();
czym to sie rozni od include() ? -------------------- niczym ten co go nie ma //...........
|
|
|
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();
czym to sie rozni od include() ? 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
|
|
|
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
-------------------- niczym ten co go nie ma //...........
|
|
|
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
podpowiedz zwroc uwage na swlowo once a w manulau jest napisane i nie ma co rozumiec -------------------- brak sygnaturki rowniez jest sygnaturką
|
|
|
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 a tym include once -------------------- niczym ten co go nie ma //...........
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 22:09 |