Edytory PHP
Korzystają z edytorów php natknąłem się na kilka problemów. Postaram się wam przybliżyć klika z nich. Każdy, kto zaczyna programować - nie ważne czy to HTML, PHP czy inny język - po pewnym czasie przesiada się z podstawowego edytora ( najczęściej notatnik ) to czegoś bardziej zaawansowanego. Do programu, który przyspieszy pracę poprzez: kolorowanie składni i podpowiadanie składni, debugowanie, integracja z ftp, cvs, svn, phpDoc. Wszytko jest pięknie aż do rozpoczęcia pracy na owym edytorze. Nagle okazuje się, że niektóre rzeczy nie działają lub działają nie właściwie.
1. Wszyscy, którzy pracują, bądź pracowali na Zend Studio wiedzą jak ten edytor zapycha komputer. Posiadam P4 2,4Ghz z 512Mb ramu i czasem straszni się on tnie. Jednak znalazłem pewne rozwiązanie, które może nie zupełnie i nie na wszystkich komputerach pomoże. Otwieramy folder z Zend Studio/Bin, tam edytujemy plik ZDE.lax. W połowie pliku odnajdujemy 2 linijki:
-
lax.nl.java.option.java.heap.size.initial=268435456
-
lax.nl.java.option.java.heap.size.max=536870912
Standardowe wartości powinny być dużo niższe. Obie wartości wyznaczają ilość pamięci RAM dostępnej dla programu, pierwsza wartość przy starcie, a druga maksymalna dostępna podczas jego używania. Należy obie wartości zwiększyć, nawet ustalić obie takie same, aby Zend Studio od razu dysponowało odpowiednią wielkością. Ja przydzieliłem programowi różne wartości gdyż po ich zwiększeniu uporczywe przycinanie się ustało.
2. Wiele osób używa wzorca projektowego Singleton. Jednak w edytorach pojawia się pewien problem z nim związany. Przeanalizujmy następujący kod:
Wszytko pięknie ale gdy chcemy się odwołać do obiektu:
-
$objFoo = Foo::getInstance();
-
// tutaj podpowiadanie kodu nie zadziała
Jednak jest na to rozwiązanie. Jest to nic innego jak dokumentacja kodu zgodna z phpDoc. Wystarczy dobrze udokumentować kod i będzie on nie tylko czytelny dla nas i innych, ale także edytor będzie lepiej podpowiadał składnię. W powyższym kodzie wystarczy tylko udokumentować metodę getInstance w następujący sposób:
-
//kod klasy
-
/**
-
* Singleton
-
*
-
* @return Foo
-
*/
-
if(self::$thisInstance == null)
-
{
-
self::$thisInstance = new Foo();
-
}
-
return self::$thisInstance;
-
}
-
}
-
-
$objFoo = Foo::getInstance();
-
// teraz w tym miejscu zostanie podpowiedziana metoda getVariable
Trick polega na tym, aby w dokumentacji metody @return podana była nazwa obiektu, który ma zostać zwrócony.
3. Większość edytorów porozumiewa się z użytkownikiem w języku angielskim. Gdy chcemy użyć znaków diakrytycznych pojawia się problem, ponieważ zamiast nich pojawiają się jakieś okienka, uruchamiają się jakieś funkcję programu. Rada jest prosta: należy w opcjach programu zmienić mapę klawiszy. Gdy już wyłączymy dane skróty klawiaturowe takie jak alt + s możemy się cieszyć polskimi znakami w programie.
Mam nadzieję, że przydadzą się wam porady zamieszczone w tej notce. Jeżeli macie jakieś uwagi lub propozycję to piszcie. Zagadnienia 2 i 3 były sprawdzane w edytorach: Zend Studio i Eclipse.
23 wrzesień 2006 o 21:45
Mi naszczęście Zend nie muli komputera, ale to pewnie wina ramu jaką posiadam ( 1Gb ), w każdym bądź razie ten trik z udokumentowanym kodem mi się podoba i muszę go przetestować u siebie
Pozdrawiam.
24 wrzesień 2006 o 16:07
Mówiąc szczerze to dobrze masz z tym 1Gb ramu. Mam nadzieję, że trik z dokumentacją się przyda. Zapraszam do dalszego odwiedzania mojego bloga
30 wrzesień 2006 o 22:56
nie znalazłem tych wartości w moim ZENdku :/
Fajna porada z tym Singletonem
Jednak mi przy 512 Mb także nie muli
1 październik 2006 o 0:14
dziwne, że wpisów tam nie ma ale najważniejsze, że dobrze działa.
12 październik 2006 o 18:12
Może będę głosił tu jakieś “herezje”, ale porzuciłem Zenda na rzecz Eclipse’a…
I nie żałuję, bo większość jego funkcji jest mi niepotrzebna, a różnicy w wydajności nie wspomnę. No i do tego atrakcyjna cena ;P
27 czerwiec 2007 o 13:10
Trick z singletonem pierwsza klasa. Od dawna tego potrzebowałem
22 listopad 2007 o 18:24
Dzieki! Walczyłem z tym ZEND od dłuższego czasu. Szare ekrany czekanie na załadowanie ze pliku wymiany
A teraz śmiga az milo ;p