Kohana i DB

Ostatnio odkrywam na nowo ten świetny framework php jakim jest Kohana. Mimo wszystko lepiej najpierw dobrze poznać KISS MVC by dobrze poczuć tę architekturę, a dopiero później, jak już się opracuje listę rzeczy, które mogłyby się przy pracy przydać, przesiąść się na coś nieco bardziej zaawansowanego. I co zawiera właśnie te rzeczy, których nam brakowało :)

To jak wyglądała przesiadka i jak się pisze w tym frameworku pozostawię sobie na inny wpis, albo zestaw wpisów (bo już mam kilka pomysłów na ciekawą treść :)) Dziś jednak będzie o czymś innym, mianowicie o absolutnej błahostce, przez którą można stracić kilka znaczących godzin w tworzeniu własnego projektu na Kohanie właśnie.

O co chodzi? Jeśli tworzysz sobie tabele i całą strukturę bazy danych przez phpMyAdmina lub też tylko odpalasz w nim skrypt sql, który tworzy strukturę to jesteś zdany (z małym wyjątkiem) na kodowanie domyślne w phpMyAdminie. Jest nim latin1. Zawsze. Mimo iż w tworzonej bazie ustawisz obydwa systemy porównań na utf8 to tworzone tabele i tak będą kodowane w latin1. Nie byłoby generalnie problemu większego, gdyby nie fakt, że Kohana działa całkowicie w Unicodzie. W przypadku łagodniejszym – zamiast polskich znaczków w bazie będziesz miał znaki zapytania. W gorszym – internale na serwie testowym, które trochę trudno diagnozować.

A więc wniosek i morał z tego taki:

Zawsze dbaj o to by wszystko co możliwe w Twojej bazie danych było ustawione na utf8!

Najłatwiej jest dodawać do definicji tabelki w sql coś takiego:

CREATE TABLE IF NOT EXISTS `NAZWA_TABELKI` ( .... ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_ci ;  

*Jedna głupia linijka, a ile problemów :) *