 i to jest jej kolor przeszkodny, ale mogę się wyjąć. Nie, przepraszam. Jestem umyśliwym. Jakbym nie mańcowacza, to ja się powiem projektem zespołowy. Piękna. Okej. W ogólnie pracę nad projektami możemy podzielić na dwa typy. Albo projekty rozwiązujemy sami. Czyli mamy pełną kontrolę nad projekty. Na tym, jaką będzie wyglądał strukturą, jakie wtyczki używamy, technologię. Nasze błędy to nasze błędy. Ale największy problem jest z nich wtedy, kiedy sami sobie z nimi nie radzimy. I albo musimy kogoś ściągnąć do tych błędów. Albo musimy sami szukać. Jak kogoś ściągamy, to potrzebujemy czas na to. Przeciwieczą są projekty zespołowe, gdzie o ile mamy personali nieco mniejszą kontrolę nad tym, co my robimy. Natomiast zyskujemy to, że mamy więcej osób. Możemy zrobić burzę mózgów, możemy pomyśleć o rozwiązaniach, co możemy użyć. Nie mamy wpływu na to, że nasz kolega zrobi jakiegoś babola. Ale przynajmniej mamy lepszy support, jeżeli chodzi o błędy. Niestety bardzo często sprowadza się do tego, że robiąc projektę samemu, błędy naprawiamy my. A jeżeli robimy projekt zespołowo, to nasze błędy rozwiązuje ktoś inny. Niestety najczęściej tak, że jedna osoba pokazuje, a resztą patrzy. Jakie mamy takie typowe problemy w pracy w zespole? Możemy mieć różne wersje PHP, rzecz bardzo czywista. Mogą się przez to pojawić błędy. Ktoś potem musi tę wersję skorygować do tej, na której pracujemy wszyscy. W różnej wersji WordPressa zdarza się. Pomyśla sobie Gutenberg z początku sprzed roku, bo projekt może patrnąć bardzo długo, ktoś ma Gutenberg sprzed roku, a ktoś ma aktualnego. Taka różnica, że coś się na pewno wywali. Możemy mieć jakiegoś pluginu normalna sytuacja. Ktoś robi coś innego, dogrywa plugin, my go z automatu najczęściej od razu nie mamy. Importujemy najnowszą wersję z gita i mamy od razu błąd. Jak nie mamy pluginu, to możemy wejść w różne wersje. To samo co przy WordPressie. Wczorajsza wersja pluginu, my mamy aktualniejszą, u nas będzie okej. Ale w drugą stronę, jak ktoś ma starszą wersję, ani wyżej poszła aktualizacja, wywali się najczęściej. I brak spójnej bazy danych. Od razu powiem o co chodzi, żeby to było jasne. Spójna bazy danych. Mam na myśli nie to, że wszyscy prosimy na jednej bazie danych, tylko my tą bazę z jednego źródła cierpimy. Że nie robimy tak, że każdy rozwija swoją bazę, tylko zawsze w pewnym momencie, to my zaciągamy bazę ze stagingu po to, bo tam każdy ci w tą swoją pracę włożył. Po to możemy ujednoliczyć środowiska nasze deweloperskie. Koszyści po prostu mamy dzięki temu kilka, między innymi oczywiście, mniejsza ilość błędów. I jeżeli mamy taki sam zestaw konfiguracyjny środowiska lokalnego, te same wersje PHP, te same zmienne PHP, oczywiście wersje WordPressa, te same pluginy, wersje pluginów i tą samą bazę danych, to się naglokazuje, że wszyscy mamy te same problemy. I ciężko taką sytuację dziwne u mnie działa. A z tym się bardzo często spotykamy. I jakie są takie zalety tego, że my staramy się trzymać wszystko pod kontrolą, na jakim dokładnie środowisku pracujemy? Miałem taki przypadek, długi projekt, trochę się ciągnął, wygrywałem jakiś blog na staging, to dałem go tam, gdzie trzeba, przy okazji, jakieś tam poprawki zrobiłem, wkazał się, że WordPressa se aktualizowałem pluginy i po jakiejś chwili stwierdziłem, fajnie, że dodałem blog, nalewali mi errorami. Pierwsze co, zaciągam do siebie, oczywiście dziwne u mnie działa, na stagingu nie działa. No to co? Dla pewności wszystko przez FTP, cały szablon zaciągam, dalej punkt, baza, dalej punkt. Poszło to do czego, że to przez to, że poszła aktualizacja pluginów, ona po prostu zrobiła problem. Dlatego na pluginy uważasz, kiedy aktualizujemy, najczęściej jak aktualizujemy to tylko je i sprawdzamy, czy nic innego nie posypało. A o tym jak to najlepiej sprawdzić, dowiemy się trochę później. Więc warto się zainteresować tym, co trzymamy na gicie, żeby cały zespół korzystał z tego samego. I popularnym rozwiązaniem jest, trzymamy na cały szablon. Jakie mamy tego w sumie korzyści? Tego, że nie trzymamy za dużo zbytnych rzeczy. Ale nie trzymając na przykład w informacji o pluginach, pojawia się ten problem, że ktoś zainstalował plugin, a my go nagle nie mamy i się dowiemy dopiero po błędzie, jak będziemy szukali, co u nas zawiodło. Ale możemy pójść trochę bardziej obszernie. Można cały środowisko trzymać. Ale wtedy trzymamy na przykład pluginy. Czy to się okłaca trzymać na githa bioplaginy? No niekoniecznie. Można też oczywiście wrzucić WordPressa, ale nie wiadomo, o co się wtedy stanie. Kolejną z takich rzeczy próba natycznych są media. O ile jest ich mało, to nie jest problem, ale media wypadałoby, żeby też dziś były trzymane, a koniecznie jest sens, żebyśmy zaciągali 12 GB zdjęć, tylko po to, żebyśmy mieli wszystko u siebie. A potem i tak się okaże, że ktoś coś dodanowego i znowu musimy pobierać te same kolejne zdjęcia, bo dowiedzimy się, że ktoś coś dodał, a nam się wywala u samej góry strony pusta przestrzeń. Dlatego ja osobiście zdązałem fajny sposób, żeby zwiększyć tego niezawodność i ja stosuję CDN-a. Chłopak dał użyć pluginu, gdzie wpiszemy adres stagingu, nasz adres. Ja zrobiłem prosty code.pk, gdzie wpisuje domenę stagingową, swoją domenę i on mi wszystkie zdjęcia, adres URL do zdjęć podmienia z mojego stagingu, czyli z mojego lokala na staginga. Dzięki temu wszyscy w zespole możemy mieć wspólne media, które są hostowane tylko na stagingu, natomiast my tych zdjęć lokalnie u siebie nie mamy, więc jak nie potrzebujemy, po wszystko możemy pobrać ze stagingu. Dodatkowo środowiska stają się o wiele lżejszym. Zazwyczaj to nie jest taki problem, bo kupienia po prostu większego dysku nie jest takim dużym kosztem, ale ja jeszcze niedawno miałem problem, że miałem chyba 124 GB dysk. Tam był Windows, tam miałem jeszcze Linuxa. Wrzuciłem kilka środowisk i mniej więcej Bomba. Trzeci staging z dużym projektem nie ma już miejsca, coś trzeba uszuwać, coś trzeba kosować. Dlatego wcale nie musimy tych mediów trzymać lokalnie u siebie. Wszystkie możemy pobierać z stagingu. Więc rozwiązania, które ja stosuję od jakiegoś dłuższego czasu, to jest Bedrock. Czyjmy z Bedrock, to jest taka nakładka na WordPressa. On z zewnątrz sprawia, że WordPress jest taki sam, że wewnątrz ten WordPress jest trochę bardziej zrobiony pod takie nasze potrzeby deweloperskie. Pierwszą rzeczą, która my się widzimy całą w oczy, to jest struktura plików, która jest zupełnie inna, ale bardzo korzystna. Możemy spojrzeć tak, pierwsza rzecz od góry. Composer JSON. Mim zarządzamy wszystkimi naszymi zależnościami. WordPressem, pluginami, paczkami do Bedrocka. Osobny mam plik konfiguracyjny cały folder, w którym możemy skonfigurować nasze środowiska i to, co mam w WP-konfigur, koleczny jest vendor i są paczki vendorowe, i osobny folder, którym jest web. I w webie będziemy w zasadzie mieli bardziej wszystko to, co już nas interesuje, a on się nam będzie dzielił głównie na dwa kategorie. Na samym dole WP, gdzie mamy osobno czystego WordPressa, z co bez problemu możemy go do grywać właśnie kompuzerem i folder app, który zawiera wszystko to, co nam jest potrzebny do kodowania. Plaginy, które możemy kompuzerem zainstalować, szablony, które też możemy kompuzerem zainstalować, ale te wszystkie wersje trzymamy w kompuzerze i możemy zainstalować za pomocą linii koment. Największy plus jest tego, że każdy będzie miał tą samą wersję pluginu, jeżeli je tak zdefiniujemy w pliku zewnątrzowe wyglądają tak, a powiedziałem, identycznie, także w środku to dokładnie jest to sama. Plusem tego, jak powiedziałem, separacja WordPressa. Co to daje? Nam daje to, że w zasadzie WordPressa raczej już nikt nie tknie, bo nawet tego ktoś tknie, przy kolejnej aktualizacji wszystko mu się odpisze. Dodatkowo WordPress jest trochę bardziej zabezpieczony, bo skoro jest w katalogu, już się musimy zalogować nasza strona, katalog WP i dopiero WP Admin, więc gdzieś tam dodatkowe trochę bezpieczeństwo mamy, ale oczywiście największe korzyść z tego, że z osobnym katalogu i WordPressa możemy trzymać informacje o wersji WordPressa właśnie w kompuzerze. Właśnie wracamy do kompuzera. W nim trzymamy wszystkie informacje o tym, żebyśmy mieli tych jak najmniej błędów, że czegoś tam brakuje. Ktoś mamy niższą wersję. Dalej. Więc wersje tam trzymane dają na to niezawodność, że każdy ma dokładnie to samo. Jak taki blik wygląda? No samej górze. Mamy zanktalerowane paczki, z których korzystamy. Kilka mamy rzeczy od Rootsa. Roots jest firmą, która stworzyła bedroka. I poniżej mamy szablony. Każdy szablon ma swoją wersję. Możemy ustawić nasz typną wersję, żeby oczywiście w górę się najnowsza wersja pobierała. Tak czy inaczej, przy dobrym zarządzaniu każdy będzie miał dokładnie to samo. I co słyszę do zarządzania tymi pluginami skocie, w ogóle bierzemy. Mamy osobny serwis, w którym mamy pluginy. Wpisujemy, co chcemy, szukamy. Ale na sam początek możemy się nieźle zdziwić. Szukam tutaj Joosta. Ale ja tutaj Joostoseo nie mam. To był pierwszy dla mnie bariera, która miałem, która mnie zniechęciła, żeby trzymać obdacze ciągu w kompozerze. Ale jak pokombinowałem, to znalazłem. O co chodzi? Joostseo nie ma slaga. Joostseo tylko ma WordPress. Tak samo w dolnym prawym rogu możemy zobaczyć jego wersję. 21.2. Gdy ten slag wpisujemy, to dokładnie mamy tą wtyczkę, którą potrzebujemy. I w ten sposób szukamy wszystkich qui, które są nam potrzebne. Wrzucamy do tego kompozera i już się praktycznie nie możemy w ogóle nie możemy się tym przejmować, że coś będzie nie tak. Jak jest nie tak, osoba pobiera najnowsze wersję z gita, aktualizuje kompozera i ma dokładnie to samo, co mają wszyscy. Dodatkową rzeczą jest to, że jest rozrusienie na środowiska. Możemy mieć wersję tam ustawić wersję produkcyjną, to znaczy taką, którą może iść na serwer klienta i wersję doweloperską, która ma dokładnie to, co potrzebujemy, czyli np. pokazują nam wszystkie błędy. Możemy mieć dodatkowo ustawienia w WP-konfigu i to wszystko możemy przyłączać za pomocą jednej informacji w pliku. A wszystko jest trzymane w plikach ENF. Więc deklarujemy w pliku ENF proste deklaracje, co i jak w wartości WP-ENF mamy development, możemy zmienić na production i wtedy mamy wersję produkcyjną. Prosty przeżysty plik konfiguracyjny. Natomiast całą resztę rzeczy trzymamy w innym miejscu w konfiguracyjnych plikach i tym już się nie przejmujemy. Zdeklarujemy raz, to potem dla całego projektu to jest, natomiast w tym miejscu zakładamy te informacje, które są nam potrzebne. Ciekawostką jest linika zakomentowana database URL, która nam umożliwi bezpośrednie połączenie się z bazą danych zdalną. Proszę serwery już to mają. Na przykład Cyberforce, wiem, że już ma, bo korzystałem. Plus jest tego taki, że możemy nie ściągając bazy przy drobnych fiksach mając tylko pliki połączyć się z bazą zdalną i na nie powiedzmy wprowadzić drobną poprawkę lub tylko sprawdzić, czy wszystko jest wszystko się zgadza. Tylko fajne jest to czasami plusem, że tą zdalną bazę danych możemy obsłużyć w dość łatwy sposób. Czasami nie ma potrzeby ściągania tej bazy danych, a wystarczy, że tylko się podłączymy tym linkiem i sprawdzimy, czy rzeczywiście działa tak działać powinno. I mała jeszcze fajna ciekawa rzecz. Jest trochę lepsze szyfrowanie haseł, więc jak ktoś kiedyś próbował dostać się do WordPressa podmieniając hasło w bazie danych szyfrując md5, to już się może dziwić, już to tak nie przejdzie, więc już dla klienta tak łatwą przykład dostępów nie mamy, dzięki temu trochę też inne możliwości. Natomiast powinienem wszystko o pluginach wszystko o tym, żeby WordPress działa dobrze, ale zostanę jeszcze władzy z niebuenty prachapowe, serwerowe, które również mogą sprawiać problemy, które mogą sprawiać, że u jednego działa, u drugiego nie działa. Kosztam na wielu różnych środowiskach od jakiegoś czasu skorzystałem z Tokera, jest on modny, fajny, uważam, że i w dalszym ciągu jest bardzo użyteczny. Paczkę, o której będę mówił, wrzuca również do siebie na linkedina, więc będziecie mogli ją spróbować, sprawdzić, przetestować, poczytać, naprawdę jest coś wartego do użycia, a dlaczego, to właśnie opowiem Wam za chwilę. Definiujemy konfig naszego środowiska, czyli to, jakie mamy w wersji pch, jakie mamy zmienne środowiskowe wielkość pliku, upload, jaka może być maksymalna. I nie ma tych sytuacji, że no nie tych zdjęć nie mogę ich wysłać, bo mam duże zdjęcia, a kolega wysyła, bo jest na całkowicie czym innym. Wszystko definiujemy z góry, wszystko będzie działało. Możemy obsłużyć własne domeny. To jest jedna z najbardziej, rzecz, która mnie najbardziej rytuje, to jest taka, dostaję jakiś link do sprawdzenia. I początek jest localhost 8080, potem jakiś mamy katalog, i dopiero to, co nas interesuje. My możemy te domeny zdefiniować w zasadzie od razu nasze domeny lokalne. W piku n, mało tego. Na początku mamy plik w zasadzie n w egzample, gdzie jest jakby szablon. Możemy już rzucić tą domenę testową, naszą lokalną. I każdy kto pobiera, będzie robić środowisko, to w zasadzie już ma z góry zdefiniowaną domenę, na której działamy. Już chodzi do sytuacji, że dostajemy długie rl, który nas prawie nie interesuje, a dostajemy gotowy adres, który po wrzucaniu do siebie przyjmujemy dokładnie to samo, co ma inna osoba. O ile oczywiście mamy te same pliki i bazę danych. Małe tam plik, który nam wygeneruje SSL lokalnie, więc znika problem z HTTPS a wraz z tym z niektórymi pakietami, które wymagają połączenia syfrowanego PSEE like, który jest naprawdę niezwykle przydatny podczas prac deweloperskich. Mailhawk to jest takie fajna klient do poczty, który nam przechwytuje wiadomości, które wychodzą z tej strony. I nie musimy w zasadzie w kontakt formie podkładać naszego maila na czas testów, bo jeżeli wszystko robimy lokalnie, tutaj Mailhawk przechwytuje te maile, mamy je dostępne w takie wirtualnej poczcie na pod danym adresem URL u nas lokalnie i nic nie wychodzi do klienta. Wszystko trafia do nas i my możemy dokładnie zobaczyć, co wychodzi gdzie i do kogo i nawet jeżeli są jakieś zdarzenia, które wywołają maila to te maile i taksy zatrzymają na tym kliencie. Pijaj, pijaj, pijaj admin żeby pogrzebać i dowiedzieć się czy rzeczywiście mamy wszyscy to sama, bo dlaczego coś tam działa, dlaczego nam coś nie działa, bo czegoś czasem największe tego plusem jest to, jak tak jest środowiska ujednolicone możemy stawać w zasadzie większość możemy robić zlini koment pierwsza rzecz bierzemy z gita możemy powrać dosłownie wszystko bo całe środowisko mamy na gicie a wszystko po prostu doinstalowujemy do tego gita więc pierwsze jest doinstalujemy tego środowiska więc pierwsze co git, potem tylko naguracja naszych zmiennych serwerowych odpalamy do kera instalujemy za pomocą kompozera zależności czyli plaginy, szablon i zależności bedroka następnie w szablonie też musimy coś tam zainstalować zazwyczaj żeby nam działało ile mamy własne szablony ustawiamy CDN-a, czyli to żeby nasze zdjęcia pobierało ze stagingu a nie szukały ich u nas lokalnie więc pierwsza rzecz importujemy bazę danych zostawiamy tylko przy importie bazę danych bywa tak, że coś tam bywa, że musimy więcej kliknąć natomiast całą resztę możemy wykonać tylko samą z linii koment a jeżeli bazę danych też wrzucimy w odpowiednią miejsce nawet niekodzie się musimy wrzucać to wszystko robimy komendami i to jest dokładnie koniec stawiam takiego środowiska bez FTP bez szelaki różnych problemów wszystko przechodzi moim zdaniem szybko, łatwo i ujednolicenie są oczywiście włady tych rozwiązań które też trzeba wspomnieć bo niektóre rzeczy są naprawdę trochę słodkiem tak to nazwijmy pierwsza rzecz chcemy to wdrażać w skala to jest doker wypada co nieco wyjdzieć o VHS mało tego nieco nieco tylko trzeba umyć zainstalować tego dokera ewentualnie jakiś tam zrobić konflikt po to żeby wszystko na VHS-ach działało ale nie tylko to na VHS-ach bo również na zwykłych hostingach i to się pojawia problem bo wypada wiedzieć jak są tworzone foldery na danym serwerze czy na przykład umożliwia zmianę przypisania katalogu do danej domeny bo na przykład bywają tacy hostingodawcy gdzie ustawisz domenę na początek ją dostajesz i zmienisz się katalogu z który ona ma wczytywać stronę często bywa to problemem już z jednym serwerem miałem hostingodawcom, miałem z tym problem prawdopodobnie przy kolejnej takiej próbie będzie odejść od nich bo musiałem dokładnie wszystko na nowo ustawić żeby ustawić tylko jedno domenę a ja musiałem wszystko skonfigurować na nowo jak mamy VHS to i przyda się czasami znajomość Linuxa jak mamy Windowsa nam się WSL żeby Dockera dobrze zarobić oczywiście Docker na szczęście do samej obsługi nie trzeba dużo bo wystarczy być jak go się uruchomić jak wyczyścić Kesha ewentualnie jakieś podstawowe rzeczy więc nie jest to nie samo jakiś bardzo duży nakład umiejętności ale sama podstawa użycie obrazów na szczególności wystarczy zwłaszcza że rozwiązanie które pokazuje wam dostarczo również gotowe komendy żeby wszystko odpalić tak żeby to działało no i oczywiście git żeby wszystko razem trzymać na koniec jeszcze ma mały bonus odnośnie tego jak pilnować czy nasze zmiany nie powodują problemu w tym co zrobili inni żeby nie było tak że my wracamy po jakimś czasie do naszego kodu do naszych bloków i zobaczymy one działają inaczej a jeszcze gorzej one to wsypią ja na to mam takie rozwiązanie że robię archiwum bloków to ma swoje dwa plusy jedna rzecz archiwum bloków jest dokumentacją nie tylko dla nas, ale również dla klienta bo tam będą zawarte wszystkie nasze bloki a jak wiadomo dokumentację albo się robi w trakcie tworzenia bloków albo się robi na końcu tylko że na końcu nikomu jej się nie chce dobrze zrobić a kiedy ją robimy w trakcie pisania naszego kodu to ma to po prostu więcej sensów więc ja tworzę osobny custom postyp nazywam go przykładowo custom blocks ustawiam żeby wszystkie wpisy były jako single i ustawiam że on ma mieć archiwum każdy blok który tworzę brzucą do osobnego single i tam robię go różne przeróżne warianty tu jest taki przykład jak to miejsce wygląda mamy dwa różne bloki które robiły listy tylko są podstawowe listy ale one tam obudnie miały kilka dodatkowych rzeczy i wypisałem jakie zmienne dokładnie zrobiły każdy widok plus jest tego taki że jak ktoś chce zmieni może dokładnie zobaczyć tą stronę i zobaczyć czy te bloki dalej się zachowują tak jak zachowywać się powinny bo jeżeli ktoś coś zmieni w bloku i się posypie to w tym miejscu możemy mieć 6 kombinacji tego samego bloku z różnymi wariantami jak gdzieś coś zmieni i ma się posypać to ważne na takiej stronie a żeby było lepiej po to korzystamy z archiwum żeby te bloki trzymać na przykład jednym po drugim i dzięki to możemy mieć bibliotekę bloków tu są tylko oczywiście jedne warianty żeby można było zobaczyć jak to wygląda ale mamy blok po bloku możemy wszystko zobaczyć czy to co zmiany które my zrobiliśmy czy one w żaden sposób nie wpłynęły na inne bloki możemy zobaczyć przyciski jakie mamy zdeklarowane wchodzi nowa osoba ale jakie są w ogóle przyciski i ma dokładnie klasy przycisków jakie są używane mało tego oczywiście każda wszędzie tutaj są nagłówki to są osobne single więc może wejść, znaleźć Patrons Group wchodzi w tego edycję i ma dokładnie te bloki może i tam skopiować, użyć u siebie ale wszystko ma poddane na tacy i jakie są możliwości tego bloku to wszystko, dziękuję cześć jeszcze marzyłem o takiej sytuacji czekajcie jest szansę jest szans wykorzystana tu jest istotny workflow jak pracujemy, jakoś wypadło mi z głowy żeby o tym trochę wspomnieć ale tak, lokale są nasze co my tam nie zrobimy to robimy to tylko dla nas zrobimy tam sobie jakiś błąd ten błąd jest tylko nasz natomiast skączyliśmy jakąś sekcję na staging tam co my właściwe media wszystko co jest tym potrzebne potem najlepiej pobrać oczywiście u siebie gita aktualnego, żeby mieć mastera zdalnego i dość często opłaca się na przykład zainportować bazę danych ze staginga do siebie po to żeby te zmiany, które wdrożyliśmy były widoczne u nas właśnie takie stosowałem okazję już to stosować w kilku projektach oczywiście może to być męczące że musimy co jakiś czas tą bazę zgrywać ale ta baza jest naszym jakby źródłem, która jest w zasadzie dość wolna od błędów bo my tam rzucamy rozwiązania które są już gotowe które są dobrze działające i każdy może je pobierają do siebie tam co jakiś czas i mamy tą pewność że nie mamy tej sytuacji że my mamy jakiś klucz w bazie danych a ktoś go nie ma natomiast to do zdjęcia właśnie tak samo jest te zdjęcia są na stagingu adresu URL mamy w bazie danych zasyzamy bazę danych do nas więc mamy nagle ścieżki do tych zdjęć a CDM nam podmienia to URL i mamy zdjęcia u siebie wraz z kontentem, który stawiliśmy oczywiście od staging do 200 zł za godzinę jakby co więc macie jeszcze szans poddajemy się muszę dobrać sobie złapiemy się