Zend Framework

Routing w Zend Framework

Ostatnio natknąłem się na problem z zachowaniem się Frameworka w przypadku, gdy została zastosowana metoda $router->removeDefaultRoutes();

Problem polegał na notorycznym ładowaniu domyślnego kontrolera i domyślnej akcji (zamiast Error Handlera) w przypadku nieodnalezienia strony w routes.xml. Jest to dość intrygujące zachowanie, które zauważyłem nie tylko ja :-) Twórcy niestety twierdzą, że takie zachowanie się frameworka jest by design. Na szczęście od czego jest OOP i dziedziczenie klas :) A więc w pliku Bootstrap.php dodajemy na początku:

class CustomDispatcher extends Zend_Controller_Dispatcher_Standard
{
public function dispatch(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response)
{
$controller = $request->getControllerName();
if (empty($controller)) {
throw new Zend_Controller_Dispatcher_Exception('Nie znaleziono takiej strony');
}
return parent::dispatch($request, $response);
}
}

A następnie w samej klasie Bootstrap dopisujemy funkcję inicującą:

public function _initDispatcher()
{
$dispatcher = new CustomDispatcher();
$front = Zend_Controller_Front::getInstance();
$front->setDispatcher($dispatcher);
return $dispatcher;
}

I to by było na tyle.
Należy pamiętać o wspomnianej już funkcji removeDefaultRoutes w _initRouting() ;-)

Nieświadomy wkład w rozwój Zend Framework :-)

Pamiętacie może wpis „Przyjazne linki Zend Framework w IIS 7.5„? Przeglądając Google Webmaster Tools znalazłem stronę, która odsyła do archiwum grupy dyskusyjnej Zend’a. Rozwiązałem w nim dość uciążliwy problem zwiazany z nowym Rewriterem Microsoftu, serwerem IIS 7.5 oraz PHP. Polegał on na błędnym określaniu ścieżki REQUEST_URI, której poprawna wartość jest przechowywana w UNENCODED_URL. Wystarczyło jedynie nadpisać REQUEST_URI wartością z drugiej pozycji tablicy.

Poprawka więc prosta :-) Tak więc ten prosty if po lekkiej modyfikacji znalazł się finalnie w Zend_Controller_Request_Http :-) Więc od wersji 1.9.3 Tomick ma swój mały, tyci wkład w rozwój Zend Framework :-)

Zend Framework 1.8.4

Zend Framework od wersji 1.8 stał się nawet przyjemnym i atrakcyjnym frameworkiem. Przede wszystkim dzięki Zend_Tool oraz Zend_Application zunifikowany został proces tworzenia bazy projektu. Dziś została wydana wersja 1.8.4, wprowadzająca 50 poprawek związanych z funkcjonalnością frameworka. Ponadto została zapowiedziana wersja 1.9.0, która ma się pojawić już pod koniec lipca br. Czytaj więcej…

Przyjazne linki Zend Framework w IIS7.5

Testując niedawno wydaną wersję Windows Server 2008 R2 RC1 (ufff… chyba niczego nie zapomniałem ;) ) natknąłem się na problem z uruchamianiem aplikacji opartej o Zend Framework, która wykorzystuje przyjazną dla wyszukiwarek formę adresów url. Do skracana urli wykorzystuję Microsoft UrlRewriter’a, pobranego za pomocą Web Platform Installera. Jest to jeden z lepszych modułów i na prawdę jestem pod wrażeniem produktu wydanego spod znaczku MS. Samo PHP pracuje w trybie FastCGI, zainstalowane z paczki Zend Server CE. Czytaj więcej…

PHPLinq, czyli .NET w PHP

Logo PHPLinq

Maarten Balliauw wraz z zespołem developerów wypuścił całkiem niedawno dość intrygującą bibliotekę dla poczciwego PHP, która wprowadza funkcjonalność funkcji LINQ, znanej głównie osobom, które tworzą w C#.  Co ona robi? Najprościej rzecz ujmując zmienia sposób w jaki postrzegamy tablice (i nie tylko), po których dzięki Linq poruszać się w sposób, który przypomina ActiveRecord.

Czytaj więcej…

 Przewiń do góry