Blog (25)
Komentarze (344)
Recenzje (0)

Wybrane elementy większego projektu w PHP

@zigguradWybrane elementy większego projektu w PHP30.05.2015 02:45

Od dłuższego czasu pracuję przy większych projektach niż strona internetowa na jeden wieczór, pomyślałem że osoby które tworzą dopiero pierwsze projekty mogą nie znać elementów które bardzo ułatwiają pracę. Poniżej kilku głównych elementów z których korzystam.

Linux

Kiedyś myślałem że można programować pod Windowsem, już dawno zmieniłem zdanie i nie ma opcji żebym do niego powrócił ;) Windows aktualnie służy tylko do odpalania Wiedźmina 3 :) Oczywiście że się da, tylko po co się męczyć...

Git

System kontroli wersji. Dzięki niemu wprowadzając kolejne zmiany w kodzie zawsze mamy historię i możemy zajrzeć do naszych zmian sprzed tygodnia. Druga zaleta to ułatwienie pracy w zespole gdzie łatwo łączymy zmiany kilka osób. Podobnym narzędziem jest Subversion jednak Git oferuje większą elastyczność dzięki np. także lokalnemu repozytorium.

Gitlab

Jest to strona która ułatwia nam przeglądanie wszystkich zmian z Gita. Można tam łatwo odnaleźć commity, branche, tagi. Przydaje się także podczas Code Review.

PHPStorm

Moim zdaniem najlepsze środowisko programistyczne. Prawdą jest że trochę kosztuje ale na prawdę warto. Dawniej używałem programu PHPDesigner, miałem przygotę z NetBeansem i Eclipsem do różnych języków i projektów ale aktualnie nie zmieniłbym PHPStorma na nic innego.

Siłą PHPStorma jest masa dodatków, poniżej kilka z których korzystam:

  • gitignore - zaznaczenie w IDE plików które nie chcemy aby były synchronizowane w systemie kontroli wersji,
  • composer.json support - dodatek polskiego programisty, wspiera i podpowiada składnie composera o którym za chwilę,
  • Symfony2 Plugin - wsparcie dla frameworka Symfony2 w IDE,
  • Symfony2 - Clickable Views - tak jak powyżej, rozszerzenie ułatwiające pracę z Symfony2,
  • BashSupport - wsparcie dla kolorowania składni skryptów bashowych.

xdebug

Niezastąpione narzędzie podczas tworzenia oprogramowania gdy nie wiemy dlaczego coś nie działa :) Dzięki integracji z IDE jesteśmy w stanie krok po kroku pześledzić wszystkie operacje które dzieją się w kodzie, podejrzeć wartości zmiennych i przeanalizować jak zachowuje się nasz program. Więcej o konfiguracji możecie przeczytać na przykład tutaj :

Composer

Narzędzie które ułatwia nam zarządzanie zależnościami w projekcie i korzystanie z gotowych bibliotek.

W starym projekcie korzystam z TinyMCE. Jakie powoduje to problemy? Wszystkie pliki są w gicie i niepotrzebnie zajmują miejsce. Wrzucanie projektu przez FTPa twa wiecznie przez dużą liczbe plików. Do tego aktualizacja wymaga ściągnięcia nowej paczki i ręczną podmianę plików w projekcie.

Jak to wygląda podczas pracy z composerem? Wchodzimy na packagist, wyszukujemy potrzebną bibliotekę, np: mPDF i do naszego pliku konfiguracyjnego dodajemy odpowiedni wpis:


  "require": {
    "mpdf/mpdf": "6.0.*"
  }

Teraz ściągając projekt i wykonując polecenie composer install automatycznie ściągane są wymagane biblioteki (wraz z własnymi zaleznościami) w wersji którą mamy określoną. Tak samo dzieje się to na serwerze produkcyjnym. Composer posiada własny cache dzięki czemu tylko pierwsze ściąganie paczek trwa trochę dłużej. Możemy dokładnie określić wersję lub zaznaczyć że zawsze interesuje nas najnowsza.

Więcej informacji znajdziecie na oficjalnej stronie.

Symfony2

Jeden z najpopularniejszych frameworków w świecie PHP. Pracuje z nim od ponad roku w kilku projektach. Jego zaletami jest ogromna liczba Bundli (dodatków) oferujących gotowe rozwiązania wymaganych funkcjonalności. W internecie łatwo można odnaleźć rozwiązania problemów na które się natknęliśmy. Więcej na symfony.com

Bower

Narzędzie podobne do composera jednak związane bardziej z bibliotekami dla frontendu np Bootstrapem. Więcej na bower.io

AngularJS

Framework JavaScriptowy od Googla. Wprowadza rozdzielenie kodu na poszczególne warstwy. Jego siłą są dyrektywy które sami możemy tworzyć porządkując cały kod. Niedawno ukazała się wersja 1.4 jeszcze nie stabilna, aktualnie pracujemy na 1.3. Można także zapoznać się z wersją 2.0 która jest w fazie beta i ma mało wspólnego ze starszymi wersjami ponieważ została przepisana od zera :) Więcej na angularjs.org

Makefile

Makefile to plik który ułatwia zarządzanie projektem. Dzięki nimi jesteśmy np w stanie po ściągnięciu całego kodu łatwo uruchomić cały projekt. Np pod poleceniem install może kryć się stworzenie bazy danych, aktualizacja composera, ustawienie wymaganych uprawnień do plików i wiele innych. Inne polecenia np szybko wyczyszczą nam bazę i wrzucą przykładowe dane. Wszystko zależy od projektu.

Jenkins

Należy do świata Continuous Integration (CI). Dzięki temu narzędziu możemy łatwo aktualizować nasz projekt na serwerze na poszczególnych środowiskach (produkcyjny, testowym itp). Np po każdym opublikowanym kodzie nasza wersja devowa aplikacji przebudowuje się i z automatu przeprowadzane są testy. Po odpowiednim skonfigurowaniu możemy jednym przyciskiem zaktualizować nasz projekt na produkcji.

Scrum

Nieodzownym elementem wytwarzania oprogramowania jest jego zarządzanie. Scrum ma na celu szybkie uświadomienie problemów w projekcie, czy to w doborze zespole czy technologi. Więcej na ten temat napisałem tutaj.

Podsumowanie

Temat potraktowałem bardzo ogólnikowo. Jeśli kogoś z Was jakiś element zainteresował dajcie znać, mogę go rozwinąć w osobnym wpisie w miarę moich możliwości.

Wiem że do takiej listy można dodawać wiele narzędzi w zależności od projektu, technologii, wymagań klienta itp. Ale może sami macie propozycję co tutaj jeszcze powinno się znaleźć? Mogę uaktualnić wpis ;)

Pozdro!

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.