Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP/OOP][CSS] Generator CSS, Czy to w ogóle ma sens ?
sniezny_wilk
post 4.03.2008, 21:07:05
Post #1





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Witam,

wpadłem na pomysł napisania klasy która generuje kod CSS, ale chwilkę później mój zapał ostudziło pytanie "Czy to się opłaca pisać i czy będzie wydajne?". Z takim pytaniem zwracam się do Was. Może ogólny zarys, co klasa będzie potrafiła:

- tworzenie całego css i wrzucanie go pomiędzy znaczniki <style> w kodzie strony, pisanie css do elementów na zasadzie uzupełnienia wartości style="",
- zmiana już istniejącego css (wczytanie css'a), czyli zmiana poszczególnych atrybutów itp,
- wszystko na wyrażeniach regularnych i tablicach przechowujących wartości.

No i po rozważeniu to na plus:
+ możliwość pisania swobodnie CSS, co za tym idzie elastyczność - dzięki dynamicznemu tworzeniu.
+ możliwość szybkiej zmiany już istniejącego pliku CSS
+ wszystko odbywa się po stronie serwera nie trzeba ciągle aktualizować/zmieniać całych plików CSS, a wydaje mi się to poręczne.
+ szybsza obsługa zmiany template strony z poziomu użytkownika, możliwość zmiany wszystkich np. kolorów na stronie (?)

Jeśli chodzi o minusy:
- żmudne tworzenie (!) np: (kod pisany na szybko).
  1. <?php
  2. $css = new CssGenerator();
  3. $css -> newClass("body");
  4. $css -> setAttribute("body","background-color","#FF0000");
  5.  
  6. echo $css -> getCss();
  7. ?>

- szybkość obsługi i wpływ na generowanie się strony,
- czy to jest w ogóle potrzebne (?)(!),
- czy ma sens takie tworzenie xHTML/CSS z poziomu PHP - w sumie jeśli chodzi o to to istnieje xAJAX, czyli tworzenie JS z poziomu PHP

Chciałbym poznać Wasze opinie na ten temat, czy to ma sens i czy warto coś takiego pisać. Prosiłbym też o odniesienie się do moich za i przeciw smile.gif
Będę wdzięczny za jakiekolwiek opinie na ten temat. Z góry dzięki smile.gif

Ten post edytował sniezny_wilk 4.03.2008, 21:19:21


--------------------
Go to the top of the page
+Quote Post
Kocurro
post 4.03.2008, 22:34:01
Post #2





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Jeśli dasz dobre cacheowanie to pomysł może być nawet całkiem całkiem ... tyle, że ja bym od razu sprzągł z jakimś rozbudowanym systemem generowania html'a opartym na widgetach oraz powiedzmy xml'owych templatach. No dobra wyobraźnia mnie poniosła winksmiley.jpg

Pomysł Twój wydaje mi się całkiem ciekawy - chociaż wszystko zależy od tego jak to zrobisz ...

pozdr.
Go to the top of the page
+Quote Post
sniezny_wilk
post 4.03.2008, 23:45:27
Post #3





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Dzięki za odpowiedź.

Dokładnie tak, chciałbym stworzyć system generowania xhtml w PHP, w skład którego wchodziły by klasy odpowiedzialne za JS oraz CSS.

@Kocurro: Jakie cacheowanie masz na myśli ? Jak mogę to zrobić ? Jakiś prosty przykład ?

EDIT: właśnie wpadłem na pomysł cachowania zapytań z serwera i zapis ich do pliku, po przeczytaniu postu tutaj, zapis do pliku - czemu nie, co sądzicie ?

Ten post edytował sniezny_wilk 5.03.2008, 00:06:37


--------------------
Go to the top of the page
+Quote Post
grzesiek_g
post 5.03.2008, 10:43:46
Post #4





Grupa: Zarejestrowani
Postów: 249
Pomógł: 30
Dołączył: 18.07.2007

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


Cytat(sniezny_wilk @ 4.03.2008, 21:07:05 ) *
No i po rozważeniu to na plus:
+ możliwość pisania swobodnie CSS, co za tym idzie elastyczność - dzięki dynamicznemu tworzeniu.

Ja tutaj swobody nie widzę, np chcę zmienić skórkę a nie znam/ boję się PHP i co wtedy?
Cytat
+ możliwość szybkiej zmiany już istniejącego pliku CSS

Wszystko ok jeśli masz skrypt, a co jeśli musisz się przekopywać przez tysiące linii CMS-a?
Cytat
+ wszystko odbywa się po stronie serwera nie trzeba ciągle aktualizować/zmieniać całych plików CSS, a wydaje mi się to poręczne.

Znienawidzona przeze mnie Joomla widziałem, że ma mozliwość edycji online arkuszy stylów wchodzących w skład templatki.
Cytat
+ szybsza obsługa zmiany template strony z poziomu użytkownika, możliwość zmiany wszystkich np. kolorów na stronie (?)

Patrz wyżej, o ile szybciej otworzę plik styles.css i na podstawie tego co mi pokaże Firebug zmienie atrybuty dla odpowiedniego elementu / klasy?

Uwierz mi, szkoda Twojej pracy, a energię poświęć na coś co przyniesie jakieś korzyści.

Jeśli chodzi o zmiany wyglądu to może lepiej niektórym elementom w CMS / skrypcie dodać możliwość dynamicznego tworzenia nazw klas. Może dam przykład:
  1. <body class="klasa_statyczna <?= $klasa_dodatkowa_body ?>">
  2. <div id="container"<?= ($klasa_dodatkowa_container)?' class=" ' . $klasa_dodatkowa_container . "':'' ?>>
  3. </div>
  4. </body>


--------------------
Warsztat: Ubuntu 12.10, PHPStorm
http://vertoo.pl
Go to the top of the page
+Quote Post
Moli
post 5.03.2008, 11:11:32
Post #5





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


Jak chcesz napisać jakąś klasę do css, to może kolorowanie kodu css ? smile.gif Bo ja podobnie jak grzesiek_g nie widzę użyteczności takiej klasy, bo żeby coś w pliku css zedytować i tak trzeba znać atrybuty winksmiley.jpg
Go to the top of the page
+Quote Post
sniezny_wilk
post 5.03.2008, 14:01:10
Post #6





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Cytat(grzesiek_g @ 5.03.2008, 10:43:46 ) *
Uwierz mi, szkoda Twojej pracy, a energię poświęć na coś co przyniesie jakieś korzyści.

Jeśli chodzi o zmiany wyglądu to może lepiej niektórym elementom w CMS / skrypcie dodać możliwość dynamicznego tworzenia nazw klas. Może dam przykład:
  1. <body class="klasa_statyczna <?= $klasa_dodatkowa_body ?>">
  2. <div id="container"<?= ($klasa_dodatkowa_container)?' class=" ' . $klasa_dodatkowa_container . "':'' ?>>
  3. </div>
  4. </body>


To właśnie też.

Cytat(grzesiek_g @ 5.03.2008, 10:43:46 ) *
Ja tutaj swobody nie widzę, np chcę zmienić skórkę a nie znam/ boję się PHP i co wtedy?


Klasa będzie tylko dla mnie do własnej wygody i użyteczności, skórkę - czytaj kolory, czyli robisz userowi inputy, do których może wprowadzić kolory, później np tworzony template i cachowany na serwerze.

Klasa może być/będzie częścią większej klasy coś takiego jakby page generator z poziomy PHP.

@Moli: żadne kolorowanie smile.gif nie user będzie generował, a ja. To ma służyć mojej wygodzie

@grzesiek_g: Nie bardzo rozumiem tego:

Cytat(grzesiek_g @ 5.03.2008, 10:43:46 ) *
Wszystko ok jeśli masz skrypt, a co jeśli musisz się przekopywać przez tysiące linii CMS-a?


Czemu tysiąc ? Zmieniając styl, też musisz przekopać trochę linii, a jeśli plik tworzący CSS na podstawie klasy, będzie w osobnym includowanym pliku ?

Może jaśniej ta klasa, czy nawet page generator, będzie całością dużego projektu, który piszę sam, do projektu komercyjnego, strona użytkownika będzie mogła na podstawie tej klasy zmienić sobie np kolory template.

A co z tym cachowaniem? I wykorzystać takiego Page Generatora do tworzenia szablonów.. ?


--------------------
Go to the top of the page
+Quote Post
Moli
post 8.03.2008, 18:53:38
Post #7





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


Cytat
Czemu tysiąc ? Zmieniając styl, też musisz przekopać trochę linii, a jeśli plik tworzący CSS na podstawie klasy, będzie w osobnym includowanym pliku ?

Ale pliki z css'em mają dużo mniej kodu niż pliki php z kodem systemu smile.gif I łatwiej w nich coś zmienić smile.gif

Ale jeśli to ma być możliwość zmiany danych elementów na stronie (czyli np. tła w profilu dla danego użytkownika) to chcesz tworzyć plik css dla każdego użytkownika ? Nie lepiej zapisać te informacje w bazie i wyświetlić na stronie w <style..></style> ?
Go to the top of the page
+Quote Post
Sedziwoj
post 19.03.2008, 21:22:59
Post #8





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Skomentuję, bo widzę pewien brak w widzeniu sprawy.
U mnie w pracy nie wyobrażam sobie aby coś ze styli miało być w PHP, czy gdzieś indziej (chyba że to ma być konfigurowalne przez użytkownika, ale to już inna rzecz), jak masz osobę która zajmuje się cięciem strony, wcale nie musi wiedzieć co zrobi <?php echo "a"; ?> nie mówiąc o czymś bardziej skomplikowanym. Więc to odpada, do tego po co coś co jest z warstwy prezentacji wpychać w inne warstwy, robić zależności i się nimi przejmować.
Liczna linijek w pliku css wcale nie jest tak do nie pojęcia, ale jak się tym zajmujesz, dlatego przydaje się rozdzielenie tego na osoby, bo każda może zająć się czymś co zna lepiej.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Cysiaczek
post 19.03.2008, 21:39:11
Post #9





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




To do tego wystarczy w php zwykła klasa reprezentująca arkusz i wypluwająca kod css na wyjściu (dołaczająca zewnętrzne aruksze też).


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
sniezny_wilk
post 20.03.2008, 00:41:31
Post #10





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Cytat(Cysiaczek @ 19.03.2008, 21:39:11 ) *
To do tego wystarczy w php zwykła klasa reprezentująca arkusz i wypluwająca kod css na wyjściu (dołaczająca zewnętrzne aruksze też).


Tak, zrezygnowałem z tego pomysłu.. macie rację trochę bez sensu, lepiej zajmie się czymś bardziej potrzebnym smile.gif


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post 20.03.2008, 08:02:27
Post #11





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




To by miało sens, gdyby zrobić to tak jak mają javowe frameworki do obsługi okienek.
  1. <?php
  2. $div=new Div();
  3. $style=new Style();
  4. $style->setBackgroundColor('black');
  5. $div->appendAtrribute($style);
  6.  
  7. $page=new Document();
  8. $page->appendChild($div);
  9. //o albo z użyciem DOM
  10. ?>


Jednak strony www mają nieco inną budową niż okienka i są bardziej wymagające (okna posiadają już pewien określony interfejs)

Pozdrawiam


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
Sedziwoj
post 20.03.2008, 08:22:19
Post #12





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Powiem tak rozdzielenie formatowania wyglądu od kodu jest ułatwieniem, z tego co wiem, to ludzie trochę klną tworzenie interfejsów w np. Java.
Nie wiem czy się interesowaliście, ale M$ w nowym pakiecie do tworzenia aplikacji zaczął używać XAML do opisu wyglądu. I moim zdaniem do tego będzie dążyć... ale zobaczymy.
(o tym pakiecie mówiłem http://www.microsoft.com/expression/ )


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
sniezny_wilk
post 20.03.2008, 08:36:19
Post #13





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Cytat(Cysiaczek @ 20.03.2008, 08:02:27 ) *
To by miało sens, gdyby zrobić to tak jak mają javowe frameworki do obsługi okienek.
  1. <?php
  2. $div=new Div();
  3. $style=new Style();
  4. $style->setBackgroundColor('black');
  5. $div->appendAtrribute($style);
  6.  
  7. $page=new Document();
  8. $page->appendChild($div);
  9. //o albo z użyciem DOM
  10. ?>


Jednak strony www mają nieco inną budową niż okienka i są bardziej wymagające (okna posiadają już pewien określony interfejs)

Pozdrawiam


O coś takiego mi chodziło mniej więcej. Tylko co później z tym stylem ? Zapisywany do pliki, tworzony dynamicznie ?


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post 20.03.2008, 09:03:06
Post #14





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Właśnie o to chodzi, że nic z tym nie robisz. Po prostu programujesz wygląd strony w php. Chyba, że jako cache można uznać arkusz CSS ;p


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.05.2025 - 23:02