Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V   1 2 3 >  
Reply to this topicStart new topic
> [Klasa] Chameleon 1.8.0
Bastion
post 19.04.2006, 15:28:22
Post #1





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


Nowy wątek (za pozwoleniem nospora) w formie kontunuacji tematu zamieszczonego ags
- Nowe zmienne konfiguracyjne :  cache (boolean), cache_expire (int) - definiujace parametry cache
  template_php (string), template_txt (string) - sciezki dostepu
Ten post edytował Bastion 10.05.2006, 13:13:25


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post 19.04.2006, 15:59:42
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


a jak jest z modyfikatorami swoimi? jest jakis system pisania plugów czy są wbudowane w core?
Go to the top of the page
+Quote Post
stoprocent
post 19.04.2006, 16:21:43
Post #3





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 17.05.2003
Skąd: Kraków , Londyn

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


Ja mam tylko jedno pytanie, bo nie czytalem poprzedniego calego watku. Jak moge zrobic petle w petli?


--------------------
Go to the top of the page
+Quote Post
Bastion
post 19.04.2006, 16:39:10
Post #4





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


@ActivePlayer : Dlugo rozwazalem czy system pluginow powinien sie znalesc, ale z tego co widze to raczej bedzie musial smile.gif Bedzie w 1.6
A tak z ciekawosci - jakie bys chetnie widzial modyfikatory, tzn jakich Ci brakuje?

@nasto : co rozumiesz poprzez petle w petli ? moze zadowoli cie instrukcja (@cycle) - mozesz je zagniezdzac


--------------------
Go to the top of the page
+Quote Post
stoprocent
post 19.04.2006, 16:58:31
Post #5





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 17.05.2003
Skąd: Kraków , Londyn

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


Chodzilo mi o cos takiego :

{petla}

Produkt
etc ...

{petla}

wartosci np z innej tabeli

{petla}

wartosci 2 np z innej tabeli

{end}

{end}

{end}


--------------------
Go to the top of the page
+Quote Post
Bastion
post 19.04.2006, 17:09:42
Post #6





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


Kod
{@cycle(tabela_a)}

  Produkt : {tabela_a['klucz_a']}

  {@cycle(tabela_b)}

  Produkt : {tabela_b['klucz_b']}

  {@end}

{@end}


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post 19.04.2006, 19:18:41
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


Ja osobiscie bardzo potrzebowalbym mozliwosci podpinania latwo funkcji z phpa, a to dlatego ze mam w jakiejstam klasie smile.gif jakąśtam funkcję odpowiedzialną za tworzenie linków. i teraz w ukochanym smarty robie tak oto:
Kod
{create_link a=usun b=$item->id}
i przepuszczane jest przez generatorek - w razie potrzeby robie w 10 min easy urle itp itd.
Bastion, jestem nie pocieszony - spozniles sie. 99% projektów jakie mam na barku stoi na smartym, nie wiem czy sie przerzuce z powodów kompatybilnosci - no chyba ze dalbys rade uczynic suppport skladni smartowej ( wiem ze byś nie dał bo to nie ma sensu ), a widze ze kameleon daje rade w 21 wieku.
Go to the top of the page
+Quote Post
Bastion
post 20.04.2006, 07:46:26
Post #8





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


w 1.6 zatem pojawi sie system pluginow z obsluga zewnetrznych funkcji nie koniecznie muszacych byc czescia klasy smile.gif

updated : udalo sie przetestowac OPT pod kątem testu generowania www, wykres uaktulniony


--------------------
Go to the top of the page
+Quote Post
FiDO
post 20.04.2006, 15:57:58
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


No no.. szkoda, ze akurat teraz to wypusciles, bo mam troche sajgon na uczelni i raczej nie powalcze w tej chwili ze swoimi szablonami, ale przynajmniej sprobuje dojsc co powoduje, ze "przegrywam" winksmiley.jpg

