Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bootstrapper index.php
Forum PHP.pl > Forum > PHP > Object-oriented programming
michas61
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 ?
bim2
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.