Krzysztof Biernacki programista PHP
Temat: [sf 1.4] Projekt 'sporej' aplikacji internetowej - jak...
Witam.Mam takie pytanie związane z projektowaniem "sporych" aplikacji internetowych.
Leży przede mną projekt portalu informacyjnego. Szkopuł w tym, że jest on podzielony na kilka mniejszych portali. Przykładowo dla 'gościa' jest dostępny portal nr 1. Po zalogowaniu (jeśli ma odpowiednie uprawnienia) 'gość' przechodzi do kolejnego - portalu nr 2 - różniącego się m.in. layoutem, gdzie znajdzie spersonalizowane dane, inny rodzaj informacji, modułów, ponadto będzie mógł skorzystać z kolejnego formularza logowania/rejestracji i dostać się do portalu nr 3, różniącego się diametralnie od pozostałych.
Czy ktoś z Was realizował tego typu projekt? W tym przypadku postawić na modułową budowę i zaprząc do pracy tylko jedną bazę danych, zamknąć wszystko w jedną aplikację (frontend/backend), czy utworzyć odrębne 3 bazy danych i podzielić projekt na 3 różne aplikacje? Jak będzie wydajniej, sprawniej, łatwiej? Dodam, że w bazie danych będą przechowywane informacje dla 70 tys. użytkowników, ponadto struktura bazy dla każdego portalu będzie bardzo podobna. Dziękuję z góry za wszelkie sugestie.
Łukasz
Fiłyk
Programista PHP,
Wydawnictwo Forum
Temat: [sf 1.4] Projekt 'sporej' aplikacji internetowej - jak...
Myślę że nikt Ci nie udzieli jednoznacznej odpowiedzi jeśli nie będzie znał sporej ilości szczegółów. Musisz sam przemyśleć co będzie Ci łatwiej zrobić i co będzie miała większe możliwości rozwoju. Trzeba sobie zadać kilkanaście pytań, rozpisać "za" i "przeciw" i wtedy można przesądzić.Kilka wątków do przemyślenia:
1. Dlaczego chcę zrobić to na 3 bazach? Jakie da mi to możliwości (separacja danych) a jakie problemy (dostęp do wspólnych zasobów) Cza każda baza danych będzie mogła samodzielnie istnieć? Jeśli nie to ja bym to wrzucił do jednej bazy bo w przyszłości jeśli ktoś będzie przeglądał jedną baza może nie zauważyć, że coś jest w innej.
2. Czy planujesz CMS do portalu, jeden wspólny lub kilka?
3. Jaki procent funkcjonalności jest taki sam lub różny, może tylko wygląd? Jeśli funkcjonalności są różne to bym oprogramował kilka "app" - ów, jeśli wygląd to operowałbym na różnych templatach do akcji i layout - cie.
4. W jaki sposób będzie przebiegało przenoszeni "zalogowanych" pomiędzy portalami oraz rozróżnianie jaki to portal.
Robiłem podobną rzecz, moje techniczne główne węzły to były:
1. W plikach konfiguracyjnych (ewentualnie baza) trzymałem nazwę portalu, nazwę domeny oraz nazwę "template"
2. Dodałem własny filtr który rozpoznawał domene, wyciągał nazwę templaty i ustawiał jeśli znalazł taki właśnie layout. Dodawał plik CSS i JS o nazwie template.css/js Następnie przeszukiwał odpowiedni katalog 'template" w katalogach CSS i JS i dołączał pliki.
3. Filtr zmieniał dla danej akcji (jeśli znalazł) renderowany plik actionSuccess.php z przedrostkiem o nazwie "templaty"
4. Dodałem własną obsługę partialu aby móc używać lekko zmodyfikowanych partiali
5. Cache na domenie włączone
To jest opcja na jednej "app" do frontendu.
Powodzenia.
Paweł Kubasiak Programista
Temat: [sf 1.4] Projekt 'sporej' aplikacji internetowej - jak...
a ja bym stworzył 3 aplikacje i jedną aplikację dla backendu. Dzięki temu będzie porzadek w kodzie i logiczne odseparowanie poszczególnych stron.3 bazy to nie jest dobry pomysł lepiej zrobić to na jednej bazie danych ale tabele nazywać wg jakiegoś schematu np. app1_blog app2_cos_tam. Możesz dawać podwójne __ dzieki temu bedziesz mógł sobie ładnie zwijać podobne bazy w phpmyadminie.
70 tysiecy to nie jest duża baza pracowałem na bazie liczącej koło miliona rekordów. Przy większych bazach musisz uważać na wszystkiego rodzaju symfonowe filtry i formularze mające pole select. One potrafia do selecta zaciągnąć te 70 tysiecy userów by móc wybrac jednego, powoduje to przepełnienie pamięci i crush.
Warto tez odświeżyć też propela i zainstalować nowy plugin do niego i przejść na propela 1.6.3
powodzenia
Krzysztof Biernacki programista PHP
Temat: [sf 1.4] Projekt 'sporej' aplikacji internetowej - jak...
Dziekuje za zainteresowanie tematem, waham sie jeszcze nad implementacja pewnych rozwiazan w swoim projekcie, ale na dniach podejme ostateczna decyzje. Co do ORM - uzywam Doctrine 1.2. Pozdrawiam.
Krzysztof
N.
Project Manager.
Aplikacje www. PHP,
Symfony, Zend.
Temat: [sf 1.4] Projekt 'sporej' aplikacji internetowej - jak...
Krzysztof Biernacki:A może Symfony 2.0? Przy okazji zapraszam do grupy poświęconej tejże wersji frameworka: Symfony 2.0 :)
Mam takie pytanie związane z projektowaniem "sporych" aplikacji internetowych.
Leży przede mną projekt portalu informacyjnego. Szkopuł w tym, że jest on podzielony na kilka mniejszych portali. Przykładowo dla 'gościa' jest dostępny portal nr 1. Po zalogowaniu (jeśli ma odpowiednie uprawnienia) 'gość' przechodzi do kolejnego - portalu nr 2 - różniącego się m.in. layoutem, gdzie znajdzie spersonalizowane dane, inny rodzaj informacji, modułów, ponadto będzie mógł skorzystać z kolejnego formularza logowania/rejestracji i dostać się do portalu nr 3, różniącego się diametralnie od pozostałych.
Czy ktoś z Was realizował tego typu projekt? W tym przypadku postawić na modułową budowę i zaprząc do pracy tylko jedną bazę danych, zamknąć wszystko w jedną aplikację (frontend/backend), czy utworzyć odrębne 3 bazy danych i podzielić projekt na 3 różne aplikacje? Jak będzie wydajniej, sprawniej, łatwiej? Dodam, że w bazie danych będą przechowywane informacje dla 70 tys. użytkowników, ponadto struktura bazy dla każdego portalu będzie bardzo podobna.
Krzysztof Biernacki programista PHP
Temat: [sf 1.4] Projekt 'sporej' aplikacji internetowej - jak...
Mam jeszcze takie pytanie - czy to dobry pomysł, aby odseparować profile użytkowników i ich uprawnienia, grupy do których należą (osobna baza danych) od pozostałej struktury bazy danych (informacje o artykułach, modułach etc.)? Pytam, gdyż jest odgórny nacisk, aby wszelkie informacje związane z użytkownikami były przechowywane w bazie danych znajdującej się na zewnętrznym serwerze i nie za bardzo wiem w jaki sposób to zrealizować (dotychczas korzystałem z pluginu sfDoctrineGuard w obrębie jednej bazy danych). Liczę po cichu na jakieś sugestie i porady.
Krzysztof
N.
Project Manager.
Aplikacje www. PHP,
Symfony, Zend.
Temat: [sf 1.4] Projekt 'sporej' aplikacji internetowej - jak...
Krzysztof Biernacki:Skąd taki "wspaniały" pomysł?
jest odgórny nacisk, aby wszelkie informacje związane z użytkownikami były przechowywane w bazie danych znajdującej się na zewnętrznym serwerze
Krzysztof Biernacki programista PHP
Temat: [sf 1.4] Projekt 'sporej' aplikacji internetowej - jak...
"Wspaniały" pomysł powstał przy przypływie weny twórczej szefostwa. Jest kładziony nacisk na integrację portali informacyjnych z innymi aplikacjami internetowymi, które będą wykorzystywały tą samą bazę danych użytkowników. Jeśli chodzi o mnie, czarno to widzę. Ktoś z Was wykonywał tego typu zabiegi? Czy mechanizmy frameworka (Symfony 1.4) pozwolą na "umiarkowaną gimnastykę" w postaci zarządzania kontami użytkowników, ich uprawnieniami w zewnętrznej bazie danych?
Grzegorz
Śliwiński
Programista
python/PHP
