Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] [klasa] PHP Compacter Class, Ot, taka sobie obcinarka skryptów ;)
SoofMan
post 19.07.2007, 14:44:57
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2007
Skąd: klikash ? A stond, z tamtond, ze wszond

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


Witam

Przedstawiam dawno temu zapowiadany na forum.php.pl skrypcik: PHP Compacter, którego używam do zmniejszania rozmiarów skryptów PHP Hypercacher.

Od razu powiem, że jest to wersja NIESTABILNA-ALPHA i ma wiele wad - część z nich a także zalety wymienię ponizej:


Wady:

- Powolny jak cholera (przerobienie katalogu PHP Fusion (1MB czy 2MB kodu) zajmuje z 10 minut na procesorcze klasy Sempron 4000+)

- CMSy PHP Fusion i Joomla po przerobieniu nie działają poprawnie, aczkolwiek kod PHP nie wywołuje parse errorów, a w PHP Fusion działają niektóre funkcjonalności (patrz zrzut ekranu z PHP Fusion)

- Algorytm nie wykorzystuje w większym stopniu preg_match, gdyż miałem z tym duże problemy (preg_match nie toleruje niektórych znaków)- zamiast tego algorytm "taguje" więc początek i koniec fraz alfanumerycznych odpowiednim unikalnym ciągiem i potem używa str_replace do wyszukania fraz razem z unikalnymi ciągami. Poza tym z użyciem preg_match program jest jeszcze wolniejszy.

- Pisanie czegoś takiego w języku nie kompilowanym do postaci BINARNEJ ma mały sens, ponieważ jest strasznie powolny

- Ogólnie uważam że program jest mało przydatny w obecnej formie i nie wiem czy komuś się na coś przyda


Zalety:
- Przerabia bezbłędnie mniej przekombinowane skrypty (obsługuje poprawnie dużą część konstrukcji PHP - tylko z niektórymi ma problem: potrzeba więcej debuggowania żeby dojść co nie działa)

- Zmniejsza rozmiar kodu PHP o około 50% bez użycia kompresji

- Implementacja zawiera prymitywny parser PHP więc teoretycznie może się komuś przyda do czegoś

- PHPCompactera można użyć jako SCRAMBLERA (zaciemniacza) kodu - żeby zabezpieczyć nasz kod przed kradzieżą rozwiązań przez mniej doświadczonych programistów



Konstrukcja:

Klasa zawiera prymitywny algorytm parsujący kod PHP, który analizuje kod PHP bajt po bajcie i potrafi odróżnić nazwy zmiennych, znaki specjalne, komentarze, itd.



Licencja: GPL wersja 3.



