<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Splatch's devblog &#187; Mojavi4</title>
	<atom:link href="http://blog.dywicki.pl/category/framework/mojavi4/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dywicki.pl</link>
	<description>Pragmatyzm kontrolowany</description>
	<lastBuildDate>Thu, 01 Dec 2011 15:47:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Mojavi 4. Dlaczego nie?</title>
		<link>http://blog.dywicki.pl/2006/08/30/mojavi-4-dlaczego-nie/</link>
		<comments>http://blog.dywicki.pl/2006/08/30/mojavi-4-dlaczego-nie/#comments</comments>
		<pubDate>Wed, 30 Aug 2006 21:14:57 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Agavi]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Mojavi4]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/2006/08/30/mojavi-4-dlaczego-nie/</guid>
		<description><![CDATA[Od publikacji ostatniej noty parę osób proponowało mi podjęcie prac nad Mojavi 4. Chcę wyjaśnić, dlaczego Mojavi 4 nie będę się zajmował. 1. Nie ma nikogo kto byłby w stanie pomóc mi przy projekcie. Obaj byli developerzy zakończyli swoją przygodę z PHP. Nie ma również żadnej społeczności, która jest w stanie zająć się forum, wyłapywaniem [...]]]></description>
			<content:encoded><![CDATA[<p>Od publikacji ostatniej noty parę osób proponowało mi podjęcie prac nad Mojavi 4. Chcę wyjaśnić, dlaczego Mojavi 4 nie będę się zajmował.</p>
<p>1. Nie ma nikogo kto byłby w stanie pomóc mi przy projekcie. Obaj byli developerzy zakończyli swoją przygodę z <acronym title="Pre-Hypertext Processing">PHP</acronym>. Nie ma również żadnej społeczności, która jest w stanie zająć się forum, wyłapywaniem błędów &#8211; jednym słowem &#8211; to by było to samo co robiłem wcześniej przy własnym frameworku.</p>
<p>2. Są projekty, które być może w tej chwili nie dorównują Mojavi 4, lecz są na tyle dobre, że w przyszłości mogą osiągnąć próg czwórki a nawet go przekroczyć.</p>
<p>3. Podobna sytuacja miała miejsce kiedy Sean Kerr zrezygnował z rozwijania Mojavi 3. Później prace nad czwórką przejął Tyler. Gdybym teraz miał zacząć poprawiać Mojavi 4 wyszłaby piątka, której prawdopodobnie bym nie skończył. Czy ktoś by się zajął pozostawioną wcześniejszą wersją?</p>
<p>4. Nie chcę tworzyć większego projektu w <acronym title="Pre-Hypertext Processing">PHP</acronym>, mocno prawdopodobne, że po miesiącu, dwóch po prostu bym zrezygnował z pisania Mojavi pogarszając i tak już wystarczająco ciężką sytuację.<br />
Projekt, na który zwrócę teraz baczniejszą uwagę to <a href="http://agavi.org">Agavi</a>. Jest w nim sporo znajomych rzeczy z trójki. Wersja 0.11 jest dużym krokiem w stosunku do 0.10, w której były same poprawki. W trunku widać, że developerzy nie poprzestali na poprawkach i postanowili dodać funkcjonalności. Do ciekawszych należą: routes (Symfony wymięka), translates, output types (w połączeniu z routes daje świetne możliwości), view renderers.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2006/08/30/mojavi-4-dlaczego-nie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pożegnanie.</title>
		<link>http://blog.dywicki.pl/2006/08/27/pozegnanie/</link>
		<comments>http://blog.dywicki.pl/2006/08/27/pozegnanie/#comments</comments>
		<pubDate>Sun, 27 Aug 2006 21:14:42 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Mojavi4]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/2006/08/27/pozegnanie/</guid>
		<description><![CDATA[Dzisiejszego dnia chciałem napisać coś o Creole by pokazać, że ten sterownik oferuje ciekawą funkcjonalność, ale nie będzie o tym. To co zmieniło moje zamiary to rozmowa z Tylerem Tomphinsem, osobą prowadzącą od dłuższego czasu projekt Mojavi. Kontakt z Tylerem jest ciężki, ponieważ on mieszka po drugiej stronie globu. Nasze rozmowy do tej pory wyglądały [...]]]></description>
			<content:encoded><![CDATA[<p>Dzisiejszego dnia chciałem napisać coś o Creole by pokazać, że ten sterownik oferuje ciekawą funkcjonalność, ale nie będzie o tym.</p>
<p>To co zmieniło moje zamiary to rozmowa z Tylerem Tomphinsem, osobą prowadzącą od dłuższego czasu projekt Mojavi.</p>
<p>Kontakt z Tylerem jest ciężki, ponieważ on mieszka po drugiej stronie globu. Nasze rozmowy do tej pory wyglądały inaczej, niestety ta, którą zakończyłem przed chwilą zmienia wszystko.</p>
<p>Dowiedziałem się, że Mojavi 4 zostaje zawieszone. Framework, w którym pokładałem ogromne nadzieje, który miał szanse zmienić nieco oblicze aplikacji pisanych w <acronym title="Pre-Hypertext Processing">PHP</acronym> umiera. Można powiedzieć, że historia się powtórzyła, jest to samo co z trójką (mike_mech wykrakał), która została zawieszona dawno, dawno temu. Ówczesny lider projektu &#8211; Sean Kerr zrezygnował z jego prowadzenia na rzecz Tylera..</p>
<p>Od tego czasu wiele się zmieniło. Co najważniejsze, zaczęła powstawać dokumentacja, wszystko szło w dobrą stronę, repozytorium może nie tętniło życiem, ale wszystko szło powoli w dobrym kierunku.</p>
<p>To wszystko się skończyło na utracie danych z serwera Mojavi, który miał miejsce bodajże na początku lipca.<br />
Najlepszy framework <acronym title="Pre-Hypertext Processing">PHP</acronym> który powstał do tej pory. Żal, że to go spotyka. Ciekawe są okoliczności rezygnacji Tylera z prowadzenia Mojavi, w ogóle z <acronym title="Pre-Hypertext Processing">PHP</acronym>. Jakiś czas temu postanowił przyjrzeć się Ruby i Ruby on Rails by wzbogacić projekt. Teraz do Mojavi a tym bardziej do samego <acronym title="Pre-Hypertext Processing">PHP</acronym> Tyler nie ma zamiaru wracać, ponieważ jest oczarowany wyżej wymienionym językiem. W sumie nie dziwię się mu i szanuję jego decyzję.</p>
<p>Szkoda, wielka szkoda projektu, danych, społeczności.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2006/08/27/pozegnanie/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Pierwsze kroki z Mojavi 4</title>
		<link>http://blog.dywicki.pl/2006/05/07/pierwsze-kroki-z-mojavi-4/</link>
		<comments>http://blog.dywicki.pl/2006/05/07/pierwsze-kroki-z-mojavi-4/#comments</comments>
		<pubDate>Sun, 07 May 2006 21:49:14 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Mojavi4]]></category>
		<category><![CDATA[tlumaczenia]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/2006/05/07/pierwsze-kroki-z-mojavi-4/</guid>
		<description><![CDATA[Pierwsze kroki z Mojavi 4 Tradycyjnie już Mojavi jest dość trudnym frameworkiem do opanowania dla początkujących. Wiele razy, podczas rozwiązywania zawiłych problemów które pojawiają się na samym początku padają przekleństwa. By tego uniknąć powstał ten oto artykuł który zakłada, że znasz MVC oraz podstawy Mojavi (wiesz czym jest web framework). Wchodzimy, wprowadzenie By zacząć pisać [...]]]></description>
			<content:encoded><![CDATA[<h3>Pierwsze kroki z Mojavi 4</h3>
<p>Tradycyjnie już Mojavi jest  dość trudnym frameworkiem do opanowania dla początkujących. Wiele razy, podczas rozwiązywania zawiłych problemów które pojawiają się na samym początku padają przekleństwa. By tego uniknąć powstał ten oto artykuł który zakłada, że znasz MVC oraz podstawy Mojavi (wiesz czym jest web framework).</p>
<h3>Wchodzimy, wprowadzenie</h3>
<p>By zacząć pisać aplikacje przy użyciu Mojavi 4 będziesz potrzebował komputer z zainstalowanym  <a href="http://httpd.apache.org/">serverem http</a> oraz <a href="http://php.net/">PHP5</a>. Jeśli masz już działający serwer, będziesz potrzebował <a href="http://subversion.tigris.org/">subversion</a>, by pobrać przy jego pomocy kopię Mojavi na swój serwer.</p>
<h3>Uruchamianie Mojavi 4</h3>
<p>Gratulacje! Jeśli udało Ci się z powodzeniem zainstalować kopię frameworka w katalogu udostępnianym przez Twój serwer, powinieneś uruchomić swoją przeglądarkę i zajrzeć pod adres <a href="http://localhost/source/www/">http://localhost/source/www/</a> by zobaczyć domyślny moduł Mojavi 4!<em>:)</em> Możesz teraz uruchomić kilka przykładów (link &#8216;Examples&#8217;) które są dostarczane razem z domyślnymi modułami Mojavi 4. Możesz również uruchomić testy dostarczone z Mojavi (link &#8216;Tests&#8217;). Domyślne moduły dostarczają także bogactwo kodu, który możesz wygrzebać by zobaczyć jak to działa! Nie mniej w następnej sekcji, przeprowadzimy Cię przez proces tworzenia Twojego pierwszego modułu. Dobrze, zatem stwórzmy nowy Kontroler, Widok, Szablon, i wszystko to z zupełnie innym wyglądem (<em>layoutem</em>).</p>
<h3>Budowanie aplikacji</h3>
<p>By nauczyć się jak zbudować jakąś aplikacje w Mojavi 4, włączając w to <a href="http://trac.mojavi.org/wiki/Mojavi4/Modules">Moduły</a>, <a href="http://trac.mojavi.org/wiki/Mojavi4/Controllers">Kontrolery</a>, <a href="http://trac.mojavi.org/wiki/Mojavi4/Views">Widoki</a> oraz <a href="http://trac.mojavi.org/wiki/Mojavi4/Layouts">Layouty</a> udaj się na stronę <a href="http://trac.mojavi.org/wiki/Mojavi4/YourFirstMojaviApplication">Your First Mojavi Application</a> by przeczytać więcej.</p>
<p>Oryginał <a href="http://trac.mojavi.org/wiki/Mojavi4/GettingStarted">http://trac.mojavi.org/wiki/Mojavi4/GettingStarted</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2006/05/07/pierwsze-kroki-z-mojavi-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Osiągi i marzenia</title>
		<link>http://blog.dywicki.pl/2006/05/06/osiagi-i-marzenia/</link>
		<comments>http://blog.dywicki.pl/2006/05/06/osiagi-i-marzenia/#comments</comments>
		<pubDate>Sat, 06 May 2006 00:44:08 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Mojavi4]]></category>
		<category><![CDATA[tlumaczenia]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/2006/05/06/osiagi-i-marzenia/</guid>
		<description><![CDATA[Mojavi 4 przeszło długą drogę &#8211; od początkowych diagramów uml. Obecnie oferuje pełną oraz elastyczną konfigurację XML, modularną architekturę, komponenty, buforowanie, obsługę datasource&#8217;ów, wstrzykiwanie zależności, walidację oraz wiele, wiele innych. Wszystko to przechodzi na końcu przez lekkie TDD (test driven design) testy sprawdzające. Wsród innych zamiarów bądź zaimplementowanych możliwości/podstawowych aspektów Mojavi 4 jest: Model View [...]]]></description>
			<content:encoded><![CDATA[<p>Mojavi 4 przeszło długą drogę &#8211; od <a href="http://forum.mojavi.org/index.php?showtopic=1236">początkowych diagramów uml</a>. Obecnie oferuje pełną oraz elastyczną konfigurację <acronym title="eXtensible Markup Language">XML</acronym>, modularną architekturę, komponenty, buforowanie, obsługę datasource&#8217;ów, wstrzykiwanie zależności, walidację oraz wiele, wiele innych. Wszystko to przechodzi na końcu przez lekkie  <a href="http://www.lastcraft.com/simple_test.php">TDD (test driven design)</a> testy sprawdzające. Wsród innych zamiarów bądź zaimplementowanych możliwości/podstawowych aspektów Mojavi 4 jest:</p>
<ul>
<li><a class="wiki" href="http://trac.mojavi.org/wiki/Mojavi4/MVC">Model View Controller</a> &#8211; Najważniejsza część architektury, podstawa poprzednich frameworków Mojavi.</li>
<li><a class="missing wiki" rel="nofollow" href="http://trac.mojavi.org/wiki/Mojavi4/Mutliproject">Multi-project support</a> &#8211; Posiadanie różnych projektów działających na tym samym kodzie bazowym.</li>
<li><a class="missing wiki" rel="nofollow" href="http://trac.mojavi.org/wiki/Mojavi4/EndUserFilters">End-user controlled filters</a> &#8211; Zawiera konfigurowalną obsługę wyjątków.</li>
<li><a class="wiki" href="http://trac.mojavi.org/wiki/Mojavi4/GlobalAndForwardFilters">Global and Forward Filters</a></li>
<li><a class="missing wiki" rel="nofollow" href="http://trac.mojavi.org/wiki/Mojavi4/ApplicationControllers">Application Controllers</a> &#8211; Używane do obsługi wielu następujących po sobie stron do skomplikowanych formularzy bądź wizzardów <em>(kreatorów)</em>.</li>
<li><a class="wiki" href="http://trac.mojavi.org/wiki/Mojavi4/Autoloader">Sophisticated autoload support</a> &#8211; bardzo, bardzo przydatny mechanizm do automatczynego dołączania klas/interfejsów, również z Twoich własnych bibliotek!</li>
<li><a class="missing wiki" rel="nofollow" href="http://trac.mojavi.org/wiki/Mojavi4/Validators">Easy Validation?</a> &#8211; Walidacja zawsze jest trudnym elementem do wprowadzenia w aplikacji. Myślimy, że mamy za sobą pracę, która sprawia, że ten częsty i niemiły element staje się łatwy do oprogramowania.</li>
<li><a class="wiki" href="http://trac.mojavi.org/wiki/Mojavi4/Helpers">Helpers</a> &#8211; Pomocnicy są zbiorem szybkich bibliotek do użytku w całym frameworku (częston ich użycie oczyszcza logikę aplikacji).</li>
<li><a class="missing wiki" rel="nofollow" href="http://trac.mojavi.org/wiki/Mojavi4/Renderers">Renderers?</a> &#8211; Wspólny interfejs dla silników szablonów. Renderery umożliwiają  zmiany pomiędzy silnikami w prosty sposób.</li>
<li><a class="missing wiki" rel="nofollow" href="http://trac.mojavi.org/wiki/Mojavi4/Logging">Logger?</a> &#8211; Tak jak wszystko, aplikacje w Mojavi potrzebują logowania!</li>
<li><a class="missing wiki" rel="nofollow" href="http://trac.mojavi.org/wiki/Mojavi4/Datastructures">Datastructures?</a> &#8211; Średniej wielkości zbiór klas, które dostarczają implementacji wspólnych wzorców struktór danych, takich jak stack <em>stos</em>, queue <em>kolejka</em> lub <em>chain</em> łańcuch.</li>
<li><a class="wiki" href="http://trac.mojavi.org/wiki/Mojavi4/ServiceLocator">Service Locator</a> &#8211; Wstrzykiwanie zależności jest gorącym tematem. W skrócie, domyślny Service Locator z Mojavi 4 jest stworzony na bazie wstrzykiwania zależności. Można z niego korzystać w całej aplikacji bez żadnych zobowiązań w kodzie.</li>
<li><a class="wiki" href="http://trac.mojavi.org/wiki/Mojavi4/Containers">Containers</a> &#8211; Wszyscy potrzebujemy kontenerów. <em>;)</em></li>
<li><a class="missing wiki" rel="nofollow" href="http://trac.mojavi.org/wiki/Mojavi4/Module">Modules?</a> &#8211; the Module series classes provide a programmic way to interface with the various pieces of your application. <em>tego nie jestem w stanie przetłumaczyć.</em></li>
<li><a class="missing wiki" rel="nofollow" href="http://trac.mojavi.org/wiki/Mojavi4/Layouts">Easy Layouts?</a> &#8211; layouty umożliwiają stworzenie wspólnego wyglądu i wykorzystanie go na wielu stronach <em>w wielu widokach</em> bez kopiowania kodu.</li>
<li><a class="wiki" href="http://trac.mojavi.org/wiki/Mojavi4/i18n">Internationalization</a> &#8211; Internationalization, otherwise known as i18n, or l10n, is a term used to refer to a process revolving around the end goal of creating an application which can be easily ported to a new audience in terms of content language and data formatting. <em>tego również nie jestem w stanie przetłumaczyć.</em></li>
</ul>
<p>Oryginał <a href="http://trac.mojavi.org/wiki/">http://trac.mojavi.org/wiki/</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2006/05/06/osiagi-i-marzenia/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Czym będzie Mojavi 4</title>
		<link>http://blog.dywicki.pl/2006/05/06/czy-bedzie-mojavi-4/</link>
		<comments>http://blog.dywicki.pl/2006/05/06/czy-bedzie-mojavi-4/#comments</comments>
		<pubDate>Fri, 05 May 2006 23:23:45 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Mojavi4]]></category>
		<category><![CDATA[tlumaczenia]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/2006/05/06/czy-bedzie-mojavi-4/</guid>
		<description><![CDATA[Mojavi 4 jest najnowszą generacją tego projektu, wiodącego frameworka MVC w PHP przez wiele lat. Wydanie te następuje po długiej histori frameworków pisanych wyłącznie przez Seana Kerra. Pod koniec 2005 Sean zrezygnował z prowadzenia Mojavi przekazując swoją dotychczasową funkcję Tylerowi Tompkinsowi, który został głównym architektem Mojavi 4. Mojavi 4 jest bardzo ambitnym projektem, który ma [...]]]></description>
			<content:encoded><![CDATA[<p>Mojavi 4 jest najnowszą generacją tego projektu, wiodącego frameworka MVC w <acronym title="Pre-Hypertext Processing">PHP</acronym> przez wiele lat. Wydanie te następuje po długiej histori frameworków pisanych wyłącznie przez <a href="http://trac.mojavi.org/wiki/People/SeanKerr">Seana Kerra</a>. Pod koniec 2005 Sean zrezygnował z prowadzenia Mojavi przekazując swoją dotychczasową funkcję <a href="http://trac.mojavi.org/wiki/People/TylerTompkins">Tylerowi Tompkinsowi</a>, który został głównym architektem  Mojavi 4.</p>
<p>Mojavi 4 jest bardzo ambitnym projektem, który ma na celu stworzenie dla <acronym title="Pre-Hypertext Processing">PHP</acronym>  odpowiednika tego czym jest jądro linuksa przy tworzeniu systemów operacyjnych. Maksymlna elastyczność, zastosowania lekkie bądź ciężke, delikatne oraz trwałe dzięki zastosowanemu frameworkowi. Domyślnie Mojavi 4 powinno być spójnym frameworkiem który nie zawiera warstwy dostępu do danych (data access layer) , chociaż oczywiście będzie obsługiwać rzeczy takie jak połączenia z bazą, ftp i tym podobne. <em>Czyt<br />
aj &#8211; twórcy Mojavi nie zamierzają tworzyć kolejnego Ado DB tudzież Creole.</em></p>
<p>Oryginał <a href="http://trac.mojavi.org/wiki/">http://trac.mojavi.org/wiki/</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2006/05/06/czy-bedzie-mojavi-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mojavi 4, z bliska.</title>
		<link>http://blog.dywicki.pl/2006/04/25/mojavi-4-z-bliska/</link>
		<comments>http://blog.dywicki.pl/2006/04/25/mojavi-4-z-bliska/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 21:22:08 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Mojavi4]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/2006/04/25/mojavi-4-z-bliska/</guid>
		<description><![CDATA[Tak jak obiecałem informacje na temat zmian w Mojavi 4. Mojavi jest jednym ze starszych frameworków dla PHP. Swoje korzenie ma jeszcze w PHP4 kiedy to powstała pierwsza (na chwilę obecną), ostatnia stabilna wersja – Mojavi 2.0. Po wejściu PHP5 okazało się, że M2 nie jest kompatybilne z nowym interpreterem. Zaczęło powstawać Mojavi 3. Istnieje [...]]]></description>
			<content:encoded><![CDATA[<p>Tak jak obiecałem informacje na temat zmian w Mojavi 4.<br />
Mojavi jest jednym ze starszych frameworków dla <acronym title="Pre-Hypertext Processing">PHP</acronym>. Swoje korzenie ma jeszcze w PHP4 kiedy to powstała pierwsza (na chwilę obecną), ostatnia stabilna wersja – Mojavi 2.0. Po wejściu PHP5 okazało się, że M2 nie jest kompatybilne z nowym interpreterem. Zaczęło powstawać Mojavi 3. Istnieje również Yuma – Mojavi 2 zgodne z PHP5. W pewnym momencie grupa (a właściwie jedyna osoba) tworząca Mojavi zdecydowała, że projekt jest nienajlepszy. Mimo wszystko była to tylko kontynuacja M2, bez wykorzystania możliwości PHP5, oparta na klasach. M3 zostało wstrzymane a Sean Kerr (na forum illusina) zaczął tworzyć Mojavi 4. M3 utkęło w fazie DEV. Mimo wszystko framework jest bardzo stabilny, sam z niego korzystałem kilka razy i nie było problemów. Wszystko czego potrzeba było to tylko kilka komponentów, które można pobrać z sieci (między innymi SmartyView). Aby praca włożona w M3 nie poszła na daremne projekt przejął Tyler Tompkins. Tak powstało Agavi. Agavi oferuje dodatkową funkcjonalność, usuwa niektóre problemy z Mojavi (min. problem z nazwami klas), oferuje również wbudowane komponenty, których brakowało Mojavi:<br />
- SmartyView<br />
- XSLTView<br />
- CreoleDatabase<br />
- PropelDatabase<br />
- AdoDBDatabase<br />
- PDODatabase<br />
- ukończony mechanizm logowania<br />
- zaczątki modelu (na forum Agavi jest do pobrania ActiveRecord rodem z Cake/Rails)<br />
- ReturnArrayConfigHandler<br />
- ConsoleController<br />
- ConsoleRequest<br />
- HTTPSRequest<br />
- CreoleStorage<br />
- wsparcie dla Phinga – taski do tworzenia projektu, modulu, akcji, widoku, unit-testów).<br />
- bodajże DateValidator<br />
- FormPHPView (ma być w krótce usunięty).</p>
<p><span id="more-60"></span>W międzyczasie, kiedy powstawało Agavi pojawił się kolejny projekt, który nadrabia największy brak Mojavi i póki co również Agavi.. dokumentację. Chodzi tutaj oczywiście o Symfony. Znowu dodatkowe komponenty, wbudowane I18n, pełna integracja z Propelem i Phingiem (generowanie akcji na podstawie struktury bazy).</p>
<p>To co mnie jednak najbardziej inspiruje to zmiany w M4, a są one ogromne. Na pierwszy ogień idzie całkowity redesign frameworka, który wg. zapowiedzi autorów ma być na tyle elastyczny by tworzyć w oparciu o niego inne, wyspecjalizowane frameworki. Jak to padło na forum “Framework for frameworks”.</p>
<p>Bardzo dobrym pomysłem w M4 jest Service Locator. Nie jest to co prawda SL który znam z definicji w PoEAA, ale spełnia podobne zadanie i znacznie uelastycznia budowę aplikacji. Wcześniej, gdy tworzyłem I18n dla Agavi musiałem grzebać po kodzie by dodać jego obsługę. Teraz wystarczy dodać do services.xml odpowiednie linijki i mamy już usługę, do której możemy się odwołać poprzez Service Locatora. Jest to swojego rodzaju kontener IoC, który znalazł swoje zastosowanie w projektach takich jak Spring (framework dla aplikacji pisanych w Javie).</p>
<p>Kolejną wielką zmianą, która na pewno wyjdzie projektowi na dobre jest zastosowanie Application Controllerów. Podobny mechanizm jest w Springu i przyznam, że bardzo mi się spodobał. Daje on potężne możliwości oraz ułatwia tworzenie akcji. Teraz nie musimy już się męczyć z tworzeniem formularzy, które chcemy realizować na kilku stronach – mamy od tego Step Application Controllera. Co prawda kolekcja kontrolerów jest jeszcze bardzo skromna (prócz wcześniej wymienionego nie ma innego rozszeżenia ApplicationControllera) ale liczę, że z czasem zacznie ich przybywać. Wreszcie akcje będą ciekawsze. ;)</p>
<p>Totalnie przebudowany został mechanizm obsługujący wywoływanie widoków. Dzięki temu unikniemy problemów z dużą ilością powtarzającego się kodu w bardzo wielu plikach. W Mojavi 3 jeden widok = jedna klasa. W czwórce jeden widok to jedna metoda.</p>
<p>Kolejna nowość to typy widoków. Wcześniej by stworzyć widok, który wyrzucał dane w innym formacie (np generował plik pdf) trzeba było tworzyć kolejną akcję i kolejne klasy widoku. W Mojavi 4 można zmieniać typ outputu przy pomocy przełącznika ctype, który może wędrować również po adresie. Dzięki temu nie ma potrzeby dublowania kodu akcji. W nieznacznym stopniu powtarza się kod widoku. Schemat nazwy pliku to View.class.php. Po kilku chwilach walki udało mi się stworzyć moduł który w bardzo sprawny sposób pobierał fragmenty strony poprzez Ajax. Myślę, że z udostępnianiem danych via JSON dla <acronym title="JavaScript">JS</acronym> nie byłoby również problemu.</p>
<p>Niejako spełnieniem oczekiwań jest wprowadzenie Layout-ów. W M3 elementy dynamiczne wchodzące w skład widoku były ustawiane poprzez setSlot. Gdy trzeba było dodać w całej aplikacji nowy blok konieczne były zmiany we wszystkich widokach. Teraz każda klasa widoku zwraca odpowiedni layout, który w gruncie rzeczy jest odseparowanym fragmentem kodu z informacjami na temat tego jakie komponenty mają być użyte. Teraz tzw. bloki mogą być również oddzielnymi szablonami. Wcześniej każdy blok musiał mieć swoją akcję, obecnie wystarczy odpowiednie wykorzystanie registerComponent.</p>
<p>W czwórce możemy również w obrębie jednej klasy widoku korzystać z różnych rendererów. Wcześniej to przez jaki renderer przechodził szablon było uzależnione od tego z jakiej klasy dziedziczył widok, obecnie każdy widok może korzystać z różniastych klas (vide SmartyRenderer, PHPRenderer etc.) a zatem różne fragmenty stron, jeśli zajdzie taka potrzeba mogą być generowane różnymi technikami.<br />
Reasumując. Mojavi 4 to na pewno krok w dobrą stronę. Framework zatrzymuje to, co było najlepsze w poprzednich wersjach równocześnie dorzucając gro przydatnych nowości, które na pewno umilą tworzenie aplikacji w <acronym title="Pre-Hypertext Processing">PHP</acronym>. Sam obserwuję <acronym title="Subversion">SVN</acronym> z wypiekami na twarzy by wyłapać wszystkie zmiany jakie zachodzą. Mimo, że w <acronym title="Pre-Hypertext Processing">PHP</acronym> w chwili obecnej piszę na prawdę niewiele to nie mogę się doczekać wydania chociażby bety. M4 polecam waszej uwadze.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2006/04/25/mojavi-4-z-bliska/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

