Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM    Subskrybuj kanał ATOM dla tagu php Kanał ATOM (tag: php)

Autor wpisu: Kamil Adryjanek, dodany: 06.07.2017 06:20, tagi: php

W ramach krótkiego podsumowania ostatnich spotkań z cyklu „Women in Technology” postanowiłem zebrać w jednym miejscu większość wskazówek / wytycznych dotyczących rozpoczęcia nauki PHP, a przy okazji zaproponować pomoc z mojej strony. Jak argumentowałem w jednym z poprzednich wpisów, mimo ogromnego zamieszania obecnie wokółJavaScript, PHP jest językiem, który:

  • jest stosunkowo prosty dla początkujących i osób, które nigdy nie miały styczności z programowaniem – dobrze wprowadza w świat programowania aplikacji internetowych;
  • jego przyszłość jest bardzo stabilna (PHP w wersji 7.X wprowadza wiele udogodnień i ciekawych zmian);
  • na rynku jest duże zapotrzebowanie na developerów PHPduża ilość ofert pracy, a stawki coraz bardziej atrakcyjne.

Podstawy protokołu HTTP

Moim zdaniem naukę programowania aplikacji internetowych powinno rozpocząć się od poznania podstaw protokoołu HTTP, jako że to na tym protokole oparta jest komunikacja przeglądarka (klient) – nasza aplikacja (serwer). Niestety często spotykam się z sytuacją, gdzie Developerzey po kilku miesiącach pracy w dalszym ciągu nie są świadomi tego co tak naprawdę dzieje się w momencie, kiedy przeglądarka wysyła żądanie i odbiera odpowiedź z serwera.

Warto na tym etapie wiedzieć, że:

  • protokół HTTP jest protokołem bezstanowym – każde kolejne żądanie nie wie nic o żądaniach, które je poprzedzały;
  • komunikacja odbywa się przez odpowiednio przygotowane komunikaty tekstowe w których wyróżniamy 3 sekcje:
    • 1 sekcja to status odpowiedzi (ang. initial response line);
    • w 2 sekcji znajdują się nagłówki (ang. headers);
    • a trzecia zawiera treść odpowiedzi (ang. content body) i jest to część, którą widzimy bezpośrednio w przeglądarce najczęściej w postaci kodu HTML;
  • wpisując adres w przeglądarce wysyłamy żądanie HTTP (ang. Request) – komunikat tekstowy generowany przez przeglądarkę. Wraz z żądaniem przeglądarka wysyła dodatkowe informacje w postaci nagłówków, np: infomrację o przeglądarce z której korzystamy;
  • serwer generuje odpowiedż (ang. Response): wykonuje kod PHP, łączy się z bazą danych lub zewnętrznymi usługami, jeśli jest to niezbędne do wygenerowania odpowiedzi, np w postaci kodu HTML. Na tej podsatwie przeglądarka renderuje / wyświetla nam odpowiednią stronę;

Dobra książka

Tutaj spotkać się można z bardzo różnymi opiniami, osobiście uważam, że dobra książka na początku nauki to podstawa. Pozwala lepiej zrozumieć poszczególne zagadnienia i usystematyzować wiedzę. Tutriale dostępne w sieci często skupiają się na realizacji konkretnego zadania i pokazują najlepszą / najkrótszą drogą do jego realizacji. Niestety większość z nich jest już dość przestarzała i nieaktualna. Książka w tej sytuacji przekaże wam odpowiednią teorię, wprowadzi w problem i pomoże go zrozumieć. Osobiście polecam ksiązki angielskojęzyczne – język angielski jest w programowaniu niezbędny, większość dokumentacji jest w tym języku i im szybciej zaczniesz się nim posługiwać, tym lepiej. Jeśli jednak nie czujesz się na siłach i wolicz książki w języku Polskim to bez problemu można znależć aktualne i ciekawe pozycje (niestety najnowsze pozycję nie będą dostępne ze względu na czas potrzebny na ich przetłumaczenie). Kilka słów na temat książek, które polecam napisałem tutaj. Dla kompletnie początkujących polecam: Head First PHP & MySQL – która wprowadza w PHP w bardzo przystępny sposób.

Środowisko + IDE

By móc pisać proste skrypty w PHP do niedawna potrzebny był cały stack: LAMP, WAMP, XAMP lub tym podobny zestaw. W tym momencie na początku nauki programowania, nie ma potrzeby nic instalować – możecie wykorzystać gotowe rozwiązania online, które odrazu pozwolą Wam skupić się na zabawie z kodem i na nauce programowania. Osobiście często korzystam z c9.io, które posiada bardzo intuicyjny edytor, dostęp do shella i możliwość podglądu projektu w dedykowanej domenie.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: zleek, dodany: 21.04.2017 10:31, tagi: javascript, php

As we tak a look on websites, we can easily see that most of them have contact form built in. But having this contact form could switch to huge amount of spam messages sent by using that form. Fortunatelly we

Autor wpisu: Piotr Śliwa, dodany: 29.03.2017 19:19, tagi: php

Ostatnio przygotowywałem pull requesta dla biblioteki typesafe/config - prosty ficzer. Okazało się, że po moich zmianach build na windowsach przestał przechodzić. Po czasochłonnej inwestygacji, debugowaniu i namierzaniu problemu, okazało się, że winowajcą jest tytułowy TimeZone.getDefault(). Gdy to odkryłem, uświadomiłem sobie dlaczego tak bardzo doceniłem niemodyfikowalne obiekty, brak side effectów i czyste funkcje.