Początek kodu wygląda tak:

  1. <?php
  2. class PHPCompacter {
  3.  
  4. //If you have any variable name that you don't want to be changed by PHPCompacter, put its name in this array
  5. //Warning: All of these must be written UPPERCASE and without dollar '$' otherwise it won't work correctly !!
  6. var $predefined_exclude_vars = array('THIS', '_SERVER', 'HTTP_SERVER_VARS', '_ENV', 'HTTP_ENV_VARS', '_COOKIE', 'HTTP_COOKIE_VARS', '_GET', 'HTTP_GET_VARS', '_POST', 'HTTP_POST_VARS', '_FILES', 'HTTP_POST_FILES', '_REQUEST', '_SESSION', 'HTTP_SESSION_VARS', 'GLOBALS', 'PHP_ERRORMSG'); 
  7. var $predefined_exclude_funcs = array();
  8. //This are the character that will be used to create new, short variables
  9. var $counter_string_chars = array('qwertyuiopasdfghjklzxcvbnm', '1234567890_');
  10. var $diffrence_separator = '^&pC*'; //This helps to identify/find variable and function names later by separating alphanumeric characters fro
    m non-alphanumeric characters
  11. var $varname_maxlen; //Array containing maximum sizes of string "digits" of counter string
  12. var $min_counter_string_length; //Minimum length of variable names
  13. var $max_counter_string_length; //Maximum length of variable names
  14. var $compact_variables; //BOOLEAN - true means that we want to compact variable names
  15. var $varname_counter = 0;
  16. var $output_folder = '_phpCompacter_Output';
  17. ?>


Klasy używamy w następujący sposób

1. Wrzucamy pliki php_compacter.class.php oraz predefined_keywords.txt do folderu

2. Wrzucamy pliki PHP których rozmiar chcemy zmniejszyć do jakiegoś katalogu obok (może to być folder w którym jest zainstalowane PHP fusion)

3. W php_compacter.class.php (lub oczywiście wpisujemy to w innym pliku, i includujemy klasę) wpisujemy:
  1. <?php
  2. $phpc1 = new PHPCompacter(1, 5, 2);
  3. $phpc1->loadReservedKeywords('predefined_keywords.txt');
  4. $phpc1->RecursiveCompactDir('Nazwa_folderu_z_plikami_PHP');
  5. ?>


4. Odpalamy skrypt z przeglądarki i czekamy na efekt. Jeżeli mamy odpowiednie uprawnienia, to PHP Compacter automatycznie utworzy katalog _phpCompacter_Output i w nim skopiuje strukturę folderów z katalogu, który przerabia i pozapisuje w tej strukturze przerobione pliki PHP w odpowiednich miejscach. Jeżeli nie mamy uprawnień do zapisywania w aktualnym folderze, należy zmienić w klasie zmienną $output_folder na jakiś inny folder - np. mój_folder1/folder/_phpCompacter_Output


Pobrać skrypt można tutaj:

http://hypercacher.com/download_pl.html


Specjalnie do dyskusji na temat tego skryptu utworzyłem też temat na moim forum - jeżeli będą jakieś sugestie poprawek to chętnie je wdrożę.

http://hypercacher.com/forum/viewtopic.php?t=32


-----------
Może komuś będzie chciało się to przepisać na coś binarnego - np. C++ - bo na moje potrzeby wystarczy taka funkcjonalność jak jest teraz, poza tym piszę aktualnie tylko w PHP winksmiley.jpg

Ten post edytował SoofMan 24.07.2007, 10:37:19


--------------------

Szybki, łatwy, prosty i przyjemny dopalacz do stronek w PHP:
http://www.hypercacher.com
Enjoy.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 22)
NuLL
post 19.07.2007, 16:14:43
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Do czego to ma sluzyc ?

Ten post edytował NuLL 19.07.2007, 16:15:58


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
tuner
post 19.07.2007, 16:26:54
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 10.12.2004

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


Do zmniejszania! Taki proces odwrotnej ewolucji, od mamuta do planktonu. Taki:
  1. <?php print_r(!Kingsajz::ziuum()); ?>
Go to the top of the page
+Quote Post
NuLL
post 19.07.2007, 16:42:57
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


No dobra a co daje takie zmniejszenie ? smile.gif Jakis kosmiczny przyrost wydajnosci ? smile.gif


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
hwao
post 19.07.2007, 16:50:01
Post #5


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Cytat(NuLL @ 19.07.2007, 17:42:57 ) *
No dobra a co daje takie zmniejszenie ? smile.gif Jakis kosmiczny przyrost wydajnosci ? smile.gif

szybciej sie na ftp wrzuca.


@SoofMan korzystałeś z tokenizera php czy pisałeś swój i czy nie był lepiej zrobić to linii poleceń, przy pomocy samego php?
Go to the top of the page
+Quote Post
SoofMan
post 19.07.2007, 17:17:04
Post #6





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2007
Skąd: klikash ? A stond, z tamtond, ze wszond

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


Cytat(hwao @ 19.07.2007, 17:50:01 ) *
szybciej sie na ftp wrzuca.
@SoofMan korzystałeś z tokenizera php czy pisałeś swój i czy nie był lepiej zrobić to linii poleceń, przy pomocy samego php?


Nie korzystałem z żadnych tokenizerów - ani ogólnie żadnych zaawansowanych funkcji...

Po prostu napisałem algorytm który przerabia kod bajt po bajcie i przewiduje co ma zrobić po każdym bajcie...

To w zasadzie taki prymitywny mini-parser PHP - musiałem przewidzieć każdą ewentualność która może wystąpić w kodzie bo inaczej nie udałoby mi się go skutecznie i bezbłędnie skracać.


