php

PHP SplDoublyLinkedList

Klasa SplDoublyLinkedList – implementacja listy dwukierunkowej w PHP

Listy są najczęściej używanymi strukturami danych (obok tablic). Pozwalają rozwiązać różne problemy programistyczne. Znajdują zastosowanie w implementacji innych struktur danych takich jak: stosy, kolejki, grafy. W odróżnieniu od tablic charakteryzują się większą wydajnością oraz mogą dynamicznie zmieniać swój rozmiar. W każdym elemencie listy dwukierunkowej (węźle) jest przechowywane odniesienie zarówno do “następnika”, jak i “poprzednika” elementu …

Klasa SplDoublyLinkedList – implementacja listy dwukierunkowej w PHP Read More »

SplFixedArray php

Tablice SplFixedArray w PHP

Tablica to “zabójca wydajności”. Słychać tu i tam w odmętach Sieci. Smród pozostał ale od PHP 7 jest znaczny progres. Na przykład w systemach 64-bitowych jest 3,5 krotna poprawa wydajności a w 32-bitowych 2,5 krotna. Dużo lepiej wypadają tablice klasy SplFixedArray. Są to tablice o stałym rozmiarze a jej indeksami mogą być tylko liczby całkowite. …

Tablice SplFixedArray w PHP Read More »

php wzorce projektowe

Wzorce projektowe

Wzorzec projektowy (ang. design pattern) to uniwersalny i sprawdzony schemat rozwiązania jakiegoś powtarzającego się problemu programistycznego (w odniesieniu do programowania obiektowego). Wzorzec wymusza pewien standard pisania kodu, tak aby był on prosty w modyfikacji, zrozumiały a jednocześnie skalowalny. W skrócie to najlepsze techniki programistyczne. BANDA CZTERECH (GoF) Autorami pierwszej znanej publikacji poświęconej wzorcom w inżynierii …

Wzorce projektowe Read More »

php fluent interface

Wzorzec projektowy – Płynny interfejs (Fluent Interface)

Płynny interfejs (ang. Fluent Interface) to wzorzec stosowany w celu zwiększenia czytelności kodu. Można wykorzystać go na przykład do konfiguracji obiektu. Przykładowa postać:

Preferowany zapis:

Przykład funkcji użytej w powyższym zapisie:

Zauważ, że funkcja zwraca instancję obiektu: return $this. W ten sposób możemy łączyć metody operatorem “->” w łańcuch i nie musimy powielać …

Wzorzec projektowy – Płynny interfejs (Fluent Interface) Read More »

php wzorzec property

Wzorzec projektowy – Property

Wzorzec projektowy Property służy do przechowywania i udostępniania danych konfiguracyjnych programu. Zastępuje zmienne globalne i ma podobne zastosowanie jak wzorzec Singleton. W przypadku wzorca Property dane przechowywane są w statycznej tablicy. Do ich ustawiania i pobierania służą statyczne metody set() i get(). PRZYKŁAD IMPLEMENTACJI

Użycie wzorca w obrębie aplikacji:

 

php wzorce projektowe

Wzorzec projektowy – Fasada (Facade)

Wzorzec projektowy Fasada upraszcza skomplikowane i złożone systemy. Można zastosować go do stworzenia API (interfejsu programistycznego aplikacji), który udostępni klientowi uproszczoną specyfikację systemu z jego popularnymi funkcjonalnościami, konkretnymi zadaniami, itd. Wiele portali i serwisów internetowych udostępnia swoje API, np: YouTube Data API, Google Maps API. DIAGRAM WZORCA FASADA Element1, Element2 … Element5 – to klasy …

Wzorzec projektowy – Fasada (Facade) Read More »

php DEPENDENCY INJECTION

Wzorzec projektowy – Dependency Injection (wstrzykiwanie zależności)

Wstrzykiwanie zależności (ang. Dependency Injection) to wzorzec projektowy, który pozwala tworzyć luźne powiązania między klasami. Dzięki temu program staje się bardziej rozszerzalny, elastyczny i można go łatwo testować. Preferowanym sposobem jest wstrzykiwanie zależności poprzez konstruktor. PRZYKŁAD W przykładzie napiszemy prosty programik do detekcji języka przeglądarki internetowej z przekierowaniem na odpowiednią wersję strony np: https://example.com/pl Klasa …

Wzorzec projektowy – Dependency Injection (wstrzykiwanie zależności) Read More »

PHP

Tworzenie archiwum ZIP

Do tworzenia archiwów ZIP można wykorzystać wewnętrzną klasę PHP: ZipArchive. Na początku upewnij się, czy wersja PHP, której używasz posiada bibliotekę ZIP. Możesz to zrobić za pomocą skryptu:

Korzystając z polecenia apt-get (pod systemami uniksowymi) można w błachy sposób zainstalować dowolny pakiet. Na przykład, dla wersji PHP 7.0:

Następnie należy zrestartować serwer. W przypadku serwera Apache:

Tworzenie archiwum ZIP Read More »

php wzorzec obserwator

Wzorzec projektowy – Obserwator (Observer)

Wzorzec Obserwator (ang. Observer) używany jest do powiadamiania wybranych obiektów o zmianie stanu innych obiektów. Dzięki zastosowaniu tego wzorca można odizolować od siebie obiekty tak, że nie są one ze sobą sztywno powiązane. Zgodnie z poniższym diagramem we wzorcu występują dwa podstawowe typy obiektów (interfejsy): obserwowany – obiekt, który jest śledzony; kiedy zmieni się jego …

Wzorzec projektowy – Obserwator (Observer) Read More »

php wzorzec strategia

Wzorzec projektowy – Strategia (Strategy)

Wzorzec Strategia definiuje grupę algorytmów, które mogą być stosowane wymiennie w trakcie działania programu. Interfejs wzorca określa zadania (operacje), które implementują konkretne strategie (KonkretnaStrategiaA, KonkretnaStrategiaB, …). Klasa Kontekst ustawia referencję do interfejsu Strategia oraz implementuje metodę kontekstu, która umożliwia dynamiczną zmianę używanej strategii. PRZYKŁAD W przykładzie wykorzystam strategie do zmiany formatowania wyświetlanego tekstu (duże litery, …

Wzorzec projektowy – Strategia (Strategy) Read More »