Bylbym jeszcze wdzieczny jakbys udostepnil caly test, tak jak ja to zrobilem w poprzednim temacie tylko, ze z uwzglednieniem zmian, ktore wprowadziles (m.in nowa wersja Chameleon'a i juz przygotowane pod niego szablony), tak zeby kazdy mogl odpalic to u siebie i przekonac sie, ze nie bierzesz tych liczb z kapelusza. Nie zebym watpil, ale jak wyniki sie potwierdza u innych to moze tylko podniesc "prestiz" wynikow, na pewno nie zaszkodzi smile.gif

PS. jak mozesz to napisz tez czym wygenerowales te sliczne wykresy winksmiley.jpg


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Bastion
post 28.04.2006, 13:14:21
Post #10





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


smile.gif no problem FiDO : bench.tar.gz
a wykresy wygenerowałem starym poczciwym M$excel smile.gif fajnie ze sie podobają smile.gif

-- updated , wersja 1.6.0 wydana

Kod
    *      Pełna dokumentacja na stronie http://www.vertis.com.pl/doc/
    *      Nowa metoda mapowania parametrów funkcji, modyfikatorów
    *      Usprawniona kompilacja i detekcja kluczy tablic
    *      Wsparcie dla klasy Class5.Debugger
    *      Wsparcie dla składni XHTML
    *      Kompilator poprawnie interpretuje klucze null, false oraz true jako parametry
    *      System obsługi wtyczek
    *      Nowe funkcje klasy Chameleon :
            o   source() - zwraca źródło skompilowanego szablonu ( do celów debuggu )
    *      Nowe modyfikatory (plugin) :
            o   filesize(round, format) - zamienia liczbę na zapis KB, MB, GB / Kbit, Mbit, Gbit (...)
            o   links(class, overwrite) - aktywuje linki URL w podanym tekście
    *      Usunięto błędy
            o   bug001 : parametry force_compile oraz template_txt nie były przenoszone do includów
            o   bug002 : brak komunikatu błędu w przypadku nieznanego modyfikatora
            o   bug003 : usunięto błędy kompilacji w przypadku braku znaczników
            o   bug004 : poprawiono działanie funkcji math()


--------------------
Go to the top of the page
+Quote Post
Vomit
post 30.04.2006, 18:03:38
Post #11





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 23.01.2006

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


Jak wersja 1.60 wypada pod wzgledem szybkosci?
Go to the top of the page
+Quote Post
Bastion
post 30.04.2006, 21:19:05
Post #12





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


identycznie jak 1.5


--------------------
Go to the top of the page
+Quote Post
FiDO
post 1.05.2006, 00:57:44
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


No ja bym powiedzial, ze prawie identycznie.. u mnie widac minimalne zwolnienie, ale to prawie, ze na granicy bledu, wiec mozna pominac.
Mam tez zle wiadomosci, pobawilem sie chwile w złego usera... no i fajnie sobie zawiesilem apacha nieskonczona rekurencją tongue.gif

Reprodukcja jest bardzo prosta.. robisz szablon i includujesz w nim samego siebie, mozna tez przypadkowo z jakiegos szablonu juz zaincludowac taki, ze powstanie petelka.. fajnie jakby sie pojawilo jakies info o takim bledzie, a nie zwis apacha smile.gif

Dodatkowo jest maly blad, ze jak nie istnieje katalog z pluginami (w ogole go po prostu nie ma) to leci piekny warning:
Warning: opendir(....\Chameleon1.6.0\plugins/) [function.opendir]: failed to open dir: Invalid argument in ....\Chameleon1.6.0\class5.chameleon_compiler.php on line 62
Ani nie bede pisal jak to poprawic, bo zapewne dobrze wiesz winksmiley.jpg

Mam tez jedna uwage.. pamietam, ze sam troche walczylem z tym u siebie, bo uznalem to za wazne, wiec przytocze to i tutaj. Chodzi o to, ze traktujesz sciezki do szablonow troche nieintuicyjnie (ja wiem, ze tak jest latwiej, bo sam tak mialem ;]). Juz wyjasniam na przykladzie:

Struktura katalogow z szablonami:
Kod
tpl
|   index.tpl
|
\---subdir
   |   header.tpl
   |   footer.tpl
   |
   \---test
           test.tpl  


Z glownego index.tpl includujemy sobie headera i footera. Teraz chcemy sobie z ów headera lub footera zaincludowac szablon test.tpl no i co sie okazuje ?
Ze musimy zrobic {@inc("subdir/test/test.tpl")}, sciezka wzgledna (test/test.tpl) nie przejdzie, bo jest ona zawsze brana wzgledem katalogu glownego szablonow.
Podobnie ma sie sprawa jesli z pliku test.tpl chcialbym zaincludowac jakis z glownego katalogu.
Musze zrobic nieintuicyjne dla mnie w tym momencie {@inc("plik.tpl")} zamiast {@inc("../../plik.tpl")}.
Z racji, ze sciezki wzgledne sie przydaja to pomysl nad tym w nastepnej wersji winksmiley.jpg

Narazie tyle, pozdrawiam i zycze milych swiat majowych. Mam nadzieje, ze Ci ich wlasnie nie popsulem winksmiley.jpg


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Bastion
post 1.05.2006, 10:01:07
Post #14





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


Cytat
No ja bym powiedzial, ze prawie identycznie.. u mnie widac minimalne zwolnienie, ale to prawie, ze na granicy bledu, wiec mozna pominac.
Mam tez zle wiadomosci, pobawilem sie chwile w złego usera... no i fajnie sobie zawiesilem apacha nieskonczona rekurencją tongue.gif


Źli userzy fantastycznie wplywaja na zdrowy rozwoj projketow smile.gif

A więc smile.gif

Taged Bug#005 : Dopuszczenie do nieskonczonej rekurencji
Taged Bug#006 : Warringi przy braku katalogu plugins
Requested : Ścieżki względne w includach

smile.gif Dzieki FiDO - pomimo tego ze nie uzywasz w celach produkcyjnych zawsze cos pozytecznego przyniesiesz

