Na przestrzeni dwóch tygodni wydano 2 nowe wersje frameworka CodeIgniter 1.6.0 i 1.6.1. O ile pierwsza aktualizacja była dość spora, to druga przynosi niewiele zmian, ale i tak jak na projekt, który wydawał się umierać, taki nagły zryw może zdumiewać.
Z głównych zmian, jakie przyniosły nowe wersje wyróżnić można nową klasę DBForge do manipulacji bazami danych i ich tabel, dodanie nowych przydatnych metod do Active Record (tyle, że nie wiedzieć czemu ten twór przyjmuje taką nazwę - przykładową implementację wzorca Active Record można zobaczyć tu), a także wiele innych zmian, nowych funkcji i poprawek bugów. Pełny opis zmian w ChangeLog.
Czy te zmiany uratują ten framework? Raczej nie. Perspektywa znanej nam z CI elastyczności i lekkości, wzbogacona o nowe możliwości, PHP5, dynamikę rozwoju i inne plusy Kohany przekonuje, że to raczej w tym frameworku drzemie przyszłość. Tym bardziej, że zmiany w CI nie są jakieś rewolucyjne, dodatkowo developerzy nie zapowiadają przejścia na PHP5.
Biorąc to wszystko pod uwagę przechodzę na Kohane, podobnie zresztą czyni sporo dotychczasowych użytkowników CI. W każdym bądź razie do CI zostanie sentyment, sporo w końcu w nim czasu się bawiłem.
PS. Zarejestrowałem bloga na nowo powstałym Blogbox. Jak komuś podoba się mój blog, to proszę pomóc mu dostać się tam poprzez głosowanie :]
Dodatkowo zainspirowany notką założyłem sobie OpenID na myopenid.com oraz dodałem wtyczkę OpenID do Wordpressa także możecie pisać komentarze za pomocą swojego OpenID
Jakiś czas temu stworzyłem na własne potrzeby generator kanałów RSS oraz Atom. Dziś pomyślałem, że z chęcią się skryptem podzielę i wystawię go do oceny. Długo myślałem nad licencją, aż wybrałem GPL. Mimo braku takich zastrzeżeń w treści tej licencji to było by mi bardzo miło, gdyby po ewentualnych modyfikacjach kodu pozostawiony był komentarz o pierwotnej wersji aplikacji.
Skrypt działa jedynie w PHP5 z rozszerzeniem DOM. Kod generowany przez mój skrypt w pełni się waliduje, zarówno dla RSS jak i Atomu.
23.01.2008 - wersja 1.1 - dodane wyjątki, metoda display i angielskie komentarze.
Przykład wykorzystania:
PHP:
-
try {
-
include('FeedGenerator.php');
-
$feeds=new FeedGenerator;
-
$feeds->setGenerator(new RSSGenerator); # or AtomGenerator
-
$feeds->setAuthor('mat.wojcik@gmail.com (MatheW Wojcik)');
-
$feeds->setTitle('Example Site');
-
$feeds->setChannelLink('http://example.com/rss/');
-
$feeds->setLink('http://example.com');
-
$feeds->setDescription('Description of channel');
-
$feeds->setID('http://example.com/rss/');
-
-
$feeds->addItem(new FeedItem('http://example.com/news/1', 'Example news', 'http://example.com/news/1', '<p>Description of news</p>'));
-
$feeds->addItem(new FeedItem('http://example.com/news/2', 'Example news', 'http://example.com/news/2', '<p>Description of news</p>'));
-
-
$feeds->display();
-
}
-
catch(FeedGeneratorException $e){
-
echo 'Error: '.
$e->
getMessage();
-
}
Pokaż cały kod
Kod można pobrać stąd.
Dostępna jest również dokumentacja.
Znalezione błędy proszę zgłaszać na maila mat.wojcik@gmail.com. Innego rodzaju opinie proszę zamieszczać w komentarzach pod postem
Na początku standardowa, książkowa definicja serializacji (oczywiście z Wikipedii):
Serializacja – w programowaniu komputerów proces przekształcania obiektów, tj. instancji określonych klas, do postaci szeregowej, czyli w strumień bajtów, z zachowaniem aktualnego stanu obiektu. Serializowany obiekt może zostać utrwalony w pliku dyskowym, przesłany do innego procesu lub innego komputera poprzez sieć. Procesem odwrotnym do serializacji jest deserializacja. Proces ten polega na odczytaniu wcześniej zapisanego strumienia danych i odtworzeniu na tej podstawie obiektu klasy wraz z jego stanem bezpośrednio sprzed serializacji.
Serializacja jest bardzo przydatna - dzięki niej możemy zapisać stan obiektu, tablicy czy innej zmiennej do specjalnego ciagu , a następnie przykładowo do bazy danych, czy pliku, lub nawet sesji - a w przyszłości z ów zmiennej skorzystać, co przydaje się np. przy cachowaniu.
Continue reading "Serializacja w PHP"
Na początku wypada wyjaśnić co to są te tytułowe wzorce projektowe. Otóż wzorzec projektowy (z ang. design pattern) to rozpowszechnione w społeczności programistów danego języka (bądź ogólnie programistów) rozwiązanie powszechnego problemu, sytuacji, z którą możemy się spotkać w czasie projektowania aplikacji. Wzorzec określa dany problem, prezentując jedno, lub więcej jego rozwiązanie.
Stosowanie wzorców tworzy kod znacznie czytelniejszym, przejrzystszym, łatwiejszym do modyfikacji zarówno przez siebie, jak i innego programistę, który miałby za zadanie rozwijać projekt. Dzięki nim nie jesteśmy zmuszani wynajdować na nowo koła i samodzielnie rozwiązywać postawionego przed nami zadania, poprzez to, że wzorce są powszechnie dostępne chociażby w takim serwisie jak phppatterns.com.
Continue reading "Wzorce Projektowe"
W poprzedniej notce przedstawiłem prawdziwy kombajn do webdevelopingu – potężny edytor Eclipse. Tym razem chcę napisać parę praktycznych rad przydatnych przy korzystaniu z tej aplikacji, by nasza obsługa Eclipse była jeszcze wygodniejsza.
Continue reading "Eclipse - porady"