Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa PDO - czy takie coś ma sens
Forum PHP.pl > Forum > PHP
d.stp
Jako, że dopiero zaczynam z pdo mam małe doświadczenie z tym i nie wiem czy takie coś ma w ogóle sens. Piszę sobie prostego cmsa, na szablonach i nie wiem za bardzo gdzie wrzucić połączenie z bazą danych. W index.php jakoś dziwnie mi to wygląda, dlatego zrobiłem sobie klasę taką:

db.php:
  1. class Database {
  2. public function __construct() {
  3. try {
  4. $db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.'', ''.DB_USERNAME.'', ''.DB_PASSWORD.'');
  5. }
  6. catch (PDOException $e) {
  7. print "Database connect error: " . $e->getMessage() . "<br/>";
  8. die();
  9. }
  10. }
  11. }

teraz w index.php wywołuje sobie ją:
  1. require('./includes/db.php');
  2. $db = new Database;

i mam połączenie z bazą... ale czy to ma sens? nigdy nie widziałem w prostych cmsach nawiązania połączenia w pliku index.php

Jak nie używałem pdo to robiłem sobie plik config.php i tam nawiązywałem połączenie z bazą danych
grzes999
Jak piszesz cms to może lepiej będzie skorzystać z jakiegoś freamworka. questionmark.gif
A co do twojego pytania do dołaczaj pliki z połączeniem do bazy wraz z zapytaniem.
Podstawy MVC.
d.stp
jakim zapytaniem?

nie chce korzystać z żadnego fw na razie wink.gif
Niktoś
To nie jest chyba cała klasa?
Nie widzę jak przekazujesz parametry np..DB_USERNAME(definiujesz je gdzieś,jakieś akcesory)?
!*!
My mamy wiedzieć czy to ma sens? To Ty projektujesz CMS. IMO nie, nie ma sensu, bo niby po co Ci połączenie w index.php, nawiązuj połączenie tam gdzie jest potrzebne.
d.stp
no właśnie problem w tym, że cała, jedynie co tam mogę dodać to __destruct (o ile pdo coś takiego ma?), bo co więcej tam mogę dać? dlatego chyba taka klasa nie ma sensu.

Stałe są w pliku konfiguracyjnym config.php, a ten plik będzie tworzony przy instalacji cmsa (będzie instalator).
rzymek01
@Niktoś,
przecież to są stałe tongue.gif

Tylko nie zrób z tej klasy "nakładki" na PDO,
możesz z klasy Database uczynić Singleton - jedna instancja na aplikację, poczytaj o tym

Następnie napisać metodę, która nawiązuje połączenie, ale nie korzysta ze stałych, tylko z jakichś parametrów...
oraz metodę zwracającą utworzony obiekt PDO smile.gif

PS. jeżeli nie umiesz obiektówki b. dobrze, to nie sensu bawić się we własnego cmsa, bo bubel wyjdzie tongue.gif

lepiej skorzystaj z gotowych rozwiązań i spróbuj je zrozumieć, takie doświadczenie na pewno Ci się przyda
d.stp
Singleton może i tak, ale nie wiem czy to ma sens do naprawdę prostego cmsa biggrin.gif

oop znam słabo, ale właśnie po to piszę tego cmsa, żeby ogarnąć obiektówke.

A z tym pdo zrobię sobie plik db.php i tam będę się łączył z bazą i tyle. W indexie dołączę ten plik i pozamiatane wink.gif
rzymek01
w ten sposób niczego się nie nauczysz, oprócz złych nawyków tongue.gif
d.stp
dam kod do oceny tutaj na forum i wtedy będą to dobre nawyki smile.gif
Mephistofeles
Jak chcesz się nauczyć OOP to przejrzyj kod najpopularniejszych frameworków, a nie pisz sam czegoś, o czym nie masz pojęcia z nadzieją, że się nauczysz.
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.