Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: bastard13, dodany: 31.12.2011 13:07, tagi: oop

new Wishes()  ->becauseOf(new Year(2012))  ->to(new BlogReaders->getAll())
Czytaj więcej »

Autor wpisu: zleek, dodany: 30.12.2011 10:59, tagi: php, zend_framework, css

Zapewne każdy, komu przyszło tworzyć formularz z wykorzystaniem komponentu Zend_Form spotkał się z problemem związanym z wyświetlaniem elementów typu hidden – Zend_Form_Element_Hidden. W celu pozbycia się standardowo generowanych elementów dt i dd, w które są opakowane poszczególne elementy formularza przygotowałem klasę SmartGroup_Model_Form, która dziedziczy po Zend_Form. Natomiast każdy formularz dziedziczy z kolei po SmartGroup_Model_Form, zamiast [...]

Autor wpisu: zleek, dodany: 26.12.2011 22:35, tagi: php, zend_framework, mysql

Klasa Zend_Db_Table jest zorientowanym obiektowo interfejsem pomiędzy naszym kodem, a tabelami w bazie danych. Widać więc, że ułatwia nam pracę tym bardziej, że dostarcza ona metody do wielu podstawowych operacji na danych przechowywanych w bazie. Dodatkową zaletą jest fakt, że użytkownik nie musi ingerować w poszczególne zapytania. Przygotowaniem odpowiednich zapytań dostosowanych do użytkowanej bazy danych [...]

Autor wpisu: zleek, dodany: 25.12.2011 21:16, tagi: php, zend_framework

Do tworzenia aplikacji w języku php używałem na początku Eclipse PDT, jednak od ponad roku przesiadłem się na Jetbrains PhpStorm. Obecnie to IDE dostępne jest w najnowszej wersji 3.0. Przez cały czas jednak zastanawiałem się, w jaki sposób rozwiązać problem podpowiadania składni w sytuacji, gdy metoda zwraca nam tablicę obiektów. Dla przykładu: Przykład może nie [...]

Autor wpisu: zleek, dodany: 25.12.2011 00:00, tagi: php, zend_framework, mysql

W najnowszym projekcie spotkałem się z dość dziwnym problemem dotyczącym wykonywania zapytania, podczas którego należało zrobić join na dwóch tabelach. Tabela, dla której przygotowywane było zapytanie została zdefiniowana następująco: Natomiast kod, który odpowiedzialny był za wykonanie zapytania prezentuje się następująco: Niestety przy próbie wykonania tego zapytania otrzymałem wyjątek “Zend_Db_Table_Select_Exception” z komunikatem: “Select query cannot join [...]

Autor wpisu: zleek, dodany: 24.12.2011 17:19, tagi: php, apache

W tym wpisie postaram się przedstawić krok po kroku, co należy zrobić, abyśmy na naszej maszynie mieli zainstalowany PHPUnit oraz Xdebug, które to będą potrzebne do tworzenia testów jednostkowych oraz mierzenia pokrycia kodu testami. Zakładam, że użytkownik ma na swojej maszynie zainstalowany podstawowy zestaw, czyli Apache, PHP oraz MySQL, choć baza danych jest tutaj opcjonalna. [...]

Autor wpisu: Tomasz Sh4dow Budzyński, dodany: 16.12.2011 15:30, tagi: php

Jako że web developer goni za nowościami, przyszedł czas na upgrade serwerów testowych (przed wdrożeniem na produkcję). Czy zwykła zmiana wersji mogła odbyć się bez problemów ? Oczywiście że nie. To akurat wie każdy.

Korzystamy dla przechowywania sesji Memcached. Po pierwsze w miarę szybkie i ładnie działa, po drugie sesja jest wsþółdzielona pomiędzy sporo serwerów. Oczywiście logowanie przez SSL’a przestało działać.

Więc w pierwszej kolejności pretensje poszły do naszej aplikacji „Znowu coś zjebaliście !”, później memcache i na koniec serwer. A nie winne były ustawienia PHP. Jeśli posiadacie serwer oparty na Debianie lub jego potomków, sprawdźcie czy macie zainstalowane rozszerzenie Suhosin, a jeśli tak to czy poniższe zmienne macie tak ustawione.

suhosin.session.encrypt = off
suhosin.session.cryptua = off

To magiczne rozszerzenie ma skłonności to innego sposobu zapisywania danych w naszej sesji. Jest to string base64 po rozkodwaniu którego znajdujemy jakiś bliżej nie określony zapis binarny. Którego nie mamy jak rozkodować. Sytuacja jest o tyle dziwna, że ta sama domena z SSL’em i bez są traktowane jak by były osobno ale nie. Sesje pomiędzy tak parą domen są osobne. Każda zapisuje się oddzielnie, pod tym samym session_id. Oczywiście parametry sesji są ustawione tak żeby domeny wspólnie korzystały z sesji. Niestety nie udało mi się rozkodować tego co sesja zapisuje. Może jeszcze znajdę chwile to postaram się zrozumieć to zjawisko. W każdym bądź razie. Rozszerzenie wyłączyć lub zmienić ustawienia i problemy znikają.

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.