About Robert Podwika

Programista, pasjonat z ponad 11 letnim doświadczeniem. Programuję w PHP, Java, C#, C++. Obecnie pracuję przy projektach w PHP na framework Symfony 4 oraz ReactJS

Witaj GraphQL, żegnaj REST API czyli o pisaniu nowoczesnego API

Zapewne nieraz spotkałeś się z potrzebą stworzenia lub obsłużenia API. Często te API nie działały tak jak powinny, były nieintuicyjne, i żeby pobrać określone dane musiałeś wykonać kilka zapytań. Często nawet pisząc API zastanawiasz się co zwrócić, jakie endpoint-y stworzyć, jaki kod HTTP zwrócić, co zwrócić w body, co w nagłówkach. Istnieje, wiele poradników, […]

SOLID – Single responsiblity principle

Jeśli tutaj trafiłeś pewnie zastanawiałeś się jak zostać lepszym programistą. Jeśli słyszałeś kiedyś o SOLID to prawdopodobnie czytałeś książkę Clean Code – Martin Robert C. Jeśli tego jeszcze nie zrobiłeś, to polecam Ci przeczytanie jej. Czym jest SOLID?

SOLID to zbiór reguł, które zostały zdefiniowane przez programistów. Reguły te mają na celu ułatwienie pisania kodu, który […]

Jak zostać programistą?

Trafiając na ten wpis pewnie zastanawiasz się jak zostać programistą. Z uwagi na rosnące zapotrzebowanie na programistów, niedobór kadry IT i kuszące zarobki istnieje duże zapotrzebowanie na programistów. Jednakże, jeśli wydaje Ci się, że jest to proste to się mylisz. Z mojego doświadczenia zawodowego zaobserwowałem dwie grupy osób, które są programistami.

Pierwsi z nich to […]

Autor |18 lipca, 2016|O programowaniu|2 komentarze

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 |27 kwietnia, 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 |23 września, 2015|PHP, Tworzenie stron internetowych|0 komentarzy

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

PHP 7 nadchodzi w tym roku, a wraz z tą wersją masa zmian i nowych funkcjonalności. Wprowadzone zostały nowości takie jak scalary type hinting, explicit return value type, spaceship operator, combined comparsion operatori wiele innych. W tym wpisie postaram się przedstawić najważniejsze zmiany i nowości w php7.
Dlaczego PHP 7, a nie PHP 6
Obecnie najnowszą […]

Autor |28 sierpnia, 2015|Optymalizacja strony pod wyszukiwarki - SEO, PHP|5 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 |13 sierpnia, 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 |10 sierpnia, 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 […]

Testy wydajnościowe aplikacji PHP – Apache Benchmark

Z uwagi na brak czasu dawno nic nie pisałem na blogu. Postanowiłem to zmienić i napisać coś o testach wydajnościowych. Każda aplikacja ma określony czas odpowiedzi na zapytania. Każde zapytanie do aplikacji zajmje określony czas serwera. Nakłada się na to czas przesłanie żadania, czas odpowiedzi serwera, czas wykonania aplikacji itp itd.

Aplikacja jeśli jest źle […]

Autor |16 lutego, 2015|PHP|0 komentarzy

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 |22 listopada, 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 |21 listopada, 2014|PHP, Tworzenie stron internetowych|0 komentarzy

Warning: Use of undefined constant XML - assumed 'XML' (this will throw an Error in a future version of PHP) in /wp-content/plugins/wp-syntaxhighlighter/wp-syntaxhighlighter.php on line 1048