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

Autor wpisu: matipl, dodany: 13.01.2017 12:43, tagi: php

W pewnym momencie życia naszej aplikacji przychodzi taka chwila, że staje się dla nas ważna wydajność. Często jest to powiązane ze wzrostem ilości zapytań/użytkowników lub danych w bazie. Ale nie zawsze wiemy jak zabrać się do pomiarów naszej aplikacji (obciążenia procesora, zużycie pamięci, czasu przebiegu).

W odległych czasach często obudowywano fragmenty kodu PHP w taki sposób:

$start = microtime(true);
someFunction();
$end = microtime(true);
$executionTime = number_format($end - $start, 10);

Dzięki temu uzyskiwaliśmy pewną wiedzę na temat czasu wykonywania metod, funkcji, fragmentów kodu. W podobny sposób uzyskiwano informacje np. odnośnie pamięci. Następnie zapisywaliśmy dane do bazy, pliku etc. Całość jednak powodowała dość duży narzut prac, aby sprawdzić wydajność aplikacji, a jednocześnie w pewnych sytuacjach powodowała zwiększenie złożoności kodu (dodatkowe modele, biblioteki, klasy).

Xdebug

Jeśli ktoś znał Xdebuga i miał możliwość włączenia na serwerach developerskich/testowych rozszerzeń PECL bardzo szybko przenosił się na to rozwiązanie. Profilowanie w Xdebug jest bardziej uniwersalne, nie musimy osobno „badać” każdej metody, ale robi to sam Xdebug na poziomie wykonywania kodu PHP i zbiera naprawdę sporo informacji o wszelakim wykonanymi kodzie. Wystarczy tylko odpowiednio skonfigurować mechanizm profilowania w php.ini:

xdebug.profiler_enable = 1
xdebug.profiler_output_dir = /tmp/profiler

Po każdym request do aplikacji otrzymujemy plik cachegrind.out we wskazanym katalogu, który możemy przenalizować za pomocą narzędzi graficznych, np. takim jak KCachegrind. Jest to dobre rozwiązania na maszynie developerskiej, gdzie jest ograniczona ilość użytkowników, możemy kontrolować ilość requestów, ponieważ w innym wypadku bylibyśmy zawaleni przez pliki z proflowania. Poza tym narzędzie Xdebug nie jest zalecane do zastosowań produkcyjnych. Co w takim wypadku?

XHProf (Hierarchical Profiler) / XHGui

XHProf został stworzony przez developerów Facebooka i udostępniony publicznie w marcu 2009 roku. Tak jak Xdebug jest również napisane w C jako PHP Zend Extension (PECL). Ale zadaniem XHProf jest wyłącznie profilowanie naszej aplikacji (zbiera takie metryki jak czas, czas CPU czy użycie pamięci). Został stworzony z myślą, aby działać na środowiskach produkcyjnych (stabilność, mały narzut na zbieranie informacji). XHProf dostarcza również prosty mechanizm do tworzenia raportów HTML, w którym możemy przeglądać rezultaty profilowania, jak również zobaczyć graf przejścia. Rozszerzenia znajduje się w oficjalnym katalogu PECL, dlateg aby zainstalować XHProf wystarczy wydać komendę:

pecl install xhprof

Bazując wyłącznie na XHProf możemy wykorzystać dość toporny sposób na zbieranie informacji:

//operations, collecting
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
for ($i = 0; $i < = 1000; $i++) {
    $a = $i * $i;
}
$xhprof_data = xhprof_disable();

//writing
$XHPROF_ROOT = "/tools/xhprof/";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");

//URI with data:
//http://127.0.0.1/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing

Myślicie, że to skomplikowane i dużo nie ułatwia? Zgadzam się! Dlatego od razu polecam zapoznać się z XHGui, który cały proces upraszcza i niweluje tworzenie wielu małych plików dostępnych pod unikatowym ID, bez których nie jesteśmy w stanie szybko zapoznać się z analizą.

