[php] Który framework?

0

Witam Szanownych Forumowiczów :)

Czy korzystacie podczas pracy z PHP z istniejących frameworków (np. Prado czy też Zend Framework)?

Który byście polecili do pracy nad dosyć złożonymi aplikacjami internetowymi?

A może korzystacie z własnych patentów?

0

Szczerze mówiąc osobiście wszystko piszę od 0. Tzn. ewentualnie używając swoich elementów. Jedyne, co mam "z zewnątrz", to klasa do obsługi MySQL'a autorstwa Ktosia, ale tylko dlatego, że już była napisana, bo jak nie, to napisałbym sam - nie jest to skomplikowana klasa.

0

Ja sam osobiście korzystam z kilku własnych klas i funkcji, ale wielu znajomych bardzo poleca framework CakePHP http://cakephp.org/ trochę wzorowany na słynnym Ruby on Rails, tyle, że w PHP ;)

0

Podobnie jak Ktos korzystam z własnych rozwiązań.

0

to widzę nie jestem unikatem :-( też jadę na swoich rozwiązaniach, jedyne z zewnątrz to Smarty. Co do Prado vs. Zend to z tego co czytałem Zend ma wiele lipnych rozwiązań i nie nadaje się jeszcze jako w pełni wydajny FrameWork, ale już niedługo ;-)

0

własne rozwiązania są najlepsze - przynajmniej na początku. Z niemoich skryptów to ostatnio staram się wgryźć w Template z Coyote'a. Na początku było (i nadal troche jest - INCLUDE odmawia współpracy) trochę kłopotów, ale warto się chwilę pomęczyć, bo skrypt działa na prawdę dobrze!

0

czemu tylko na początku? rozwijając swój kod można stworzyć coś bardzo ciekawego mając przy okazji 100% wiedzę na temat jego wykorzystania etc :)

0

Ale w przypadku komercyjnego pisania zwykle nie ma czasu na pisanie czegokolwiek od nowa i maksymalnie trzeba wykorzystywać istniejące już rzeczy. Owszem, można pisać koło od nowa, ale nikt nie płaci za wyczyny - trzeba po prostu znać istniejące frameworki, czy systemy szablonów.

http://www.room-303.com/blog/2005/08/22/5ca647c65f3ff083551ebacbdf06a7fb/

Oczywiście jeżeli się nie znajdzie niczego odpowiadającego potrzebom trzeba pisać samemu - ale to jest ostateczność.

0

@Bełdzio: prosty przyklad: napiszesz cos lepszego od STL'a? wiec implementacje robisz, zeby wiedziec o co chodzi, ale potem korzystasz z STL'a bo jest szybszy i lepszy i tak jak Ktos napisal przede mna.

0

@AklimX ogólnie to piszę swojego frame'a bo na razie sprawia mi to przyjemność ;-) co do STL to nawet nie wiem co to jest (może dlatego, że nie kodzę w c) ;-)

Spedycja Transport Logistyka ? :> ;-)

0

Standard Template Library. Ale Spedycja, Transport, Logistyka też :)

0
Ktos napisał(a)

Standard Template Library. Ale Spedycja, Transport, Logistyka też :)

no ale czy to nie jest do C? :|

@down to trzymaj się PHP a nie mnie w komplexy wpędzasz :D

0
Bełdzio napisał(a)
Ktos napisał(a)

Standard Template Library. Ale Spedycja, Transport, Logistyka też :)

no ale czy to nie jest do C? :|

to tylko przykład...

0

Troche bawiłem się Smarty i jest fajne. Na pewno można w tym pisać porządne aplikacje w oparciu o MVC. Gdyby jeszcze w PHP było coś dobrego do baz danych, to nawet bym się do PHP przekonał.

Póki co, to bardziej złożonych aplikacji nie pisałbym w PHP. Nie wiem, czy jest coś w PHP, co potrafi przebić Javowy zestaw [Hibernate + Jetty + Velocity + Spring/PicoContainer] zarówno pod względem łatwości programowania, jak i jakości finalnych produktów.

0

Krolik: Co do baz danych - widziałeś AdoDB albo (co lepsze) PDO - PHP Data Objects - (od PHP 5.1 chyba)? Naprawdę mocna rzecz.

0

Widziałem. Rzeczywiście mocna rzecz: wreszcie można obsługiwać wiele syst. baz danych tym samym zestawem poleceń! I chroni przed SQL injection, bo obsługuje wzorce zapytań z podstawianymi parametrami! Genialne! :-D

