Klasa article

Witam,

Piszę sobie klasę Article, z myślą o przyszłym CMSie. Napisałem osobną klasę do łączenia się z bazą danych, ale dalej nie wiem jak to “ciągnąć” tzn. jak mam przekazywać to połączenie do klasy Article.

Proszę również o ocenienie mojej klasy:

class Article

{

(.......) /// tutaj są różne metody i zmienne

  public function save() {

    $hdb = new ConnectDB('localhost', 'CMS', 'root', 'vertrigo');

    //$pdo = new PDO('mysql:host=localhost;dbname=CMS', 'root', 'vertrigo');

    //$pdo->SetAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $prepare = $hdb->$hdb->prepare("INSERT INTO articles (article_title, article_content, date_send, autor) VALUES (:article_title, :article_content, :date_send, :autor)");

    $prepare->bindValue(':article_title', $this->title, PDO::PARAM_STR);

    $prepare->bindValue(':date_publicate', $this->date_publicate, PDO::PARAM_STR);


    $prepare->bindValue(':article_content', $this->content, PDO::PARAM_STR);

    $prepare->bindValue(':autor', $this->autor, PDO::PARAM_STR);


    //$prepare->bindValue(':autor', $this->autor, PDO_PARAM_STR);

    $prepare->execute();

    $prepare->closeCursor();

    }



    }

     }

    class ConnectDB

    {

    private $hDB;


    public function _construct($host, $dbname, $login, $pass)

    {

    $this->hDB = new PDO('mysql:host='.$host.';dbname='.$dbname.','.$login.','.$pass.',');


    }

    }

Tu masz przykład:

A jest coś pod PHP?

$zmienna = new $klasaMySQL;

$wynik = $zmienna -> metoda('argument');

??

Btw jak chcesz użyć ten drugiej klasy w pierwszej nie może być ona druga. Tak jest w c++ więc w php raczej też ;]

Utwórz sobie statyczną klasę Register, która będzie swego rodzaju rejestrem, będzie ona przechowywać obiekty np. instancję połączenie z bazą danych.

Na razie w nie ma co oceniać tej klasy bo nic praktycznie nie zawiera, załącz jakiś diagram klas to można będzie można powiedzieć coś więcej.

Co ma znaczyć zapis:

$hdb->$hdb->prepare("INSERT INTO articles (article_title, article_content, date_send, autor) VALUES (:article_title, :article_content, :date_send, :autor)");

do czego Ty się odwołujesz?

Po co tworzysz jakąś dziwną klasę ConnectDB? To jest beznadziejne rozwiązanie.

W ogóle nie przemyślana strategia pisania CMS, zacznij najpierw modelować diagramy UML, które pomogą Ci zaprojektować logikę działania aplikacji, utwórz diagramy klas i na ich podstawie twórz CMS