XHGui napisany jest w PHP i jest to forma nakładki na profiler. Cały kod XHGui umieszczamy w miejscu dostępnym tylko dla nas przez WWW i robimy zmianę w php.ini (lub przeciążamy zmienną w naszym kodzie):

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

Autor wpisu: JoShiMa, dodany: 22.12.2016 00:50, tagi: mysql, php

Pisałam ostatnio o tym jak można edytować projekt zdalnie, jednak doskonale wiem, że to nie jest najlepsze rozwiązanie i o wiele lepiej jest pracować na lokalnym serwerze a dopiero ukończoną wersję umieszczać na serwerze produkcyjnym. Do pracy na serwerze lokalnym potrzebny jest pakiet oprogramowania zwany w skrócie LAMP. L jak Linux A jak Apache (serwer […]

Autor wpisu: batman, dodany: 12.11.2016 10:38, tagi: php

Na rynku mamy dostępny szereg narzędzi do zarządzania projektami. Nietrudno znaleźć firmę, która dostarczy kompleksowe rozwiązanie, wystarczy tylko za nie zapłacić. Jeśli mamy do dyspozycji duży budżet, wówczas koszt takiego narzędzia nie zrobi na nas wrażenia. Sytuacja wygląda zupełnie inaczej, gdy chcemy zapanować nad niewielkim zespołem, a nasza firma (lub grupa znajomych) nie jest gotowa finansowo i organizacyjnie na rozwiązanie klasy enterprise. Na szczęście z pomocą przychodzą darmowe narzędzia, które wymieniłem w tytule – Trello, Toggl, Bitbucket oraz Bugsnag. Slack stanowi tutaj... [[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Autor wpisu: Kamil Adryjanek, dodany: 05.11.2016 08:08, tagi: php

Tym razem w ramach warsztatów organizowanych przez Women in Technology zostałem zaproszony do poprowadzenia warsztatów z podstaw PHP. Warsztaty mają stanowić swojego rodzaju wprowadzenie do programowania w tym języku i przeznaczone są przede wszystkim dla osób początkujących. Krótka agenda pierwszego spotkania zostanie opublikowana w przyszłym tygodniu. Krótka agenda znajduje się poniżej. W przypadku dużego zainteresowania wydarzeniem możliwe jest również przeprowadzenie kolejnych zajęć z zagadnień bardziej zaawansowanych.

Warto wiedzieć, że:

Mimo że wydarzenie jest kierowane do kobiet, mężczyźni również są mile widziani, jeśli interesują ich tematy prezentacji. Choć wśród organizatorek są wyłącznie kobiety, nie znaczy to, że zamykamy się na panów. Publiczność na naszych warsztatach i spotkaniach jest zawsze mieszana, a panowie często występują u nas także w roli prelegentów.

Co w wolnym tłumaczeniu oznacza, że warsztaty są otwarte dla wszystkich – nie tylko dla kobiet (po więcej informacji odsyłam na stronę WiT ).

Warsztaty odbędą się 26 listopada 2016 r. w godzinach 9:00 – 13.00 w sali komputerowej Wyższej Szkoły Przedsiębiorczości i Administracji w Lublinie przy ul. Bursaki 12. Udział w warsztatach jest bezpłatny, a liczba miejsc ograniczona. Wymagana jest wcześniejsza rejestracja na wydarzenie poprzez formularz. Więcej informacji znajdziecie na stronie wydarzenia na Facebooku: https://www.facebook.com/events/1409878192363220/.

Zakres zagadnień, które będę poruszał na warsztatach:

  • architektura klient-serwer;
  • jak działają dynamiczne strony internetowe;
  • wprowadzenie do PHP: składnia, instrukcje sterujące, tablice, formularze;
  • podstawy programowania obiektowego;

Wszystkich zainteresowanych serdecznie zapraszam!

Artykuł Warsztaty z podstaw PHP – WiT Lublin pochodzi z serwisu Notatki Programisty.

Autor wpisu: matipl, dodany: 20.10.2016 17:39, tagi: php

Internet staje się pełny darmowych rzeczy. Niestety w większości są to materiały niewarte kliknięcia, a co dopiero pobrania. Ale czasami ktoś udostępni jeszcze coś wartościowego…

Wydawnictwo O’Reilly udostępniło sporo darmowych e-booków. Wśród reklamowych próbek, jest także sporo ciekawych pozycji dot. Javy, Python, PHP, bezpieczeństwa czy IoT. Uciążliwy jest tylko fakt, że każdą pozycję należy pobrać osobno i za każdym razem należy podać swoje dane (imię, nazwisko i e-mail). Tutaj znajdziecie książki:

Artykuł O’Reilly – darmowe ebooki pochodzi z serwisu Mateusz matipl Kamiński.

Autor wpisu: Kamil Adryjanek, dodany: 06.10.2016 00:15, tagi: php

W tym roku nareszcie udało mi się wygospodarować trochę czasu na przełomie września i października, dzięki czemu mogłem wziąć udział w największej konferencji branżowej dla programistów PHP: PHPCon, która w tym roku odbyła się w hotelu: „Hotel Ossa Congress & Spa” w niewielkiej miejscowości o tej samej nazwie, między Rawą Mazowiecką, a Białą Rawską (podobnie zresztą jak przed rokiem). O ile w konferencji: 4developers4developers od kilku dobrych lat uczestniczę regularnie, tak to był mój pierwszy PHPCon, stąd pomysł podzielenia się ogólnymi wrażeniami.

Organizacyjnie cała konferencja wypadła bardzo dobrze z drobnymi zgrzytami, które miały miejsce jeszcze przed samą konferencja i na samym starcie:

  • dość dziwna sytuacja z miejscami noclegowymi w hotelu (podobno nie był to odosobniony przypadek) – organizatorzy najpierw przyjeli zamówienie na wejściówki i hotel, by na tydzień przed konferencją poinformować, że niestety ale brakuje im miejsc i trzeba szybko zarezerwować nocleg w innym pobliskim hotelu. W tej sytuacji bardziej jednak doszukiwałbym się winy po stronie hotelu;
  • po dotarciu na miejsce w piątek rano byłem lekko zdezorientowany – nie znalazłem żadnych informacji na temat samej konferencji i jako, że to był mój 1 PHPCon trochę ciężko było mi się odnaleźć. Po rejestracji, która była dostępna od 15 dalej było już tylko lepiej;

Na duży plus warto wspomnieć o:

  • świetnym hotelu, który zaskoczył bardzo pozytywnie: ładne pokoje, bardzo dobre jedzenie (bez ograniczeń) i co najważniejsze prelekcje / warsztaty w tym samym miejscu (nie dotyczy to oczywiście osób z wcześniej wspomnianym problemem noclegowym). Nie wiem ilu dokładnie uczestników brało udział w tegorocznym PHPConie ale organizacja śniadań / obiadów / kolacji była bardzo dobrze przemyślana – czego nie można powiedzieć np: o obiadach w czasie 4developers;
  • miło zaskoczyła mnie również maskotka PHP w pakiecie startowym podczas rejestracji – mój dwuletni syn był zachwycony

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

Autor wpisu: cichy, dodany: 16.09.2016 00:06, tagi: php, standardy

Zdaję sobie sprawę, że tytuł który jednocześnie jest parafrazą opisu konia z pierwszej polskiej encyklopedii może nie mówić wszystkiego. Wyjaśniając, kiedy mówimy o kodzie PHP (czy tez innym języku programowania) zazwyczaj automatycznie myślimy o jego składni, dostępnych narzędziach rozwiązaniach oraz łatwości rozwiązania problemu, który przed nami stoi, oczywiście nie ma w tym nic złego jeżeli piszemy szybkie narzędzie dla siebie wówczas sam pomysł na rozwiązanie problemu powinien wystarczyć.

Wydawałoby się że nie ma sensu prowadzić na ten temat dyskusji. Problem zaczyna się jednak gdy przystępujemy do pracy nad większym projektem, lub gdy przystępujemy do pracy grupowej, wtedy nie tylko działanie kodu się liczy. Aby nasza praca była skuteczna i łatwo przyswajalna przez innych członków grupy (czy też odbiorców) musimy zadbać o pewne standardy kodowania, które de facto na efekt końcowy działania programu nie mają żadnego wpływu (lub mają marginalny). Sam długo broniłem się przed standardami „globalnymi” prawdopodobnie, jedynym powodem odwlekania tego było po prostu lenistwo, bo skoro działa to po co to zmieniać. Od niedawna zacząłem jednak próbować ulepszyć swój sposób pracy, więc chcąc nie chcąc trafiłem na opis „Rekomendowanych Standardów” PSR-1 i PSR-2 i właśnie o nich chciałbym dzisiaj napisać.

PSR co ?

PSR to skrót od PHP Standard Recommendation jest to inicjatywa, której celem jest wyznaczenie standardów w dość chaotycznym świecie skryptów PHP. Oczywiście nietrudno wyobrazić sobie korzyści płynące z podążania za standardami, które są lub będą implementowane przez duże rzesze programistów, jak jednak wspomniałem we wstępie w moim przypadku decyzja o próbie standaryzowania swojego kodu, przyszła z trudem i o wiele później niż powinna, tak więc z tego miejsca zachęcam wszystkich do dalszej lektury postu i być może szybszej decyzji o zmianie stylu pisania własnych skryptów.

Wróćmy jednak do rzeczy, na stronie http://www.php-fig.org/ możemy znaleźć zakładkę Recomendations gdzie znajdziemy listę wszystkich „Rekomendacji” oraz ich stan, nas interesują w praktyce tylko te ze stanem Accepted , czyli rekomendacje zatwierdzone przez osoby mające głos. No tak mogłoby się wydawać, że wszystko pięknie ładnie, ale kim w ogóle są osoby głosujące, i tutaj robi się ciekawie. Okazuje się, że nie jest to wymysł jednego czy dwóch programistów, w głosowanie zaangażowani są programiści z przeróżnych projektów znanych większości z nas (Symfony, Joomla, Drupal itp.) pełną listę osób które mają prawo głosu można znaleźć tutaj ponadto każdy kto jest zapisany, na listę mailingową i/lub pojawia się na kanale IRC pomimo braku możliwości udziału w głosowaniu, nadal na równi z innymi może toczyć dyskusje na temat proponowanych zmian.

Jak widać struktura całego przedsięwzięcia została dobrze przemyślana i całość od jakiegoś czasu idzie w moim zdaniem bardzo dobrym kierunku. Na chwilę obecną w sekcji accepted rekomendacji, możemy znaleźć 7 pozycji. W tym poście chciałbym skupić się na omówieniu standardów PSR-1 i PSR-2

PSR-1

Standard PSR-1 został w skrócie opisany jako „Basic Coding Standard” czyli w wolnym tłumaczeniu, podstawowy standard programowania. W dużym skrócie zawiera on wytyczne dotyczące takich aspektów jak:

  • używany system kodowania (UTF-8 bez BOM)
  • używane tagi PHP w dokumentach (dozwolone są tylko tagi <?php i <?=)
  • nazewnictwo klas, przestrzeni nazw oraz stałych

Najciekawszy element tego standardu to nazwane w dokumentacji „Side Effects” czyli krótko mówiąc zasada mająca na celu uniknięcia sytuacji który jeden dołączony plik jednocześnie deklaruje np. klasę i wykonuje jakieś działanie. Na początku trzeba sobie to dokładnie ułożyć w głowie o co w tym chodzi, postaram się to opisać najjaśniej jak tylko potrafię

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.