----------------
Może kiedyś uda mi się go tak dopracować, żeby przerabiał całe PHP fusion albo Joomle na w pełni działający kod.

Ogólnie to nie ma pewności że nie zadziała na nawet bardzo skomplikowanym kodzie - zachęcam do testowania. A nuż widelec zadziała poprawnie akurat na Waszym kodzie questionmark.gif

Ten post edytował SoofMan 19.07.2007, 17:17:46


--------------------

Szybki, łatwy, prosty i przyjemny dopalacz do stronek w PHP:
http://www.hypercacher.com
Enjoy.
Go to the top of the page
+Quote Post
NuLL
post 19.07.2007, 17:45:07
Post #7





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Sprobuj na eZ Publishu to potestowac smile.gif Mysle ze kazdy przypadek przerobisz - przynajmniej dla PHP4 winksmiley.jpg


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
SoofMan
post 19.07.2007, 17:56:00
Post #8





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2007
Skąd: klikash ? A stond, z tamtond, ze wszond

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


Cytat(NuLL @ 19.07.2007, 18:45:07 ) *
Sprobuj na eZ Publishu to potestowac smile.gif Mysle ze kazdy przypadek przerobisz - przynajmniej dla PHP4 winksmiley.jpg


Dobry pomysł...

Ale wcale nie jest tak dużo tych przypadków jak myślisz. Joomla też już działa bez PARSE errorów... po prostu skrypt zmienia nazwy jakichś zmiennych na nie takie jak trzeba i jakieś dane się gubia po drodze...

Nie miałem jeszcze czasu żeby zdebuggować PHP fusion i sprawdzić co dokładnie się gubi i gdzie - pewnie po prostu jest jakiś typ odwołania do zmiennej którego nie przewidziałem.

Dodam że PHPCompacter zadziała z kazdym skryptem, jeżeli wyłączyć skracanie nazw zmiennych (sprawdzone).

wystarczy utworzyć klasę w ten sposób:

  1. <?php
  2. $phpc1 = new PHPCompacter(false);
  3. ?>


Żeby uzyskać wersję obcinającą tylko niepotrzebne spacje i końce linii. Tylko jaki tego sens ? Zysk objętościowy będzie niewielki.


------------
Aktualizacja:

Wersja sprzed 19:16 dzisiaj była skopana w taki sposób że uniemożliwiała wykonanie czegoś takiego:

  1. <?php
  2. $phpc1 = new PHPCompacter(false);
  3. ?>


Właśnie uploadowałem nową na server - jeżeli ktoś pobrał wcześniej, to niech ściągnie jeszcze raz.

Ten post edytował SoofMan 19.07.2007, 18:15:21


--------------------

Szybki, łatwy, prosty i przyjemny dopalacz do stronek w PHP:
http://www.hypercacher.com
Enjoy.
Go to the top of the page
+Quote Post
menic
post 19.07.2007, 19:05:20
Post #9





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Jeżeli chodzi o same usuwanie spacji i komentarzy to lepiej sie nadaje php. Natomiast pomysł ze skracaniem nazw zmiennych jest fajny smile.gif Oprócz nazw zmiennych dorzuć jeszcze nazwy klas snitch.gif


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
SoofMan
post 19.07.2007, 19:48:32
Post #10





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2007
Skąd: klikash ? A stond, z tamtond, ze wszond

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


Cytat(menic @ 19.07.2007, 20:05:20 ) *
Jeżeli chodzi o same usuwanie spacji i komentarzy to lepiej sie nadaje php.


No nie bardzo... funkcja z PHP pozostawia *spacje* w kodzie exclamation.gif To niewybaczalne ! biggrin.gif

Cytat(menic @ 19.07.2007, 20:05:20 ) *
Natomiast pomysł ze skracaniem nazw zmiennych jest fajny smile.gif Oprócz nazw zmiennych dorzuć jeszcze nazwy klas snitch.gif


Gwoli ścisłości... program skraca już nazwy klas i funkcji...

Ale nie wszystkich. Tylko tych które wystąpią wcześniej w programie w kontekście

$nazwa_klasy

lub

$costam->nazwa_klasy

(po tym je rozpoznaje)

