Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sterowanie klasą aplikacji w PHP5
Forum PHP.pl > Forum > Przedszkole
lgh
Witam.

Może na początek chciałbym się przywitać z wszystkimi forumowiczami, czytającymi ten wątek.

Mam taki konkretnie problem/pytanie.

Dotychczas pisałem sobie aplikacje w PHP w taki sposób, że w katalogu głównym umieszczałem plik index, w nim znajdowała się pętla sterująca aplikacją - reagująca na różne wywołania zmiennych przekazywanych przy pomocy metod POST i GET.

Taka pętla wyglądała mniej więcej tak:
  1.  
  2. require 'PlikFunkcji.php';
  3.  
  4. if (isset($_GET['id']))
  5. switch ($_GET['id']){
  6. case 'pobierzDane': pobierzDane(); // funkcja opisana w pliku: PlikFunkcji.php
  7. break;
  8. default: zrobCosInnego();
  9. }


Dotychczas, gdy pisałem sobie korzystając z całego dobrodziejstwa skryptowego PHP wszystko działało dla mnie idealnie. Teraz chciałbym popróbować się z obiektowym PHP i w zasadzie zastanawiam się, jak miałoby odbywać się sterowanie aplikacją. Czy w pliku index powinna być identyczna drabinka, tylko odwołująca się do metod klasy, czy też całą taką drabinkę mógłby "wcisnąć" do którejś z metod klasy zawierającej interfejs aplikacji?

Na chwilę obecną intuicja podpowiada mi, że może powinno udać się wcisnąć drabinkę przed deklaracją klasy do pliku z klasą, ale nie wiem... Może są jakieś bardziej eleganckie metody, aby gdzieś umieścić to sterowanie?
by_ikar
Podejrzyj jak to jest robione w najpopularniejszych frameworkach. Dodatkowo, switch to nie jest pętla, a instrukcja warunkowa. Kluczowe słowa które powinny cię zainteresować: php router, horde routes, mvc, framework. Przestudiuj te kilka zagadnień to powinieneś kilka rzeczy zrozumieć.
Lorum3
Szczególnie dobrym rozwiązaniem w programowaniu obiektowym jest MVC.

Poniżej wrzucam Ci przykład kontrolera login.php ( w fazie produkcyjnej) w mojej aplikacji, powinien pozwolić Ci wyobrazić sobie jak to powinno działać.

  1. tutaj był kod :- )
lgh
Ok. Wydaje mi się, że zakumałem - wiem gdzie zacząć. Dzięki za pomoc.

Znaczy się zajrzałem do horde routes i znalazłem jeszcze coś takiego:
https://github.com/robap/php-router

Poza tym, dla wszystkich, którzy zmagają się z podobnymi do moich problemami, to znalazłem nawet wskazówkę w angielskiej wikipedii:
http://en.wikipedia.org/wiki/Front_Controller_pattern

Jeszcze raz dzięki za pomoc.
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.