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

Autor wpisu: batman, dodany: 13.05.2016 14:00, tagi: javascript, php

Tworzenie webowych aplikacji działających w czasie rzeczywistym zazwyczaj wymagało niemałej gimnastyki oraz sporej dozy cierpliwości. Na szczęście z pomocą przychodzi Laravel i socket.io, dzięki którym stworzenie takiej aplikacji to przysłowiowa bułka z masłem. W tym artykule przedstawię krok po kroku przepis na aplikację, która pozwala na wysyłanie wiadomości, które wyświetlane są użytkownikom owej aplikacji od razu, bez konieczności odświeżania strony. Zanim zaczniemy, musimy przygotować środowisko pracy. W przypadku Laravela idealnie nadaje się do tego Homestead, który ma już wszystko... [[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Autor wpisu: Pyton, dodany: 13.05.2016 02:00, tagi: php

Wczoraj na GitHub pojawił się projekt społeczności pod nazwą PHP Community Driven Standards. Jest to bardzo dobra (acz dopiero świeża) alternatywa dla FIG (Framework Interoperability Group)

Autor wpisu: Michał Janicki, dodany: 17.04.2016 21:30, tagi: php

W trzecim poście poświęconym bibliotece Ruckusing Migrations pokażę jakie jeszcze operacje można wykonać na bazie poza tworzeniem tabel. Zakładam, że czytając tego posta zapoznałeś się z pierwszą i drugą częścią tego kursu. Jeśli nie to zachęcam do lektury. Tymczasem zapraszam do czytania trzeciej części kursu poświęconego Ruckusing Migrations.

Uzyskiwanie informacji o serwerze baz danych, tabelach i kolumnach itd.

Zdarza się, że to jak zmodyfikujemy tabelę zależy od jej struktury, której aktualnie nie znamy nie jesteśmy jej do końca pewni lub chcemy po prostu sprawdzić czy nasze zmiany odniosły skutek. Aby uzyskać dostęp do odpowiednich funkcji musimy pobrać adapter za pomocą metody get_adapter ($adapter = $this->get_adapter()) i teraz możemy sprawdzić kilka informacji na temat serwera bazy na którym pracujemy.

Po pierwsze możemy sprawdzić czy wskazana przez nas baza danych istnieje:

$adapter->database_exists('nazwa_bazy');

Metoda ta zwróci TRUE lub FALSE. Metoda ta jest nie wspierana w przypadku SqlLite. Możemy także sprawdzić czy istnieje w bazie danych konkretna tabela, która nas interesuje:

$adapter->has_table('nazwa_tabeli');

Ta metoda również zwróci TRUE lub FALSE. Wreszcie możemy także uzyskać informacje na temat konkretnej kolumny:

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

Autor wpisu: batman, dodany: 09.04.2016 12:29, tagi: php

Blade Builder jest najnowsza paczką (tym razem nie do Laravela), jaka wyszła spod mojej ręki. Jak nazwa wskazuje, bazuje ona na systemie szablonów blade, który można znaleźć w Laravelu. Skąd pomysł na taką paczkę? Jak zwykle z lenistwa. Od czasu do czasu zajmuję się frontem. Jeśli źle rozplanuję pracę okazuje się, że mam do zmiany w wielu plikach ten sam element (np. stopkę). Wprawdzie korzystałem z różnych sposobów, żeby unikać tego typu problemów, jednak nigdy nie byłem w pełni zadowolony z efektów. I dlatego postanowiłem stworzyć coś własnego. Dlaczego blade? Ponieważ większość projektów... [[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Autor wpisu: Piotr Śliwa, dodany: 25.03.2016 11:05, tagi: php

Jakiś czas temu rozpisywałem się o mockach. Teraz pora na krótką opowiastkę o tym samym, ale z innej perspektywy.

Przez ostatni rok piszę w scali, nie napisałem w niej ani jednego mocka (nie licząc TestProbe z Akki). Niedawno też wróciłem popisać sobie w javie, praktycznie od razu gdy miałem zamiar pisać test jednostkowy, chciałem użyć mocka. Dlaczego? Odpowiedź jest prosta i po części znajduje się w przytoczonym już wpisie. Scala to funkcyjno-obiektowy język, duży nacisk jest kładziony na niemodyfikowalność i brak efektów ubocznych, język do tego zachęca. Jeśli nie ma side effectów (wywołań typu command), to po co korzystać z mocków? Nie mają racji bytu. Java nie zachęca tak do niemodyfikowalności i braków side effectów, tak więc w niektórych przypadkach mock jest wskazany.

Wspomniałem, że jedyne mocki, które napisałem w scali, to te testujące aktorów z Akki - to jest naturalne. Akka jest oparta na side effectach, każda wysłana wiadomość do dowolnego aktora jest efektem ubocznym.

Nauka z tego jest taka, że zbiór rozwiązań danych problemów z języka X nie przekłada się na zbiór rozwiązań tych problemów w języku Y. Dlaczego? Bo w języku Y te problemy mogą w ogóle nie istnieć lub mogą istnieć inne narzędzia do ich rozwiązania. Przykładowo wzorce obiektowe w programowaniu funkcyjnym oczywiście nie mają zastosowania, do rozwiązania tych problemów stosuje się funkcje wyższego rzędu (np. zamiast strategii), składanie funkcji (np. zamiast dekoratora), czy innych funkcyjnych konstrukcji językowych (np. pattern matching zamiast visitora).

Autor wpisu: Pyton, dodany: 07.03.2016 01:00, tagi: php

Czasami jest taka sytuacja że dostajemy kod w spadku lub do modyfikacji. Trzeba się w ten kod wgryźć, zrozumieć jak działa. Prosta sprawa jeśli jest to jakiś framework, jeśli mamy testy, jeśli kod jest czytelny.

Ale co w przypadku ukochanego przez wszystkich programistów "Spagetti"?

Tutaj przyjdzie nam z pomocą paczka PHP_CodeCoverage. Dzięki niej w bardzo prosty sposób wygenerujemy sobie metryki który kod został uruchomiony przy jakimś requeście. Podobnie to wygląda do Code Coverage podczas uruchamiania Testów Jednostkowych.

Do dzieła!

Autor wpisu: batman, dodany: 22.02.2016 16:00, tagi: php

Przy okazji pracy nad pewnym projektem, doszedłem do miejsca, w którym potrzebowałem prostego REST API. Wszystkie rozwiązania, które sprawdziłem były albo przerośnięte albo nie działały zgodnie z moimi oczekiwaniami. W ten sposób powstała kolejna paczka do Laravela mojego autorstwa. Generic REST API, bo o niej mowa, jest paczką, która na podstawie modeli zdefiniowanych w pliku konfiguracyjnym, udostępni API do pobierania i zapisywania danych. Na chwilę obecną paczka oferuje podstawową funkcjonalność CRUD-a. W przyszłości planuję dodanie walidacji zapisywanych danych, paginację zwracanych... [[ This is a content summary only. Visit my website for full links, other content, and more! ]]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.