Uwaga, blog przeniesiony

Posty na tym blogu już nie będą się pojawiać. Zapraszam gorąco pod nowy adres: blog.grzegorzpawlik.com



Subskrybuj ten blog...

czwartek, 19 czerwca 2008

Jak korzystać z requestAction w CakePHP

Ta bardzo przydatna funkcja nie jest zbyt dobrze opisana w dokumentacji, dlatego pozwolę sobie ją tu opisać.

Object::requestAction(string $url, array $extra);
Służy do łatwego wywoływania funkcji z jednego kontrolera w innym kontrolerze. Sprawa jest prosta, jeżeli wywoływana funkcja potrzebuje jedynie parametrów, które możemy przekazać w url-u (/posts/show/1).
Jednak sprawa komplikuje się, kiedy potrzebna metoda korzysta z danych przesłanych w formularzu. Komplikuje się o tyle, że w wyniku ubogiej dokumentacji, trudno odgadnąć czy jest to możliwe.
Jednak m.in. po to jest parametr $extra. Jeśli wasz kontroler czeka na dane z formularza ['User']['username'] i ['User']['password'], to można je "wcisnąć" do kontrolera poprzez requestAction w następujący sposób:

$data['data'][['User'] = array('username'=> 'ala', 'password' => 'makota');
$this->requestAction('/users/login', $data);

Dzięki tej sztuczce uda Ci się ominąć kilka sytuacji, w których wcześniej pisalibyście osobną funkcję.

Ps. Cake jest pełen takich nieudokumentowanych niespodzianek, które czekają na odkrycie - zachęcam do eksperymentów.
Pps. Szczególnie przydatność requestAction odczujesz, kiedy zaczniesz intensywniej korzystać z pluginów w CakePhp.

piątek, 13 czerwca 2008

Czy każdy może być programistą?

Właśnie teraz, w przerwie w pracy nad komponentem, który miałby automatycznie generować menu w panelu administracyjnym w zależności od zdefiniowanych (w bazie) uprawnień przypomniały mi się słowa jednego z wykładowców UO.
Próbował on odróżnić programistów od normalnych ludzi(sic!). Powiedział, że normalny człowiek, mając za zadanie wykopać 100 metrowy rów weźmie łopatę, tydzień będzie kopał i wykopie. Programista z kolei tydzień będzie myślał, aż wymyśli metodę. Drugi tydzień będzie tą metodę implementował. I po dwóch tygodniach rów będzie wykopany.
W tym momencie na sali zapanowała cisza, może nawet konsternacja, a po chwili doktor dodał "Ha! Ale my teraz takich rowów możemy wykopać 50!".

Kim zatem jest programista? Przede wszystkim jest leniem. Śpieszę dodać: leniem w dobrym tego słowa znaczeniu. Leniem, który nie znosi powtarzać zadania. Leń ów wie do czego służą maszyny, a w szczególności komputery. Jeśli jest coś co poddaje się algorytmizacji - leń-programista nie zrobi tego sam. Leń programista widzi, że wykopanie rowu to:
1. wbić łopatę
2. podnieść łopatę z ziemią
3. odrzucić ziemię w bok
4. sprawdzić, czy już 100 metrów
4a. jeśli nie - powtórz,
4b. jeśli tak - idź po wypłatę

Dlatego śmiem twierdzić, że im bardziej boi się pracy (w sensie "roboty") programista, tym lepiej to o nim świadczy. No i może to nieskromnie zabrzmi, ale drugi dzień pracuję nad tym dynamicznym menu, choć mógłbym w godzinę zrobić to "na sztywno"... i dobrze mi z tym (również dlatego, że przyjdzie następny projekt i nie będzie trzeba tego robić).

Uwaga! blog przeniesiony

Posty na tym blogu już nie będą się pojawiać. Zapraszam gorąco pod nowy adres: blog.grzegorzpawlik.com
Komentowanie artykułów możliwe jest pod nowym adresem.