Dorzucę skracanie nazw wszystkich klas i funkcji. Może wtedy PHP fusion albo joomla zaskoczy i będzie normalnie działać.

Ten post edytował SoofMan 19.07.2007, 19:55:49


--------------------

Szybki, łatwy, prosty i przyjemny dopalacz do stronek w PHP:
http://www.hypercacher.com
Enjoy.
Go to the top of the page
+Quote Post
1010
post 20.07.2007, 13:52:28
Post #11





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


A co to wszystko ma ci dać? Tylko kod straci na czytelności i tyle z tego pożytku...


--------------------
Go to the top of the page
+Quote Post
skowron-line
post 20.07.2007, 14:05:59
Post #12





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


sorki nie doczytalem

ale mam problemik

mam cos takiego
  1. <?php
  2. include('php_compacter.class.php');
  3. $phpc1 = new PHPCompacter(1, 5, 2);
  4. $phpc1->loadReservedKeywords('predefined_keywords.txt');
  5. $phpc1->RecursiveCompactDir('test');
  6. ?>


daje mi
Kod
Warning: opendir(joomla_1012+Admin-pl-Beta2) [function.opendir]: failed to open dir: No error in C:\AppServ\www\php_compacter.class.php on line 173

Warning: usort() [function.usort]: The argument should be an array in C:\AppServ\www\php_compacter.class.php on line 287

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\php_compacter.class.php on line 300


Ten post edytował skowron-line 20.07.2007, 14:17:42


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
SoofMan
post 21.07.2007, 01:07:09
Post #13





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2007
Skąd: klikash ? A stond, z tamtond, ze wszond

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


Wygląda że nie ma takiego katalogu.

Usuń linijkę

  1. <?php
  2. $phpc1->RecursiveCompactDir('joomla_1012+Admin-pl-Beta2');
  3. ?>


Z pliku klasy compactera.

Zostawiłem tam mały bałagan przy debuggowaniu. Nie powinno go tam być.

