![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
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. |
|
|
![]()
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..."
|
|
|
![]()
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. |
|
|
![]()
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.
|
|
|
![]()
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..."
|
|
|
![]()
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. |
|
|
![]()
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() { } |
|
|
![]()
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 |
|
|
![]()
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..."
|
|
|
![]()
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] |
|
|
![]()
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..."
|
|
|
![]()
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] |
|
|
![]()
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
|
|
|
![]()
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] -------------------- |
|
|
![]()
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 //...........
|
|
|
![]()
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
|
|
|
![]()
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 //...........
|
|
|
![]()
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ą
|
|
|
![]()
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 ![]() ![]() -------------------- niczym ten co go nie ma //...........
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 04:49 |