php5

Wzorzec Pośrednik (Proxy) w PHP

Kolejnym wzorcem projektowym, który omówię jest wzorzec Pośrednik (Proxy). Jest to wzorzec z grupy wzorców behawioralnych. Proxy jest wzorcem, który zastępuje obiekt o tym samym interfejsie i przed otrzymaniem dostępu do obiektu wykonuje się jakaś logika. Do czego może być użyty?

Najpopularniejszym użyciem proxy jest ograniczenie dostępu do kosztownych obiektów do momentu kiedy one są potrzebne. Jest to dość dobrze opisane w Internecie więc pominę to użycie.
Innym przykładem użycia proxy jest zabezpieczenie obiektu przed nieautoryzowanym dostępem.
Kolejna sytuacja kiedy możemy użyć pośrednika to inna reprezentacja obiektu w zależności od określonych warunków, wyobraź sobie, że masz obiekt ProxyRepository i w zależności od pewnych warunków chcesz, aby dane były pobierane albo z MySQL, albo MongoDB. Proxy to umożliwia. ‚

Podsumowując Proxy przekierowuje żądania do oryginalnego obiektu wtedy, kiedy powinny być przekierowane, a warunki zależą od typu Proxy. […]

Symfony kontroler jako serwis

Symfony to framework, w którym kontroler powinien przyjąć Request i zwrócić Response, nie jest wymagane dziedziczenie z klas abstrakcyjnych. Kontrolerem może być prosta klasa PHP.

Poniżej przykład prostego w pełni funkcjonalnego kontrolera:
namespace AppBundle\Controller;

use Symfony\Component\HttpFoundation\Response;

