Sqlite nie koniecznie jest dobrą bazą produkcyjną dla tworzonych aplikacji internetowych. Jednak podczas ich tworzenia powinna nadać się idealnie. Tym bardziej, jeśli nie chcemy naszej maszyny developerskiej obarczać dodatkowymi procesami, czy też pilnować włączania/wyłączania serwerów bazy danych, sqlite nada się idealnie.
Recently, I thought, that it would be great to sort by default tags from fzTagPlugin by weight anywhere. So I started to look, as I remembered to read a while ago about an option that can be set on relations. I finally found it but... it's not suitable for many-to-many relations, which is used for tags.
Nowa wersja symfony (1.4.7) ujrzała światło dzienne wczoraj. Nowa wersja zawiera głównie poprawki, jedno usprawnienie, oraz nową wersję doctrine (1.2.3).
Czasem zdarza się, że chcielibyśmy pobrać z bazy danych elementy z określonego zbioru, a także je posortować według kolejności, w jakiej w tym zbiorze się znajdują. Samo zadanie skomplikowane nie jest, aczkolwiek nie jest również takie proste. Poniżej zaprezentuję podejście do problemu, oraz pułapki, które mogą nas spotkać podczas rozwiązywania tego problemu.
Podczas pierwszego kontaktu z symfony i doctrine, nie zdawałem sobie sprawy z ułatwień oferowanych przez behavioury. Sluggable był z początku swego rodzaju magią, a ja lubię wiedzieć, jakie kółka zębate wprawiają machinę w ruch. Kwiestię właściciela, który stworzył dany obiekt, rozwiązywałem tam, gdzie obiekt był tworzony, w każdej akcji osobno.
W tygodniu pojawiła się nowa wersja pluginu sfDoctrineGuardPlugin. Nie przywiązywałem do tego większej wagi, ze względu na changelog, który informował tylko o poprawce generowania kluczy "pamiętaj mnie" (ang. Remember Me).
Od wersji 1.3.0 pluginu sfForkedDoctrineApply nastąpi zmiana modelu dziedziczenia doctrine modelu profilu, z simple na column_aggregation.
Migracje doctrinowe są narzędziem, które ma nam ułatwić wersjonowanie bazy danych. Dzięki nim można po zmianie schematu zmienić zarówno bazę na maszynie developerskiej, a później powtórzyć zmiany na produkcyjnej. Ale to narzędzie ma tylko ułatwić, nie wyręczyć. Wygeneruje klasy migracyjne ale na z góry określonych zasadach. Najpierw operacje na tabelach, później klucze i indeksy:
Niejednokrotnie tworząc bazę danych w MySQL, nie trudno nie zauważyć, iż w świeżej, nieskonfigurowanej instalacji tego systemu zarządzania bazą danych, domyślnym typem kodowania nie jest utf8 tylko cp1252/latin1_swedish.
Przy okazji przenoszenia dmTagPlugin z powrotem do korzeni Diema, do symfony, przypomniała mi się jedna rzecz, którą warto poruszyć. Dotyczy ona tworzenia behavioura i obsługi pól modelu wprowadzanych przez szablon behavioura do modelu otrzymującego naszego behavioura.