Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Hybrid Data Object, Narazie czysta teoria :)
M4chu
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


Witam, troche zainspirowany tematem psa, postanowiłem napisać własne "coś" do obsługi bazy danych. Narazie nazwałem to tak jak w topicu (od Hybrid - moj hmm framework? w kazdym razie coś w tym stylu, niestety też jeszcze teoria (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) Jeszcze nie implementowałem tego, ale mam czysto teoretyczny przykład użycia:
  1. <?php
  2.  
  3. // nowe polaczenie
  4.  
  5. $connection = new HDOConnection('mysql://user:password@host');
  6.  
  7. // baza danych
  8.  
  9. if(!$connection->databaseExists('magazine')) {
  10. $magazine = $connection->createDatabase('magazine');
  11. } else {
  12. $magazine = $connection->table('magazine');
  13. }
  14.  
  15. // tabela
  16.  
  17. if(!$magazine->tableExists('articles')) {
  18. $articles = $magazine->createTable('articles');
  19. $articles->addColumn('id', 'integer', 10);
  20. $articles->addColumn('author', 'string', 50);
  21. $articles->addColumn('title', 'string', 50);
  22. $magazine->updateTable($articles);
  23. } else {
  24. $articles = $magazine->table('articles');
  25. }
  26.  
  27. // nowy rekord
  28.  
  29. $article = $articles->createRecord();
  30. $article->setAuthor('Autor');
  31. $article->setTitle('Tytuł');
  32. $articles->updateRecord($article);
  33. // lub
  34. $articles->insertRecord('', 'Autor', 'Tytuł');
  35.  
  36. // zmiana kilku rekordow
  37.  
  38. $c = new Criteria('id', 10, '<');
  39. foreach($articles->selectRecords($c) as $record) {
  40. $record->setId($record->getId() + 10); // za pomoca __get i __set z HDORecord::attributes na podstawie struktury tabeli (np zserializowanej dla wydajnosci)
  41. $articles->updateRecord($record);
  42. }
  43.  
  44. // i usuniecie
  45.  
  46. foreach($articles->selectRecords($c) as $record) {
  47. $articles->deleteRecord($record);
  48. }
  49.  
  50. ?>

Cóż, czekam na jakikolwiek odzew, szczególnie opinie, no i czy ktoś by tego wogóle używał (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Aha no i system jest skierowany raczej dla mniejszych aplikacji i mniej zaawansowanych użytkowników. Bardziej wymagający pewnie wezmą Propela (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
M4chu
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


Czemu tableExists, to pomylka?
Nie ma 'new Author', bo chcę uniknąć mapowania i tworzenia klas - user ładuje biblioteke i już może sam pracować na danych. Criteria oczywiscie sie spodobala, bo narazie nie widze innego sposobu do budowania... kryteriow (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Co do masowego edytowania/usuwanie, to tez o tym myslalem, i pewnie tak zrobie - doDelete(Criteria $c), doUpdate(Criteria $c).
Ogolnie to chcialem zrobic takie wygodne narzedzie do np prostego edytowania tabel - zakrywania zapytan ALTER TABLE, szybkiego wybierania rekordów.
Vengeance: wiadomo, pisze dla wlasnej przyjemnosci i pewnie na mojej tylko sie skonczy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 06:53