Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Forum] Początek pisania własnego forum
MaestroS
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Kanagawa-ken, Japonia

Ostrzeżenie: (10%)
X----


Przeglądałem niedawno strukturę myBB i tak myślę, czy moja koncepcja jest dobra.

Nie jestem profesjonalistą, aczkolwiek w PHP siedzę już od 5 lat. Myślę nad napisaniem kilku projektów do mojego portfolio (forum, CMS, galeria, dziennik szkolny).

Sam początek wygląda tak:

  1. <?
  2. /* Index file */
  3. //Enable buffor
  4. @ob_start() or die("Buffor initialization has failed.");
  5.  
  6. //Enable sessions
  7. @session_start() or die("Session initialization has failed.");
  8.  
  9. //Define constants
  10. define("_nBB_RootDir", dirname(__FILE__));
  11. define("_nBB_CurrentFile", __FILE__);
  12. define("_nBB_Version", 011);
  13.  
  14. //Load pre-core
  15. require_once "inc/classes/init.php";
  16.  
  17.        //Load constant modules
  18.        if (@!file_exists("inc/const_modules.php")) {
  19.            die("Unable to open pre-definition file of constant modules.");
  20.        } else {
  21.            require_once "inc/const_modules.php";
  22.        }
  23.  
  24.        //Check for required directories
  25.        for ($i=0; $i<count($sys_const_dirs); $i++) {
  26.            if (@is_dir($sys_const_dirs[$i]) == FALSE) {
  27.                die("Directory [".$sys_const_dirs[$i]."] could not be found.");
  28.            }
  29.        }
  30.  
  31.        //Check availability of constant modules and attach them
  32.        for ($i=0; $i<count($sys_const_modules); $i++) {
  33.            if (@!file_exists($sys_const_modules[$i])) {
  34.                die("Unable to open ".$sys_const_modules[$i]);
  35.            } else {
  36.                require_once $sys_const_modules[$i];
  37.            }
  38.        }
  39.  
  40.        //Check for availability of constant classes and attach them
  41.        for ($i=0; $i<count($sys_class_list); $i++) {
  42.            if (@!file_exists("inc/classes/".$sys_class_prefix.$sys_class_list[$i].".php")) {
  43.                die("Class ".$sys_class_list[$i]." could not be found.");
  44.            } else {
  45.                require_once "inc/classes/".$sys_class_prefix.$sys_class_list[$i].".php";
  46.            }
  47.        }
  48.        
  49. $nBB = new nBB;
  50. $nBB->initialize;
  51.  
  52. $nDB = new mySQL;
  53.  
  54. ?>


Chcę, aby index.php był tym głównym plikiem, moduł takie jak showthread i inne wywoływane będą przez index.php?module=. Tutaj pojawia się moje pytanie: Za każdym wywołaniem index.php będzie ustanawiane połączenie MySQL ($nDB->connect()) - czy to dobre wyjście? Chodzi mi najbardziej o aspekty wydajnościowe. Przy takim rozwiązaniu (index.php?module=) potrzebowałbym pewnych wskazówek. Wykonanie nie jest dla mnie żadną trudnością, ale nigdy wcześniej nie pisałem for internetowych, myBB, phpBB już nie mówiąc o IPB czy vBulletin to tony kodu, którego nie chcę przeglądać, bo jak coś zobaczę, to skopiuję, a chcę, aby kod był moją indywidualną pracą. Was proszę o jakieś rady dotyczące wydajności czy jakiś innych kosmetycznych aspektów.

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Tutaj pojawia się moje pytanie: Za każdym wywołaniem index.php będzie ustanawiane połączenie MySQL ($nDB->connect()) - czy to dobre wyjście?

No inaczej za bardzo się nie da. Owszem, jest mysql_pconnect" title="Zobacz w manualu PHP" target="_manual, ale nie każdy serwer obsługuje. Poza tym, cache, cache, cache i jeszcze raz cache, gdzie się tylko da.

Nie rozumiem linijek 18-46 - nie słyszałeś o __autoload" title="Zobacz w manualu PHP" target="_manual...? Poza tym, ukrywanie błędów przez małpę jest bardzo, ale to bardzo nieeleganckie. O każdorazowym liczeniu długości tablicy nie wspomnę.

Jeśli chodzi o aspekty wydajnościowe/rady - skup się na miejscu przechowywania danych, a nie na takich bzdetach. tongue.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
MaestroS
post
Post #3





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Kanagawa-ken, Japonia

Ostrzeżenie: (10%)
X----


Poczytam o tym __autoload, bo to dla mnie nowość, ale z tym cache - za prawdę powiadam, ciężko będzie, bo to dla mnie zupełna nowość ...
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(MaestroS @ 20.07.2009, 19:33:48 ) *
Poczytam o tym __autoload, bo to dla mnie nowość, ale z tym cache - za prawdę powiadam, ciężko będzie, bo to dla mnie zupełna nowość ...


Nic trudnego, sam kiedyś pisałem dla siebie klasę do obsługi cache - wcale nic strasznego.
Choć za niedługo chyba zainteresuje się tym: http://pear.php.net/package/Cache_Lite

Moim zdaniem w takich projektach jak forum/cms etc. jest ważne m.in.
  1. Rozmieszenie plików w katalogach
  2. Dobry system cache
  3. Dobra i wydajna struktura dla bazy danych, z relacjami, triggerami etc.
Wiele razy chciałem pisać coś większego, niestety uznałem że swoich założeń nie dam rady (przynajmniej nie sam) zrealizować.
Tak więc nie można sobie zbyt wysokich poprzeczek stawiać jak i rzucać kłód pod nogi.

Powiem, że od pewnego czasu piszę dla siebie klasy, które czasem (według potrzeb) wykorzystuję - i powoli buduje się FW z tego.

Ten post edytował fifi209 20.07.2009, 20:33:10


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
MaestroS
post
Post #5





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Kanagawa-ken, Japonia

Ostrzeżenie: (10%)
X----


Ja nie chce bóg wie jakiego forum pisać. Nie do większego zastosowania ono będzie, tylko do prezentacji i własnej satysfakcji. Poza tym, ja się uczę tylko na ciężkich projektach - inaczej nie potrafię.

Teraz myślę nad tym cache'owaniem. Jak ono ma działać? Co trzeba cache'owac? Co ile trzeba cache'owac? Jak cache przechowywać dla każdego użytkownika?

To trochę skomplikowana sprawa ...
Go to the top of the page
+Quote Post
scanner
post
Post #6





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




W samym tylko kodzie, który już pokazałeś naliczyłem 6 małp.
Z taką kontrolą błędów, daleko nie zajdziesz.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
MaestroS
post
Post #7





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Kanagawa-ken, Japonia

Ostrzeżenie: (10%)
X----


Po prostu przyzwyczaiłem się do @ i die() współpracujących ze sobą. Już wiem, że to źle.
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wątek cache'owania wydzieliłem: http://forum.php.pl/index.php?s=&showtopic=126136


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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 Aktualny czas: 22.08.2025 - 11:02