Dzisiejszy wpis będzie zapisem moich dywagacji na temat używania frameworków w małych projektach, tak dla odmiany. Chciałbym poruszyć tę kwestię, gdyż wydaje się to być dosyć duży problem. Oprę się na danych pochodzących z małej aplikacji opartej na Zend Frameworku oraz stronie Linux.Eazu.pl. W pierwszym przypadku dane nie będą się różnić zbytnio od pomiarów na “czystym” Zendzie, w drugim zaś wszystko napisane zostało obiektowo, z użyciem systemem szablonów praktycznie identycznym, jak ten z mojego artykułu pod tytułem “(Bardzo) prosty system szablonów”. Różnicą w obydwu aplikacjach jest typ zastosowanej bazy danych, gdyż w Zendzie oparłem się na MySQLu, a w poradniku o Linuksie na SQLite. Mimo wszystko nie zrobi to wielkiej różnicy, kiedy zobaczymy różnicę w danych.
Podczas generowania różnego rodzaju dokumentów, jak choćby blankiety wpłaty pieniędzy, czy faktur, napotykamy się na problem generowania słownej prezentacji kwoty. O ile wypełniając takie rzeczy ręcznie nie jest to trudne oraz oczywiście jeżeli ktoś nie ma problemów z pisownią na przykład “sześćset”(ile to razy widziało się mandaty czy inne rzeczy z napisem “szejset”), o tyle tworząc takie rzeczy, chcemy zautomatyzować jak najwięcej procesów. Głupstwem byłoby tworzenie ręcznego wprowadzania kwoty słownie, więc w każdym projekcie dochodzi się do zagadnienia generowania słownej reprezentacji kwoty. Od razu spieszę z pomocą. Mianowicie: stworzyłem klasę, która pozwala wygenerować ten zapis aż do kwoty 999 999 999 zł 99 gr. W Internecie można spotkać się z klasami do bilionów, trylionów itd., lecz powiedzmy sobie szczerze: kto to wykorzysta? Są to sporadyczne przypadki, gdzie już programista może się minimalnie bardziej zmęczyć i dopisać obsługę większych kwot, co przy już gotowym kodzie tysięcy i milionów, byłoby kwestią pięciu minut.
Czytaj dalej
Pomimo tego, że PHP zazwyczaj wykorzystuje się do tworzenia aplikacji WWW, można go też używać do programowania skryptów, wykonujących się w konsoli(“CLI” – ang. Command-Line Interface). Niestety, jest pod tym względem dosyć słabo rozwinięte, aczkolwiek i tak można z jego pomocą napisać wiele użytecznych rzeczy. Jednym z usprawnień, którego brakuje, jest prosta obsługa podprocesów lub wątków. Bez tego nie stworzymy choćby prostego serwera opartego na gniazdach(ang. socket), który byłby w stanie obsłużyć kilku klientów jednocześnie. Nie jest to najoptymalniejsze rozwiązanie, wręcz lepiej robić takie rzeczy w językach do tego przeznaczonych(np. w C++), ale jednak czasem może przeważyć oszczędność czasu i mała znajomość języków programowania innych niż PHP. Właśnie z myślą o takich przypadkach, lub o takich, w których optymalność nie gra zbyt dużej roli, napisałem ten artykuł. Czytaj dalej
Chciałbym przedstawić Wam ciekawy problem, nad którym można się dosyć dużo nagłowić, a którego rozwiązanie jest notabene banalne. Chodzi mi o zamianę polskich znaków na ich odpowiedniki, ale w przypadku, kiedy w źródle mogą one być zapisane w różnych kodowaniach. Ograniczę się do UTF-8, CP1250(Windowsowe) oraz ISO. Na problem można się natknąć, kiedy użytkownicy będą Nam przesyłali pliki, a ich nazwa będzie kluczem do wykonania pewnego zadania. Czytaj dalej
Podczas tworzenia skryptu, który opiera się na bazie danych MySQL, często nie zwracamy uwagi na najważniejszą rzecz: kodowanie znaków. Niby opieramy się na UTF-8, bo dane przecież wysyłamy w takim formacie, tabele i baza również są poprawnie stworzone ale… zapominamy o kodowaniu połączenia, co skutkuje miksem Latin1 i UTF-8. Czytaj dalej