W ogóle z pliku .class.php wywal wszystko co nie należy do definicji klasy - chyba wygląda to tak:

  1. <?php
  2. //$phpc1 = new PHPCompacter(1, 5, 2);
  3. $phpc1 = new PHPCompacter(false);
  4.  
  5. $phpc1->loadReservedKeywords('predefined_keywords.txt');
  6. //$phpc1->RecursiveCompactDir('_test1');
  7. $phpc1->RecursiveCompactDir('joomla_1012+Admin-pl-Beta2');
  8.  
  9.  
  10. class PHPCompacter {
  11. ?>


Wszystko co jest przed linijką class PHPCompacter { możesz wywalić

Cytat(1010 @ 20.07.2007, 14:52:28 ) *
A co to wszystko ma ci dać? Tylko kod straci na czytelności i tyle z tego pożytku...


1. No przecież o to chodzi żeby stracił na czytelności.... po to chyba są SCRAMBLERy, nie ? "Zaciemnisz" swój kod i potem niezbyt zaawansowanym programistom będzie ciężko się w niego wczytać - taka forma ochrony swojego patentu czy coś (chociaż wcale nie o to mi chodziło gdy tworzyłem Compactera)...

2. Wygoda - używam tego do zmniejszania kodu PHP Hypercachera tak żeby zmieścił się w dwóch linijkach. To bardzo wygodne, gdyż taki kod łatwo się wkleja do innych skryptów, a istotą instalacji PHP Hypercachera jest właśnie wklejanie małych wstawek do innych skryptów.

3. Jak kolega wyżej napisał - szybciej się uploaduje na FTP. Kod zmniejszony za pomocą Compactera jest o około 50% mniiejszy od nieskopmpaktowanego kodu, a zachowuje tę samą funkcjnonalność i działa dokładnie identycznie (tzn. jak go udoskonalę to może będzie kiedyś działał dobrze w każdym przypadku biggrin.gif)

Ten post edytował SoofMan 21.07.2007, 01:08:52


--------------------

Szybki, łatwy, prosty i przyjemny dopalacz do stronek w PHP:
http://www.hypercacher.com
Enjoy.
Go to the top of the page
+Quote Post
Riklaunim
post 21.07.2007, 19:27:33
Post #14





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


jak dla mnie jest to bez sensu winksmiley.jpg jak ktoś chce zamknąć kod to użyje enkodera, a takie przerabianie kodu, usuwanie znaków i modyfikowanie jego samego (zmiana nazw) jest po prostu głupia. Wprowadza dodatkowe błędy, utrudnia łatanie czegoś "na gorąco", czy wprowadzanie drobnych poprawek - robienia czegokolwiek bez odwoływania się do oryginalnej wersji.

Ten post edytował Riklaunim 21.07.2007, 19:29:28


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
Turgon
post 22.07.2007, 09:19:31
Post #15





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Zgadzam się z Riklaunimem. Objętość kodu zależy od twoich umiejętności refactoringu, jeśli ich nie masz, to twój kod jest gigantyczną krową w zaawansowanej ciąży.


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
SoofMan
post 22.07.2007, 11:46:01
Post #16





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2007
Skąd: klikash ? A stond, z tamtond, ze wszond

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


Cytat(Riklaunim @ 21.07.2007, 20:27:33 ) *
jak dla mnie jest to bez sensu winksmiley.jpg jak ktoś chce zamknąć kod to użyje enkodera, a takie przerabianie kodu, usuwanie znaków i modyfikowanie jego samego (zmiana nazw) jest po prostu głupia. Wprowadza dodatkowe błędy, utrudnia łatanie czegoś "na gorąco", czy wprowadzanie drobnych poprawek - robienia czegokolwiek bez odwoływania się do oryginalnej wersji.


Nie twierdzę wcale że to jest mądre... Po prostu obiecałem że to udostępnię, to udostępniłem... to wszystko.

Ten skrypt to jest tylko efekt uboczny który powstał obok PHP Hypercachera i ogólnie jest mało istotny

Nie chcesz, nie używaj.


--------------------

Szybki, łatwy, prosty i przyjemny dopalacz do stronek w PHP:
http://www.hypercacher.com
Enjoy.
Go to the top of the page
+Quote Post
menic
post 22.07.2007, 19:40:57
Post #17





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Wprawdze nie testowałem, ale zamysł mi sie podoba. A czy nie jest przydatne? Ja jestem odrebnego zdania. Sam sobie przygotowałem cache do frameworka. I tak zamiast wrzucac wszystkie bilioteki na serwer to tworze sobie jeden plik gdzie sa otrzebne klasy uzywane przez projekt i na koncu calosc wrzucam na serwer jako jeden plik. Wygoda jest bardzo duza. I szybkość działania też sie zwieksza, bo jest jeden plik a nie masa __autoload().


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
SHiP
post 22.07.2007, 22:45:17
Post #18





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


No cóż, pomysł dziwny. Dla malych serwisow gdzie hot updaty są mile widziane bezuzyteczne. Dla czegos bardziej profesionalnego aby zwiększyć wydajnośc sktyptow imho lepiej uzyc modulów cachujących napisanych pod apacha. I będzie działało kilka razy szybcej...


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
SoofMan
post 23.07.2007, 11:20:42
Post #19





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2007
Skąd: klikash ? A stond, z tamtond, ze wszond

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


Cytat(SHiP @ 22.07.2007, 23:45:17 ) *
No cóż, pomysł dziwny.


Nie przeczę, ja też jestem dość dziwny biggrin.gif

Cytat(SHiP @ 22.07.2007, 23:45:17 ) *
aby zwiększyć wydajnośc sktyptow imho lepiej uzyc modulów cachujących napisanych pod apacha. I będzie działało kilka razy szybcej...


Akurat do przyśpieszania mam co innego - PHP Hypercachera . Pisałem przecież że podstawową funkcją compactera nie jest przyśpieszanie, tylko do zmniejszanie kodu/zwiększanie wygody wklejania fragmentów kodu/ewentualnie zaciemnianie...

Poza tym powstał jako efekt uboczny mojej pracy nad Hypercacherem i jest ogólnie mało ważny. Opublikowałem, bo obiecałem że to zrobię i tyle.

Ten post edytował SoofMan 23.07.2007, 11:23:32


--------------------

Szybki, łatwy, prosty i przyjemny dopalacz do stronek w PHP:
http://www.hypercacher.com
Enjoy.
Go to the top of the page
+Quote Post
menic
post 23.07.2007, 11:26:44
Post #20





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Przydalaby sie opcja uruchomienia tego spod konsoli, bez przegladarki smile.gif


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
SoofMan
post 23.07.2007, 16:51:04
Post #21





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2007
Skąd: klikash ? A stond, z tamtond, ze wszond

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


Cytat(menic @ 23.07.2007, 12:26:44 ) *
Przydalaby sie opcja uruchomienia tego spod konsoli, bez przegladarki smile.gif


To powinno być dość proste...

- Na windowsie chyba działało to jakoś tak

Kod
c:\PHP.exe nazwa_pliku.php


Zadziała tylko jeżeli mamy zainstalowany CGI-moduł PHP...

- Na linuksie też jakoś podobnie... ale nie mogę w tej chwili sprawdzić, bo jestem chwilowo na wingrozie (a na niej nie mam zainstalowanego APACHE'a)

Jak się mylę to niech mnie ktoś poprawi.

Ten post edytował SoofMan 23.07.2007, 16:51:25


--------------------

Szybki, łatwy, prosty i przyjemny dopalacz do stronek w PHP:
http://www.hypercacher.com
Enjoy.
Go to the top of the page
+Quote Post
Ludvik
post 23.07.2007, 17:27:03
Post #22





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


W środowisku produkcyjnym warto, aby w kodzie nie było niepotrzebnych opdstępów... Ja zawsze przelatuję przez katalog php_strip_whitespace" title="Zobacz w manualu PHP" target="_manual i widać niewielką (ale jednak widać) różnicę... Po co marnować czas na czytelność kodu, który nie będzie przez nikogo czytany...

PS. Nie wiem czy wychodzenie poza wymienioną funkcję daje zbyt wielkią różnicę...


--------------------
Go to the top of the page
+Quote Post
SoofMan
post 23.07.2007, 19:10:13
Post #23





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2007
Skąd: klikash ? A stond, z tamtond, ze wszond

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


Cytat(Ludvik @ 23.07.2007, 18:27:03 ) *
PS. Nie wiem czy wychodzenie poza wymienioną funkcję daje zbyt wielkią różnicę...


Skoro już używasz php_strip_whitespace()" title="Zobacz w manualu PHP" target="_manual to podpowiem ci że PHP Compacter idzie trochę dalej w tym kierunku i obcina nazwy zmiennych, co dodatkowo daje zmniejszenie rozmiaru kodu o 50%.

Jeżeli natomiast wyłączysz skracanie zmiennych, to masz po prostu taką lepiej działającą wersję (zostawia spacje w kodzie tylko tam gdzie to jest absolutnie niezbędne) php_strip_whitespace()" title="Zobacz w manualu PHP" target="_manual.

Samo skracanie zmiennych jest niestety w fazie ALPHA. Może działać na Twoim serwisie, ale może nie działać. Więc lepiej dobrze przetestuj serwis po użyciu compactera z funkcją obcinania zmiennych, zanim wrzucisz kod na produkcję.

Natomiast samo wycinanie komentarzy i pustych znaków działa w 100% ok - przetestowane na JOOMLI oraz PHP-FUSION.

Przypominam jeszcze że żeby wywołać funkcję kompaktowania bez skracania nazw zmiiennych , trzeba utworzyć instancję klasy w następujący sposób:

  1. <?php
  2. $phpc1 = new PHPCompacter(false);
  3. ?>


I potem używać normalnie wszystkich funkcji tej klasy.


-----------------
PS. Dzięki twojemu postowi właśnie zaskoczyło mi coś w głowie i wpadłem na to co jeszcze może powodować nieprawidłowe działanie skracania zmiennych biggrin.gif.

Postaram się uploadować nową wersję Compactera wkrótce biggrin.gif.

Ten post edytował SoofMan 23.07.2007, 19:11:34


--------------------

Szybki, łatwy, prosty i przyjemny dopalacz do stronek w PHP:
http://www.hypercacher.com
Enjoy.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 19.07.2025 - 18:24