[PHP/SQL][Szukam] Framework

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

[PHP/SQL][Szukam] Framework

Post autor: viraptor »

Witam.
Szukam jakiegoś ładnego frameworka w php do abstrakcji bazy (a raczej samych rekordów). Bardzo podoba mi się podejście z ruby on rails, ew. cake'a, czyli żeby framework zawierał przynajmniej:
klase, którą można dziedziczyć dla każdej tablicy
- w klasie lista obsługiwanych pól, lista pól, które nie są automatycznie wypełniane, typy pól
- funkcje typu
new klasa(array('pole1'=>'wartość', 'pole2'=>2))
klasa::get_all();, klasa::get_all('pole = wart');
sprawdzanie poprawności ułatwione makrami
$obiekt->insert(), $obiekt->update(), $obiekt->delete() (czyli cały CRUD)
- fajnie byłoby jeszcze wiązać tabele właściwościami 'należy do', albo 'ma wiele'.
Znacie coś takiego? Cake mi się podoba i ma to wszystko, ale wymaga mod_rewrite i stawiania vhosta, co nie zawsze mogę zrobić.
Chodzi oczywiście o rozwiązanie GPL / PD / wiadomo o co chodzi :)
splatch
Nowy
Nowy
Posty: 36
Rejestracja: śr gru 04, 2002 7:05 pm
Lokalizacja: Bydgoszcz/Brodnica
Kontakt:

Re: [PHP/SQL][Szukam] Framework

Post autor: splatch »

Myślę, że w tym wypadku warto iść o krok dalej - zamiast wzorca ActiveRocord zastosować bardziej rozbudowany, ale podatniejszy na rozbudowę TableDataGateway. Rozwiązanie to implementuje Propel. Sam z niego korzystam i muszę przyznać, że zaoszczędza sporo pracy - odpada zbędna zabawa z pisaniem modeli (którą cake trochę upraszcza), co ważniejsze można w zupełności zapomnieć o zapytaniach SQL.
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: [PHP/SQL][Szukam] Framework

Post autor: viraptor »

Hehe - miło się doczekać odpowiedzi po roku :D
Tak czy inaczej narazie jade na Cake'u, bo całkiem ciekawie się rozwija. Chociaż, jeśli opublikujesz swój frame na jakiejś fajnej licencji, to na pewno przemyślę go ze wzgl. na te moduły przede wszystkim..
A TableDataGateway to całkiem ciekawy przykład... przypomina coś z pogranicza DataAdapter i DataSet z .NET'u - tam całkiem przyjemne w użyciu - w php nie stosowałem. Tam adapter robi update, insert, i fill(DataSet), a w samym DataSet jest find(), więc troche to jest pamięicożerne rozwiązanie.
Czy ty ładujesz w tym stylu całą tablice od razu, czy dajesz jakiś interfejs enumeratorów / foreach?
splatch
Nowy
Nowy
Posty: 36
Rejestracja: śr gru 04, 2002 7:05 pm
Lokalizacja: Bydgoszcz/Brodnica
Kontakt:

Re: [PHP/SQL][Szukam] Framework

Post autor: splatch »

Mój framework jest na LGPL.

Korzystając z propela masz możliwość użycia LazyLoad to znaczy - dane są dociągane automatycznie - jeśli masz związek powidzmy 1:N (article z author) to przy pobraniu autora:
[php]<?php

$author = AuthorPeer::retrieveByPK($id);

foreach($author->getArticle() as $article) { // w tej chwili sa doczytywane powiazane teksty
echo $article->getTitle() .'<br />';
}

?>[/php]

Oczywiście korzystanie z LazyLoad jest uzależnione od sytuacji, ale osobiście wolę mieć już przygotowane wyniki:
[php]<?php
$c = new Criteria();
$c->add(AuthorPeer::AUTHOR_ID, $id, Criteria::EQUAL);
$results = AuthorPeer::doSelectJoinArticle($c);
foreach($user[0]->getArticle() as $article) {
echo $article->getTitle() .'<br />;
}
?>[/php]
ODPOWIEDZ