Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: Michał Janicki, dodany: 30.05.2016 19:00, tagi: php

Zbliżamy się powoli do końca serii postów poświęconych bibliotece Ruckusing Migration.

W przedostatnim wpisie poruszę temat transakcji i logowania zdarzeń a także opiszę jak można zrzucić schemat bazy danych do pliku. Zachęcam także do przeczytania pierwszego, drugiego i trzeciego postu poświęconego Ruckusing Migration.

Transakcje

Transakcje w Ruckusing Migration obsługuje się bardzo prosto i wystarczy do tego znajomość trzech metod. Chodzi o start_transaction(), commit_transaction(), rollback_transaction(). Całość zobrazuje kod poniżej:

$adapter = $this->get_adapter();
try {
    $adapter->start_transaction();
    $id = $this->query("INSERT INTO users VALUES(NULL, 'Jan', 'Kowalski')");
    $this->query("UPDATE users SET first_name = 'Adam' WHERE id = " . $id);
    $adapter->commit_transaction();
} catch (Exception $e) {
    $adapter->rollback_transaction();
    echo $e->getMessage() . „\n”;
}

Kod jest raczej łatwy do zrozumienia, ale gwoli ścisłości wszystko wyjaśnię. W pierwszej kolejności należy pobrać adapter, ponieważ to z jego poziomu dostępne są metody służące do obsługi transakcji. W sekcji try rozpoczynamy transakcje metodą start_transaction() wykonujemy zapytania kod SQL i zatwierdzamy transakcję metodą commit_transaction(). Jeśli jednak coś pójdzie nie tak to w sekcji catch wycofujemy transakcję i wyświetlamy wiadomość z wyjątku. I tyle.

Logowanie zdarzeń do pliku

W zasadzie nie ma potrzeby wykonywać żadnych specjalnych działań aby logować zdarzenia do pliku. Ta opcja jest włączona domyślnie a my możemy ustalić w pliku konfiguracyjnym gdzie plik logu ma być przechowywany (chodzi o klucz log_dir na końcu pliku konfiguracyjnego). Nazwa pliku z logami odpowiada nazwie klucza w tablicy z danymi konfiguracyjnymi biblioteki.

A co jeśli będziemy chcieli dodać własne logi? W tym celu musimy użyć klasy Ruckusing_Util_Logger , jej instancję możemy pobrać za pomocą metody get_logger() dostępnej z poziomu adaptera. Istnieje także metoda set_logger() za pomocą, której można ustawić obiekt klasy, która ma posłużyć do logowania zdarzeń.

Gdy już mamy pobraną instancję loggera możemy użyć metody log i w jedynym parametrze jaki przyjmuje podać treść logu. Przykładowo dla poniższego kodu:

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

Autor wpisu: Kamil Adryjanek, dodany: 29.05.2016 23:34, tagi: php

Chciałbym zaprosić wszystkich zainteresowanych tematyką PHP i Symfony, a konkretniej zagadnień związanych z testowaniem aplikacji (TDD / BDD) na moją prelekcją, która odbędzie się na Międzynarodowej Konferencji Informatycznej: WySPA.iT w piątek 10 czerwca od godz. 15:30.

Tematem mojej prelekcji będzie:

TDD with BDD in PHP and Symfony

Plan prelekcji jest następujący (dopuszczam drobne modyfikacje):

  • Introduction to Test-Driven Development
  • Introduction to Behavior-Driven Development
  • Behat and Story BDD
  • How to „test” REST API with Behat?
  • phpspec and Spec BDD
  • How to „spec” with phpspec?

Po prelekcji chętnie odpowiem na pytania związane z tematem testowania / PHP / Symfony, bądź też pracy w Level 7 Systems Ltd – oprócz zagadnień stricte technicznych będę również zachęcał zainteresowanych studentów (i nie tylko) do udziału w rekrutacji. Aktualne oferty pracy znajdziecie na naszej stronie: kariera.

Zachęcam do zapoznania się z pełną agendą konferencji, gdzie będziecie mogli posłuchać między innymi:

i nie tylko. Dokładne godziny poszczególnych prelekcji zostaną potwierdzone w poniedziałek lub wtorek dostępne są na oficjalnej stronie w zakładce „agenda”.

Do zobaczenia!

Artykuł WySPA.iT – prelekcja w ramach Lubelskich Dni Nauki i Biznesu pochodzi z serwisu Notatki Programisty.

Autor wpisu: bigzbig, dodany: 27.05.2016 12:18, tagi: php

Jakiś czas temu zacząłem pracować dla klienta, który realizuje swój projekt w oparciu o koncepcję mikroserwisów Martina Fowlera. Nowe serwisy pisane są w Pythonie ale utrzymanie i dalszy rozwój starszych częściej architektury wymaga znajomości języka PHP. Mam ponad pięcioletnie, ciągłe … Continue reading

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

Wiele razy spotkaliśmy się z gdy w naszym pliku deklaracja use rozrastała się do dość sporych rozmiarów. Wtedy całość przypominała coś takiego:

<?php

namespace Procest\Command;

use Project\Commnad\Builder;
use Project\Commnad\Client;
use Project\Commnad\Server;
use Project\Controller\Services\Client1;
use Project\Controller\Services\Client2;
use Project\Controller\Services\Client3;

PHP7 ma na to radę...

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

Spaceship operator to nowy twór dodany w PHP7.

Działanie

Jest to operator porównania zwracający -1, 0, 1:

<?php

$a = 1;
$b = 2;
echo $a <=> $b; // -1

$a = 2;
echo $a <=> $b; // 0

$a = 3;
echo $a <=> $b; // 1

Autor wpisu: zleek, dodany: 18.05.2016 08:38, tagi: css, javascript

Fetching resources over the network is both slow and expensive: the download may require multiple roundtrips between the client and server, which delays processing and may block rendering of page content, and also incurs data costs for the visitor. All

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! ]]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.