Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Bootstrapper index.php, Rozważania na temat Bootstrapper`a, czyli jak przepuszczaćwszystko prz
michas61
post 1.03.2008, 17:46:46
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.09.2005

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


Witam

Na pewno wielu z Was rozważało sytuacje której wszystkie odwołania przechodzą przez jeden plik np index.php.
Sytuacja nie była by w żaden sposób kłopotliwa do momentu w którym zaczynamy budować moduł do logowania.

I tak tworząc własny kontroler mamy następującą sytuację:

<?php

session_start();

require_once('controler.php');
$control = new Controler();

if ((!empty($_COOKIE['PHPSESSID'])) && (isset($_SESSION['zalogowany']))) {
$control->pokaz_panel();
}
elseif (isset($_POST['zaloguj']) ) {
$contol->logowanie();
}
else {
$control->formularz_do_logowania()
}

?>

Moje pytanie nasuwa się już na samej górze, a mianowicie:
- jeżeli ktoś jest zalogowany to dobrze było by sprawdzać czy istnieje jego sesja w tablicy $_SESSION, więc musimy wywołać tworzenie sesji
session_start()
- ale z drugiej strony puszczając wszystko przez jeden plik index.php zaczynamy tez od formatki do logowania i tutaj też na dzień dobry mamy session_start(), które powoduje utworzenie pustego liku sesji na dysku serwera, a właśnie takiej sytuacji chciałbym uniknąć.

Czy ktoś ma jakieś sugestie ?
Go to the top of the page
+Quote Post
bim2
post 1.03.2008, 20:21:13
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Trochę nie zrozumiałem, ale postaram się coś wypocić.

Mam index.php: (standardowo taki)
  1. <?php
  2. $oCtrl = new Controller();
  3. $oCtrl->execute();
  4.  
  5. catch()...
  6. ?>


Jeśli potrzebuje użyć klocka users to dodaje
  1. <?php
  2. $oCtrl->getPlugin('Users')->init();
  3. ?>


i jeśli on ma potrzebe wywołania $oSession->start() z plugina Session to to zrobi. Drugi raz start() nie wywoła bo tak nakazałem pluginowi session.

Jeśli potrzebuje w całym systemie używać np klocka Menu (np. left) to daje
  1. <?php
  2. $oCtrl->getPlugin('Menu')->init();
  3. ?>


albo jeszcze lepiej w jakimś pliku konfiguracyjnym to trzymać
  1. <?php
  2. <runPlugins>
  3. <plugin name="User">init()</plugin>
  4. <plugin name="Session">start()</plugin>
  5. </runPlugins>
  6. ?>


To taki przykład smile.gif


--------------------
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:41