class HelloController
{
public function indexAction($name)
{
return new Response('<html><body>Hello […]

Autor |Kwiecień 27th, 2016|PHP, Programowanie obiektowe, Symfony Framework|0 komentarzy

Najczęstsze błędy początkujących programistów PHP

PHP jest językiem, którego opanowanie w stopniu podstawowym nie jest trudne, jednakże ma to swoje konsekwencje w tym, że początkujący programiści, często idąc na łatwizne piszą kod, który nie jest najwyższej jakości. Często winą tego są poradniki z czasów kiedy wiądącym trendem było PHP 3-4. Te poradniki mają się ni jak do rzeczywistości programistycznej […]

Nowości w PHP 7 – część druga

W poprzednim wpisie przedstawiłem listę nowości w PHP7. W tym skupie się na takich rzeczach jak obsługa wyjątków, deklaracji typu zwracanej wartości oraz zarezerwowanym typom.
Obsługa wyjątków
W PHP7 wszystkie wyjątki implementują interfejs o nazwie \Throwable. Interfejs ten jest implementowany w dwóch głównych klasach(rodzinach klas) obsługujących wyjątki oraz błędy. Struktura wygląda tak jak poniżej:
interface Throwable
[…]

Autor |Wrzesień 23rd, 2015|PHP, Tworzenie stron internetowych|0 komentarzy

Obsługa tablic w PHP część 2

Ten wpis jest kontynuacją poprzedniego wpisu z podstawowymi operacjami na tablicach w PHP. Tym razem opisuje bardziej zaawansowane funkcje, które ułatwiają pracę z tablicami.

 

array_map() – wykonuje funkcje podaną w pierwszym argumencie na każdym elemencie tablicy i zwraca nową tablicę

 
function multiplyx2($element)
{
return $element * 2;
}

$sampleArray = [1,2,3,4,5];

$result = array_map('multiplyx2', $sampleArray);

print_r($result);
array_reduce() – pozwala zredukować […]

Autor |Sierpień 13th, 2015|PHP, Tworzenie stron internetowych|0 komentarzy

PHP Array – (operacje na tablicach)

Często poczatkujący programiści mają problemy z tablicami w PHP. Poniżej przedstawiam najczęściej potrzebne operacje na tablicach, zarówno proste jak i te bardziej zaawansowane.
Tworzenie tablicy w php
$arrayA = []; //pusta tablica
$arrayB = array(); //stara składnia dla pustej tablicy
$arrayC = ['jabłko', 'banan', 'śliwka']; //tablica z elementami
$arrayD = [
'owoc1' => 'jabłko',
'owoc2' => 'banan',
'owoc3' => 'śliwka', //ostatni przecinek […]

Autor |Sierpień 10th, 2015|PHP, Tworzenie stron internetowych|0 komentarzy

PHP Wzorce Projektowe

Niedawno postanowiłem stworzyć bibliotekę na githubie z wzorcami projektowymi w PHP. Sukcesywnie dodaje tam nowe wzorce wraz z testami, które w momencie pisania tego posta stanowią 91% pokrycia kodu. Jeśli chcesz zostać dobrym programistą i pisać kod, który jest zdatny do ponownego użycia zamknięty na modyfikację, ale łatwy do rozszerzenia pownieneś zacząć interesować się wzorcami […]

Dlaczego przekonałem się do Symfony2

Podczas swojej kariery programistycznej pracowałem z wieloma róznymi frameworkami w PHP od autorskich po zenda, phalcona, kohane. Obecnie pracuję przy projekcie prowadzonym na Symfony2. Długo nie mogłem się przekonać bo wydawało mi się, że Symfony2 to ogromny framework i będę musiał spędzić dużo czasu na poznanie go. Mając doświadczenia z czytania dokumentacji innych frameworków […]

Dlaczego warto używać Composera

Dlaczego warto używać Composera?

Composer jest to narzędzie do zarządzania zależnościami w projekcie. Dzięki niemu możemy w prosty sposób dokładać biblioteki do projektu w określonej wersji i je łatwo aktualizować. Composer domyślnie instaluje biblioteki w katalogu vendor. Aby zacząć korzystać z composera należy go pobrać ze strony https://getcomposer.org/download/

Mając paczkę z composerem możemy go uruchomic poleceniem php […]

Autor |Listopad 22nd, 2014|JavaScript, PHP, Programowanie obiektowe|0 komentarzy

MongoDb i Mandago ODM w PHP

Ostatnio interesowałem się dość mocno optymalizacją prędkości pracy witryn internetowych. Testowałem rożne bazy NoSQL, które zamiast przechowywać wpisy w formacie SQL czyli tabele rekordy itp. używają dokumentów. Znaczącą przewagą takich baz jest fakt iż struktura bazy jest bardzo elastyczna. Nie mamy jednak dostępu do wielu przydatnych funkcji SQL takich jak transakcje, relacje itp. Zamiast […]

Autor |Listopad 21st, 2014|PHP, Tworzenie stron internetowych|0 komentarzy

Polimorfizm na przykładzie szyfrowania(Cezar, AES) w PHP

W poprzednim wpisie pisałem o potędze polimorfizmu w programowaniu obiektowym. W tym postaram się podać bardziej przydatny przykład z życia na podstawie szyfrowania tekstu.

Do stworzenia mechanizmu potrzebuje interfejsu Icrypt, który zawiera przydatne metody dla każdego algorytmu szyfrowania np zaszyfruj, odszyfruj itp.
interface ICrypt
{
public function encrypt($plainText);
public function decrypt();
[…]

Autor |Lipiec 3rd, 2014|Algorytmy, PHP, Programowanie obiektowe|0 komentarzy

Polimorfizm i programowanie obiektowe

Wielu z Was zapewne zastanawia się dlaczego programowanie obiektowe jest lepsze. Otóż dzięki OOP(object oriented programming) jesteśmy w stanie w bardziej ludzki sposób modelować świat programistyczny. W poniższym przykładzie postaram się przedstawić mechanizm polimorfizmu i korzyści, które daje nam programowanie obiektowe.

Dla celów wpisu utworzę sobie interfejs IVehicle, który będzie opisywał pojazd, klasę abstrakcyjną samochód, […]

Autor |Lipiec 1st, 2014|PHP, Programowanie obiektowe|2 komentarze

Jak zacząć tworzenie stron internetowych 2/2

W poprzednim artykule pisałem o tworzeniu stron internetowych od strony frontendu, czyli tego co widzi użytkownik. W tym skupię się na stronie backendowej, czyli na tym co dzieje się po stronie serwera www.
Komunikacja przeglądarka-serwer
Na początku musisz uświadomić sobie jak to się dzieje, że użytkownik po wpisaniu adresu otrzymuję stronę. Wszystko odbywa się za pomocą […]

Autor |Luty 20th, 2014|PHP, Tworzenie stron internetowych|0 komentarzy

Wzorzec Fabryka(Factory) w PHP

Fabryka jest bardzo popularnym kreacyjnym wzorcem projektowania aplikacji. W tym wzorcu klasa odpowiada, za tworzenie obiektu, który chcesz użyć. Wyobraźmy sobie to na przykładzie fabryki samochodów. Jesteśmy sprzedawcą i składamy zamówienie na Mercedesa klasy C i taka fabryka nam wyprodukuje taki samochód.

Prześledźmy poniższy kod obrazujący powyżej opisane przeze mnie zdarzenie.
<?php

interface […]

Autor |Grudzień 19th, 2013|PHP, Tworzenie stron internetowych, Wzorce projektowe|0 komentarzy

Wzorzec Singleton w PHP

Wzorzec singleton-a przez wiele osób uważany jest jako antywzorzec ponieważ bardzo często jest nadużywany i niektórym osobom zastępuje użycie zmiennych globalnych. Jednakże są sytuacje, w których warto użyć singletona. Na przykład gdy chcemy pobrać połączenie z bazą danych w ciele funkcji, a nie chcemy dodawać kolejnego argumentu do funkcji.

Przykład singletona dla bazy danych:
<?php

class Database
{
private static $instance;

public static function getInstance()
{
if(self::$instance == null) self::$instance = new Database();

return self::$instance;
}

private function __construct Database(){
//polacz z bazą tutaj

}

}
Pierwszą rzeczą która powinna się rzucić w oczy jest prywatny konstruktor. W programowaniu prywatny konstruktor może być użyty tylko wewnątrz klasy, czyli tworzymy obiekt klasy w niej samej. Następnie zwróć uwagę na obiekt $instance oraz na metodę getInstance();

Obiekt $instance służy nam do przechowywania instancji klasy, natomiast metoda getInstance() w przypadku gdy nie ma instancji to tworzy ją, a jeżeli jest to ją zwraca. Słowo static gwarantuje nam to, że w czasie trwania programu/aplikacji będziemy mieli utworzoną wyłącznie jedną instancję klasy Database.

Przykład użycia: […]

Autor |Grudzień 13th, 2013|PHP, Tworzenie stron internetowych, Wzorce projektowe|0 komentarzy