Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pytanie o OOP
Forum PHP.pl > Forum > Przedszkole
Szymciosek
Witam,
pytanie dość głupie, ale czy jeśli decyduje się na napisanie jakiejś aplikacji w OOP, to czy wszystkie pliki powinny być klasą ?
Czy np mogę sobie rozbić logowanie na form.php -> login.php etc.

Czy po prostu zrobić klasę Auth, która będzie zawierała metody, showForm(), doLogin() i inne, które są potrzebne ? Czy wtedy dobrym krokiem do Auth jest dodanie np register() ?
Spawnm
Zobacz jak to jest w frameworkach mvc. W plikach widoku nie ma klas.
Szymciosek
No tak, ale widok w przypadku php, to zwykły plik, który mógłby zawierać w sobie zmienne wysyłane z kontrolera.

Ale prócz widoków, to wszystko inne powinno być klasą w przypadku OOP?
Crozin
1. Warstwa widoku w architekturze MVC (nawet tej stricte przeznaczonej do aplikacji webowych czy tej realizowanej przez niemal wszystkie popularne FW MVC) nie jest tożsama z szablonem.
2. Nigdy nie powinieneś skończyć z obiektem, który posiada metody showForm() i doLogin() - to dwa, kompletnie oderwane od siebie zagadnienia (w dodatku o dużej złożoności), które powinny być wykonywane przez kompletnie różne grupy obiektów.
3. Nawet w językach w pełni obiektowych (do których PHP się nie zalicza), poza plikami ze źródłami klas, będziesz miał pliki z różnego rodzaju zasobami (do których zaliczysz np. konfigurację w XML-u czy właśnie plik z szablonem).
jeremiash
Tworzysz plik .php , np. index.php a w nim:

  1. function __autoload($class) {
  2. require_once('klasy/'.$class.'.class.php');
  3. }
  4.  
  5. $polaczenie = new bazadanych;
  6.  
  7. try
  8.  
  9. {
  10. // to Twój pierwszy obiekt, odpowiadający np. za wyświetlanie strony
  11. $abc=new website;
  12. $abc->mojaFunkcjaZKlasyWebsite($polaczenie->connection());
  13. // przykładowe połączenie z funkcją connection() z klasy bazadanych wykorzystując funkcję z innej klasy... bla bla bla
  14. }
  15. catch(Exception $exception)
  16. {
  17. echo 'blad : '.$exception->getLine().': '.$exception->getMessage();
  18. }


w katalogu KLASY tworzysz pliki z nazwą taką jak klasa. W naszyp przypadku klasy/bazadanych.class.php oraz klasy/website.class.php
Szymciosek
Cytat(jeremiash @ 10.01.2013, 20:13:48 ) *
Tworzysz plik .php , np. index.php a w nim:

  1. function __autoload($class) {
  2. require_once('klasy/'.$class.'.class.php');
  3. }
  4.  
  5. $polaczenie = new bazadanych;
  6.  
  7. try
  8.  
  9. {
  10. // to Twój pierwszy obiekt, odpowiadający np. za wyświetlanie strony
  11. $abc=new website;
  12. $abc->mojaFunkcjaZKlasyWebsite($polaczenie->connection());
  13. // przykładowe połączenie z funkcją connection() z klasy bazadanych wykorzystując funkcję z innej klasy... bla bla bla
  14. }
  15. catch(Exception $exception)
  16. {
  17. echo 'blad : '.$exception->getLine().': '.$exception->getMessage();
  18. }


w katalogu KLASY tworzysz pliki z nazwą taką jak klasa. W naszyp przypadku klasy/bazadanych.class.php oraz klasy/website.class.php


To akurat znam, ale czy Index nie może być już klasą ?
jeremiash
Nie. Główną, nadrzędną klasę musisz wywołać z 'proceduralnego' php.
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.