Szymciosek
10.01.2013, 19:42:20
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
10.01.2013, 19:49:53
Zobacz jak to jest w frameworkach mvc. W plikach widoku nie ma klas.
Szymciosek
10.01.2013, 20:05:47
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
10.01.2013, 20:11:12
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
10.01.2013, 20:13:48
Tworzysz plik .php , np. index.php a w nim:
function __autoload($class) {
require_once('klasy/'.$class.'.class.php');
}
$polaczenie = new bazadanych;
try
{
// to Twój pierwszy obiekt, odpowiadający np. za wyświetlanie strony
$abc=new website;
$abc->mojaFunkcjaZKlasyWebsite($polaczenie->connection());
// przykładowe połączenie z funkcją connection() z klasy bazadanych wykorzystując funkcję z innej klasy... bla bla bla
}
catch(Exception $exception)
{
echo 'blad : '.$exception->getLine().': '.$exception->getMessage(); }
w katalogu KLASY tworzysz pliki z nazwą taką jak klasa. W naszyp przypadku
klasy/bazadanych.class.php oraz
klasy/website.class.php
Szymciosek
10.01.2013, 20:19:43
Cytat(jeremiash @ 10.01.2013, 20:13:48 )

Tworzysz plik .php , np. index.php a w nim:
function __autoload($class) {
require_once('klasy/'.$class.'.class.php');
}
$polaczenie = new bazadanych;
try
{
// to Twój pierwszy obiekt, odpowiadający np. za wyświetlanie strony
$abc=new website;
$abc->mojaFunkcjaZKlasyWebsite($polaczenie->connection());
// przykładowe połączenie z funkcją connection() z klasy bazadanych wykorzystując funkcję z innej klasy... bla bla bla
}
catch(Exception $exception)
{
echo 'blad : '.$exception->getLine().': '.$exception->getMessage(); }
w katalogu KLASY tworzysz pliki z nazwą taką jak klasa. W naszyp przypadku
klasy/bazadanych.class.php oraz
klasy/website.class.phpTo akurat znam, ale czy Index nie może być już klasą ?
jeremiash
10.01.2013, 20:21:51
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.