PHP, Doctrine2: Segfault podczas operacji flush().

Pracuję od jakiegoś czasu nad projektami, w których istotną część stanowią (autorskie) konsolowe narzędzia do zarządzania wewnętrznymi procesami aplikacji. Aktualizacja danych, wysyłka maili, itp. - każdej operacji odpowiada polecenie i odpowiedni zestaw argumentów, dzięki czemu zamiast pisania kodu w pocie czoła mogę ograniczyć się jedynie do sprawdzenia pliku logu. Nie znaczy to, że jestem “bezrobotny”, ale przynajmniej mam dużo czasu na “kreatywną” część programowania, zamiast tej odtwórczej. Wszystko fajne, dopóki działa - ostatnio jedno z poleceń zaczęło ni stąd ni zowąd wyrzucać błędy, i to BłędyNieByleJakie™. Zapraszam do lektury artykułu.

Doctrine2: Błąd "Unknown database type enum requested, MySqlPlatform may not support it".

Jakiś czas temu chciałem poeksperymentować trochę z bazą danych jednego z projektów FLOSS w Symfony2.

Cygwin, Ruby: Błąd "ruby.exe: No such file or directory (LoadError)".

Jakiś czas temu wpadłem na pomysł, żeby przetestować sobie nową wersję Redmine lokalnie, bez tradycyjnego puszczania wszystkiego na żywioł na serwerze, jak to zazwyczaj robię (oczywiście przedtem sprawdzam, czy istnieje jakiś backup :)) - po prostu jeśli projekt nie dotyczy czegoś ważnego (np. strony klienta), to nie jestem zwolennikiem robienia czegoś kilka razy. Wrzucam najnowszą wersję, patrzę czy działa i poprawiam ew. problemy. Dzisiaj chciałbym Wam powiedzieć o jednym małym triku, który pozwala na w miarę bezbolesne postawienie Rubiego na Cygwinie.

Apache: Błąd "apache2: bad user name ${APACHE_RUN_USER}".

Ostatnio miałem okazję zająć się bardziej poważnie administracją serwera (dokładniej VPSa) “od podstaw”. Od podstaw, to znaczy na zupełnie zerowej instalacji Linuksa, w związku z czym trzeba było zainstalować, skonfigurować i uruchomić wszystkie niezbędne do pracy usługi. Pomimo tego, że generalnie określiłbym się jako programista mający od czasu do czasu do czynienia z zagadnieniami administracyjnymi poszło mi to całkiem nieźle - po kilku godzinach wszystko śmigało bez żadnych problemów, a ja mogłem wrócić do kodowania. Oczywiście nie obyło się bez problemów, dlatego jedną ze znalezionych, raczej prostych przypadłości opisuję dzisiaj na blogu.

symfony: Błąd: "Catchable fatal error: Argument 1 passed to sfForm::bind() must be an array, string given".

Witajcie ponownie. Ostatnio pracuję nad pewnym projektem opartym o symfony, w związku z czym po raz kolejny mam okazję pomęczyć się trochę z jego wszystkimi zawiłościami. Dzisiejszy problem trochę mnie zdziwił, ponieważ nie spodziewałem się tego typu restrykcji ze strony frameworka, stąd też tradycyjnie szukałem błędu nie tam, gdzie powinienem. Na szczęście udało mi się znaleźć rozwiązanie, stąd też miło mi po raz kolejny ogłosić, że będę mógł podzielić się z Wami rozwiązaniem. ;]

PHP: Definiowanie klasy wewnątrz funkcji lub metody.

Język PHP zawiera w sobie dużo różnych “sztuczek”, przez co nasze życie może stać się o wiele łatwiejsze, ale istnieje możliwość, że zostanie przez nas znienawidzony do końca życia. W dzisiejszym wpisie chciałbym pokazać i wyjaśnić jedną z bardzo niejasnych i bardzo brzegowych kwestii, jaką jest zachowanie zasięgu zmiennych podczas przechodzenia do innych plików [np. w przypadku ich includowania]. Zapraszam do lektury.

Linkdump #39: Mistrz JavaScriptus.

Podczas tworzenia stron internetowych nawet jako programiści backendu nie uciekniemy od spraw frontendowych, a więc HTMLa, CSSa oraz JavaScriptu. Dlatego w dzisiejszym Linkdumpie po raz kolejny podejmujemy kwestię tego języka skryptowego.

symfony: sfValidatorAnd i problem z ignorowaniem właściwości "required" komponentów wewnętrznych.

Realizuję w tym momencie bardzo przyjemny projekt - przyjemny dlatego, że powstaje “od zera” i mam możliwość wyboru narzędzi, w jakich będę go tworzył. Chciałem spróbować wykorzystać do tego testowany od pewnego czasu framework Symfony2, jednak idąc za radą udzieloną mi przez batmana podczas konferencji 4Developers wracam na “stare śmieci”, czyli stabilną wersję symfony. Jak to bywa przy powrotach - zazwyczaj pojawiają się problemy z ponownym “zgraniem się” programisty z kodem. Tym razem padło na mechanizm walidacji formularzy, który nie do końca chciał współpracować.

PHP: Lista stałych zdefiniowanych w klasie.

Programując w dowolnym współcześnie wykorzystywanym języku na pewno zdarzyło Wam się korzystać z tzw. flag. Flaga, to nic innego niż stała wartość zapisana pod odpowiednim identyfikatorem. Jedną z szerzej stosowanych możliwości jest użycie ich jako komunikatów - numerów lub identyfikatorów np. błędów. W dzisiejszym wpisie pokażę pewien ciekawy sposób na przekazywanie bardziej zrozumiałych informacji dla użytkownika końcowego na podstawie tych właśnie elementów języka.

WAMP: Usuwanie komunikatów o błędach XDebug.

Zainstalowałem i skonfigurowałem dzisiaj najnowszą wersję serwera WAMP - 2.1e. O niektórych problemach związanych z jego działaniem pisałem już wcześniej, także temat ten jest Wam na pewno znany. W dzisiejszym wpisie chciałbym pokazać, w jaki sposób ukryć “pomarańczowe komunikaty” o błędach wykonania skryptu PHP, jakie serwuje nam debugger XDebug.