Gdyby to było 6-8 lat temu, rzeczywiście powiedziałbym "mocna rzecz". Ale w obecnych czasach spodziewałbym się czegoś więcej niż tylko możliwości wygodnego wykonywania zapytań. Zobacz, co obecnie umie Hibernate. Obsługa baz danych NIE JEST dziedziną, w której PHP błyszczy... (przynajmniej na tle konkurencji).

0

A co umie? Z czystej ciekawosci pytam bo nie wiem jak to mozna jeszcze skomplikowac ;)

0

@Krolik: w prawdzie nie interesuje sie Java i nie wiem co to Hibernate, ale co moze byc prostszego od wywoływania polecen? przeciez system nie domyśli się co ma zrobić...

0

Krolik: Nieścisłość - mocna rzecz w stosunku do tego, co było w PHP do tej pory ;)

0
Ktos napisał(a)

Krolik: Nieścisłość - mocna rzecz w stosunku do tego, co było w PHP do tej pory ;)

;) To prawda.

Robi sie maly offtop, ale parę zdań o Hibernate.
Wyobraź sobie, że dane w bazie widać nie jako rekordy i tabele, ale jako obiekty i klasy. Wtedy jak chcesz coś zapisać w bazie piszesz:

Session session = HibenateUtil.getCurrentSession();  // wyciagniecie sesji hibernate
MojaKlasa obiekt = new MojaKlasa();     // stworzenie obiektu
obiekt.setCostam1("blabla");    // ustawienie pol w obiekcie
obiekt.setCostam2("blabla2");
obiekt.setCostamInteger(12345);
session.save(obiekt);  // zapis obiektu w bazie

Wydobycie obiektu z bazy w podobny sposob:

Query q = session.createQuery("from MojaKlasa where id = 1200");  // stworzenie zapytania w HQL
MojaKlasa obiekt = q.uniqueResult();  // wydobycie obiektu
System.out.println(obiekt.getCostam1());  // wypisanie pól
System.out.println(obiekt.getCostam2());
System.out.println(obiekt.getCostamInteger());

Oczywiscie na poziomie pojedynczych obiektow, duzej roznicy nie ma, ale Hibernate swietnie obsluguje rowniez relacje miedzy obiektami - kompozycje, kolekcje, dziedziczenie. Nie musisz uzywac joinow, zeby wydobyc kilka powiazanych obiektow. Mozesz tez okreslic, ktore
pola przeklasdaja sie na ktore kolumny w bazie. W HQL można też odwoływać się do obiektów za pomocą ".", taj jak w Javie czy PHP. Tzn. można napisać: WHERE pracownik.szef.telefon = 12345678, co oznacza "gdzie telefon szefa danego pracownika = 12345678". Nie trzeba robic joinow, hibernate sam stworzy odpowiednie zapytanie SQL.
Wiecej na www.hibernate.org.

0

W HQL można też odwoływać się do obiektów za pomocą ".", taj jak w Javie czy PHP.

Może się czepiam ale to o czym piszesz to odwoływanie się do metod danego obiektu i w PHP nie odbywa sie to za pomocą kropki, a za pomocą "->" czyli $obiekt->metoda();

moze jest to troche OT ale taka małą rzecz powoduje często przy przesiadaniu sie z jednej technologii na drugą problemu z myleniem różnych elementów języka ;)

0

@nul: z tego co rozumiem to ten Hibernate to taki wrapper na baze danych. Cos jak XML Binder w Borlandach.

0
nul napisał(a)

W HQL można też odwoływać się do obiektów za pomocą ".", taj jak w Javie czy PHP.

Może się czepiam ale to o czym piszesz to odwoływanie się do metod danego obiektu i w PHP nie odbywa sie to za pomocą kropki, a za pomocą "->" czyli $obiekt->metoda();

moze jest to troche OT ale taka małą rzecz powoduje często przy przesiadaniu sie z jednej technologii na drugą problemu z myleniem różnych elementów języka ;)

Racja. Miałem na myśli to, że istnieją odpowiedniki takiego operatora w Javie (.), C, C++ (->), PHP (->), Delphi (^.) i wielu innych językach wspierających programowanie obiektowe. Nie ma czegoś takiego w SQLu. Hibernate to framework do mapowania obiektowo-relacyjnego, chyba obecnie jeden z najbardziej zaawansowanych.

0

Wczoraj coś w PHP Solutions czytałem o frameworku Propel do PHP, który właśnie zajmuje się mapowaniem obiektowo-relacyjnym.

A co do frameworków do PHP to jest takie coś jak PRADO i jak to zobaczyłem to pomyślałem "toż to RAD, tylko GUI nie ma". Normalnie kontrolki i komponenty jak w Delphi czy innych RAD ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1