Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa PDO - czy takie coś ma sens
d.stp
post
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
grzes999
post
Post #2





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

Ostrzeżenie: (0%)
-----


Jak piszesz cms to może lepiej będzie skorzystać z jakiegoś freamworka. (IMG:style_emoticons/default/questionmark.gif)
A co do twojego pytania do dołaczaj pliki z połączeniem do bazy wraz z zapytaniem.
Podstawy MVC.

Ten post edytował grzes999 31.07.2012, 18:24:26
Go to the top of the page
+Quote Post
d.stp
post
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

Ostrzeżenie: (0%)
-----


jakim zapytaniem?

nie chce korzystać z żadnego fw na razie (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Niktoś
post
Post #4





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


To nie jest chyba cała klasa?
Nie widzę jak przekazujesz parametry np..DB_USERNAME(definiujesz je gdzieś,jakieś akcesory)?
Go to the top of the page
+Quote Post
!*!
post
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
d.stp
post
Post #6





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

Ostrzeżenie: (0%)
-----


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).
Go to the top of the page
+Quote Post
rzymek01
post
Post #7





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

Ostrzeżenie: (0%)
-----


@Niktoś,
przecież to są stałe (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)

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

lepiej skorzystaj z gotowych rozwiązań i spróbuj je zrozumieć, takie doświadczenie na pewno Ci się przyda

Ten post edytował rzymek01 31.07.2012, 18:45:20
Go to the top of the page
+Quote Post
d.stp
post
Post #8





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

Ostrzeżenie: (0%)
-----


Singleton może i tak, ale nie wiem czy to ma sens do naprawdę prostego cmsa (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/wink.gif)

Ten post edytował d.stp 31.07.2012, 19:08:23
Go to the top of the page
+Quote Post
rzymek01
post
Post #9





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

Ostrzeżenie: (0%)
-----


w ten sposób niczego się nie nauczysz, oprócz złych nawyków (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
d.stp
post
Post #10





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

Ostrzeżenie: (0%)
-----


dam kod do oceny tutaj na forum i wtedy będą to dobre nawyki (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #11





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:16