W czym był problem? Pliki HOCON (format plików konfiguracyjnych wspierany przez tą bibliotekę) mogą includować inne pliki konfiguracyjne. Do odczytywania takich plików używana jest klasa URLConnection. W implementacji tej biblioteki wywoływana jest funkcja URLConnection.getContentType() aby sprawdzić jakiego typu plik jest wczytywany. Metoda ta pobiera nagłówki połączenia, w którym jest data ostatniej modyfikacji. Jeśli jest data, to trzeba ją sformatować. Klasa SimpleDateFormat używa domyślnej strefy czasowej, chyba że powiemy jej inaczej. TimeZone.getDefault(), wbrew sugestywnej nazwie i zasadzie najmniejszego zaskoczenia, ma side effect, a jak! Jak to, dlaczego? Bo może! Wywołuje bowiem System.setProperty("user.timezone", <strefa czasowa>) jeśli takie property nie jest jeszcze ustawione. Pech w tym, że typesafe/config wczytuje java propertisy robiąc w testach asercje na tychże wartościach. W zależności czy TimeZone.getDefault() było wcześniej wywołane i czy user.timezone było jawnie ustawione, testy mogły failować lub też nie (co też miało miejsce).

Autor wpisu: zleek, dodany: 09.03.2017 15:13, tagi: php

Sometimes we have to apply dynamic data (fetched from database) to form fields. Good example is to deliver an option to choose a preferred language during user registration. Let say we have two available languages on the begining, but we

Autor wpisu: Kamil Adryjanek, dodany: 09.03.2017 08:08, tagi: php, symfony

W lutym świtało dzienne ujrzała pierwsza oficjalna wersja aplikacji demo dla frameworka Symfony. Aplikacja demo istniała już wcześniej i była bardzo ciekawym żródłem z przykładami wykorzystania podstawowych możliwości Symfony – przede wszystkim dla osób nie znających tego frameworka – sam niejednokrotnie polecałem ją na szkoleniach dla początkujących z Symfony. W tym momencie demo ewoluowało, zostało dostosowane do nowości, które pojawiły się zarówno w ostatnich wersjach frameworkach oraz PHP i jest aktywnie rozwijane.

Aby wygenerować aplikację „demo” wystarczy z wiersza poleceń wprowadzić polecenie:

# using Symfony installer
symfony demo

wykorzystując do tego instalator Symfony, który możecie znaleźć tutaj.

Następnie należy załadować dane testowe by móc w pełni korzystać z aplikacji demo. I to wszystko – nie ma potrzeby wywyoływania dedykowanych komend dla danych testowych: zostały odpowiednio przygotowane podczas instalacji projektu demo.

Aplikacja posiada wszystkie podstawowe funkcjonalności jakie możemy znaleźć na blogu wraz z kodem zródłowym i obszernymi komentarzami:

  • możliwości przeglądania artyułów wraz ze stronicowaniem;
  • możliwość dodawania, edycji i usuwania artykułów z poziomu panelu administratora – dane dostępowe dostępne są po kliknięciu w link: „Przeglądaj panel administracyjny”;
  • możliwość dodawania komentarzy do artykułów – wymagane odpowiednie uprawnienia użytkownika;
  • formularz logowania i poziomy uprawnień użytkowników – dostęp do panelu admina wymaga wyższych uprawnień niż dostęp do częsci publicznej;
  • wielojęzyczność aplikacji;
  • RSS feed;

Dodatkowo aplikacja demo pokazuje w jaki sposób korzystać z zewnętrznych bundli (PagerFanta dla stronicowania), w jaki sposób definiować własne typy pól formularza (DatePicker, tagowanie artykułów), jak zarządzać uprawnieniami użytkowników czy też jak prawidłowo definiować realcji pomiędzy encjami w Doctrine2. Kod aplikacji demo znajduje się na GitHubie, gdzie można wysyłać propozycje nowych / brakujących funkcjonalności czy też zgłaszać błędy.

Artykuł Symfony: aplikacja demo pochodzi z serwisu Notatki Programisty.

Autor wpisu: Piotr Pasich, dodany: 22.02.2017 07:38, tagi: php

phpukPhpUK is a conference I have wanted to attend for a long long time. I had watched all the videos on youtube really carefully for the last few years and always got this weird feeling this might be one of the best and most important conferences in Europe. So, here I am. 3 totally different […]

Autor wpisu: Michał Janicki, dodany: 19.02.2017 22:45, tagi: php

W tym poście będę kontynuował rozpoczętą w ostatnim wpisie prezentację narzędzi do analizy statycznej kodu PHP.

Dzisiaj zajmę się tylko jednym narzędziem – chodzi mianowicie o PHP_CodeSniffer.

Tak naprawdę jest to zestaw dwóch skryptów. Pierwszy z nich to phpcs – oznacza on fragmenty kodu, które nie są zgodne z ustawionym standardem kodowania zaś drugi skrypt nazywa się phpcbf koryguje te nieścisłości. PHP_CodeSniffer można zainstalować zarówno za pomocą Pear jak i Composera. Sam projekt można znaleźć na GitHubie pod tym adresem.

phpcs

Przyszedł czas na krótką prezentację możliwości PHP_CodeSniffer. W tym celu stworzyłem plik TestSa.php zawierający klasę o tej samej nazwie:

<?php
class TestSa extends AnotherClass{
    function __construct($argument){
        if (true) {
            return true;
        }
    return false;
    }
}

Ja zainstalowałem PHP_CodeSniffera lokalnie w projekcie więc w CLI wpisuję następujące polecenie:

php vendor/bin/phpcs ./TestSa.php

Zamiast w konsoli wpisywać osobno polecenie dla każdego pliku (a w projekcie może być  ich naprawdę dużo) można zamiast adresu pliku podać adres katalogu, w którym znajduje się projekt.  Efekt działania tego polecenia jest podobny do tego na obrazku poniżej:

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.