Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]własny cms
Forum PHP.pl > Forum > Przedszkole
loel
Witajcie,

na własny użytek produkuje cms, mam czas i masę chęci, a zawsze coś autorskiego cieszy. Niestety dopiero wdrażam się w PHP stąd też mam kilka pytań

- Dotychczas gdy już musiałem użyć php starałem się nie powtarzać zbędnych funkcji i pisać je tylko w plikach w których są potrzebne, obiektowy php kusi jednak, aby wszystkie funkcje wrzucać do jednego pliku, powiedzmy funkcje.php, co za tym idzie dla każdej podstrony, choćby była to zwykła informacja serwer musi przetwarzać ten plik, mimo, że tam nic ciekawego nie znajdzie.Na chłopski rozum przy dużej liczbie odwiedzin przeciąży to procesor, bo każda funkcja to dodatkowe kilobajty. Czy mam rację? Czy naprawdę opłaca się każdą głupią funkcję, choćbym miał jej użyć tylko raz, wrzucać do oddzielnego pliku?

- O ile zapraszanie innych użytkowników do znajomych (tak jak na naszej-klasie) jest dla mnie logiczne i zrozumiałe w wykonaniu to nie mam pojęcia w jaki sposób powinno odbywać się sprawdzanie czy nasz znajomy nie dodał jakiejś nowej fotki. Sprawdzanie choćby 100 rekordów przy każdym przeładowaniu strony panelu wydaje się być szalonym pomysłem. Moglibyście podzielić się pomysłem jak można by sprawnie to wykonać?
erix
Cytat
choćby była to zwykła informacja serwer musi przetwarzać ten plik, mimo, że tam nic ciekawego nie znajdzie.Na chłopski rozum przy dużej liczbie odwiedzin przeciąży to procesor, bo każda funkcja to dodatkowe kilobajty. Czy mam rację? Czy naprawdę opłaca się każdą głupią funkcję, choćbym miał jej użyć tylko raz, wrzucać do oddzielnego pliku?

Ech, kolejny temat o tym samym... Poczytaj o MVC.

Cytat
Sprawdzanie choćby 100 rekordów przy każdym przeładowaniu strony panelu wydaje się być szalonym pomysłem. Moglibyście podzielić się pomysłem jak można by sprawnie to wykonać?
  1. cache jest na pewno, o ile nie ma jakiejś tabeli przetrzymywanej w RAM do tego celu (vide: MEMORY w MySQL)
  2. popatrzyłeś trochę z odwrotnej strony - każdy ma jakiś stos ostatnich wiadomości, etc. Przy update danych powiadamiani są wszyscy znajomi, a oni odczytują tylko swoją kolejkę wiadomości
Ale podejrzewam, że cache, cache i jeszcze raz cache.
wookieb
Cytat(erix @ 19.07.2009, 00:18:01 ) *
Ale podejrzewam, że cache, cache i jeszcze raz cache.

Albo static html. Nie problemem jest generowanie TYLKO RAZ listy np 8 ostatnio dodanych zdjęć.
Zauważcie jakim dobrym rozwiązaniem jest wprowadzenie na naszej klasie listy znajomych z jsową wyszukiwarką.
Wprowadzasz sobie statycznego htmla i jsem szukasz znajomych. Bardzo dobre odciążenie serwera.

Cytat
aby wszystkie funkcje wrzucać do jednego pliku,

Jak sobie sprytnie rozpiszesz obiektówkę to będzie znacznie lepiej.
Ale sytuację w której masz zawsze tylko te funkcje, które potrzebujesz są bardzo trudne do uzyskania, wręcz nieopłacalne pod względem zarządzania.
loel
Cytat(erix @ 19.07.2009, 00:18:01 ) *
popatrzyłeś trochę z odwrotnej strony - każdy ma jakiś stos ostatnich wiadomości, etc. Przy update danych powiadamiani są wszyscy znajomi, a oni odczytują tylko swoją kolejkę wiadomości

Znam jedynie podstawy MySQL, powiadomienie znajomych przy updacie to przy moich umiejętnościach dla serwera dalej będzie to podróż (np. przy 100 znajomych) po 100 rekordach. Z której strony bym nie spojrzał zbyt bardzo angażowałbym serwer. Cache - ok ale przecież wypadałoby sprawdzić czy coś się nie zmieniło przy każdym przeładowaniu.

Wpadłem jeszcze na taki pomysł : Tabela z ostatnimi akcjami wszystkich userów, która zawierałaby też ID znajomych i przy przeładowaniu, przeszukanie tej tabelki czy nie ma czegoś dla danego ID. Co sądzicie o takim rozwiązaniu?


Cytat
Jak sobie sprytnie rozpiszesz obiektówkę to będzie znacznie lepiej.
Ale sytuację w której masz zawsze tylko te funkcje, które potrzebujesz są bardzo trudne do uzyskania, wręcz nieopłacalne pod względem zarządzania.

o właśnie o to mi chodziło, czyli nie jest zalecane wrzucać prawie wszystkich obiektów, szczególnie tych które użyje raz w wyjątkowych sytuacjach, do jednego pliku? Jakiś dziwny kurs czytałem stąd te moje wątpliwości...
wookieb
Tak.
Co ci się przyda:
1) na pewno funkcja __autoload
2) Poczytaj o inversion of control
3) rozdziel obiekty tak aby spełniały TYLKO ściśle wyspecjalizowane funkcje np
Potrzebujesz zarządzać użytkownikami, logowanie oraz uprawnienia użytkowników.
Można to bardzo fajnie zrobić np w ten sposób:
- UserAuth (tylko autoryzacja użytkownika, wylogowanie)
- UserPrivileges (ladownie uprawnień użytkownika, sprawdzenie uprawnienia)
- UsersManager (usuwanie, dodawanie, zmiana danych)

Można to rozbić jeszcze bardziej ale to już zależy od Ciebie.

Ale wszystkiego raczej nauczysz się w praktyce.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.