Ja tez zauwazylem cos w czego w Nemsisie brak, a mysle ze by sie przydalo. Sprawa dotyczy Cache. Z tego co wyczytalem ustawiasz Cache czasowo lub na ID ( ja z ID narazie zrezygnowalem ). Ale o co chodzi, chodzi o to ze jak ustawiasz cache powiedzmy na godzine , a w trakcie tej godziny zmienisz cos w szablonie to i tak nie zostanie to przeprasowane az do czasu miniecia czasu cache, wiec wtedy pozoastaje reczne wyczyszczenie zawartosci cache. Fajnie by bylo ze zmiana w tpl powoduje zresteowanie licznika.


--------------------
Go to the top of the page
+Quote Post
toczek
post 1.05.2006, 13:07:09
Post #15





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 20.06.2005
Skąd: krakow/rzeszow

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


fajna klasa trzeba przyznac winksmiley.jpg, do pelni szczesnia brakuje mi tylko jednej rzeczy.

Mianowicie poprawienie denerwujacych bledow typu "NOTICE" przy error_reporting(E_ALL) winksmiley.jpg. Zaczalem cos samemu grzebac ale nie skonczylo to sie zbyt pomyslnie biggrin.gif


--------------------
nihil novil ...
Go to the top of the page
+Quote Post
Bastion
post 1.05.2006, 14:00:27
Post #16





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


Taged Bug#007 : Usunięcie błędów E_NOTICE smile.gif


--------------------
Go to the top of the page
+Quote Post
FiDO
post 1.05.2006, 15:43:42
Post #17





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat
Źli userzy fantastycznie wplywaja na zdrowy rozwoj projketow smile.gif

To fakt.. tez musze sobie takich skolowac winksmiley.jpg

Jesli chodzi o cache u mnie to jest tak jak mowisz. W momencie, gdy zmieni sie szablon to cache jest odbudowywany. Byc moze nie wynika to jasno z komentarzy w kodzie, ale tak wlasnie jest winksmiley.jpg Cache_id jest uzywany tylko i wylacznie do tego, zeby moc pozniej latwo usuwac cale grupy plikow z cache'u. Np. cachujesz sobie jedna strone w zaleznosci od parametru z GET, wiec otrzymasz pliki z cache_id "costam_1", "costam_2", "costam_3" etc. W sumie to jedna i ta sama strona, tylko z roznymi parametrami wejsciowymi.. np. niech beda to kolejne strony jesli jest stronicowanie, zeby mozna bylo sobie to uzmyslowic. Jesli zmienia sie dane to nie wiemy, na ktorej stronie sie one znajduja, wiec czyscimy cache od wszystkich stron: $tpl->clearCache('plik.tpl', 'costam_*')

Cos mi sie wydaje, ze przydalaby mi sie dokumentacja... tylko, ze na sama mysl, ze mam cos takiego pisac robi mi sie niedobrze winksmiley.jpg

edit: tia... jakbym ja sie teraz przemogl i zabral sie za to to moglbym miec powazny problem z zaliczeniem obecnego, niezbyt przyjemnego, semestru tongue.gif Tak wiec tak czy siak musi to poczekac przynajmniej do jego konca.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Bastion
post 1.05.2006, 15:47:40
Post #18





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


FiDO: ja sie przemoglem smile.gif i stwierdzam ze im wczesniej tym lepiej smile.gif


--------------------
Go to the top of the page
+Quote Post
ajgon
post 1.05.2006, 20:39:56
Post #19





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.07.2005

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


Rowniez mam blad - co prawda nie wiem, czy traktowac to w kategorii buga, no ale.... aaevil.gif
Blad wystepuje przy stosowaniu w projekcie funkcji __autoload

  1. <?php
  2. function __autoload($strClassName)
  3. {
  4. require_once(APP_ROOT.'/include/'.$strClassName.'.class.php');  //linia 33
  5. }
  6. ?>


przy tworzeniu obiektu typu Chameleon, php wywala sie z nastepujacym bledem

Cytat
Compile Error: /home/webdate/public_html/webdate/index.php line 33 - require_once() [<a href='function.require'>function.require</a>]: Failed opening required '/home/projekt/include/Debugger.class.php' (include_path='.:/usr/local/lib/php:/home/projekt/php_libs/')


Narazie obszedlem to uzywaja if($strClassName) != 'Debugger') require_once(...), ale nie jest to zbyt szczesliwe i eleganckie rozwiazanie biggrin.gif

Pozdrawiam
Go to the top of the page
+Quote Post
Bastion
post 1.05.2006, 21:07:23
Post #20





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


dziwne, bo klasa Chameleon sprawdza tylko czy klasa istnieje w konstruktorze, wiec to chyba nie blad Chamelona - chociaz glowy nie dam.

added

Chyba to smile.gif

bool class_exists ( string class_name [, bool autoload])

Kod
            if (class_exists('Debugger'))
            {
                $this->debugger = true;
            }


W plikach :
* class5.chameleon.php , linia 306
* class5.chameleon_compiler.php , linia 718

zmien
Kod
            if (class_exists('Debugger'))

na
Kod
            if (class_exists('Debugger', false))


Tym czasem smile.gif oznaczyłem Bug#008 smile.gif

Ten post edytował Bastion 1.05.2006, 21:28:48


--------------------
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
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: 10.07.2025 - 05:31