<?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>Poetry of Programming</title>
	<atom:link href="http://www.poetryofprogramming.com/pl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.poetryofprogramming.com</link>
	<description>Because coding is art</description>
	<lastBuildDate>Wed, 15 Apr 2009 15:05:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>pl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>10 krótkich odpowiedzi do najczęściej zadawanych pytań na temat Symfony</title>
		<link>http://www.poetryofprogramming.com/pl/symfony/10-short-answers-to-frequently-asked-questions-about-symfony/</link>
		<comments>http://www.poetryofprogramming.com/pl/symfony/10-short-answers-to-frequently-asked-questions-about-symfony/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 14:57:21 +0000</pubDate>
		<dc:creator>Krzysztof Karolczak</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony 1.0]]></category>
		<category><![CDATA[Symfony 1.1]]></category>
		<category><![CDATA[Symfony 1.2]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.poetryofprogramming.com/?p=39</guid>
		<description><![CDATA[

]]></description>
			<content:encoded><![CDATA[</p>
<p><span id="more-39"></span></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/symfony/10-short-answers-to-frequently-asked-questions-about-symfony/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Konfiguracja web serwera tak by zyskał dostęp do katalogu symfony_data/web/sf/</title>
		<link>http://www.poetryofprogramming.com/pl/symfony/setting-the-web-server-to-gain-access-to-symfony_datawebsf-directory/</link>
		<comments>http://www.poetryofprogramming.com/pl/symfony/setting-the-web-server-to-gain-access-to-symfony_datawebsf-directory/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 16:56:29 +0000</pubDate>
		<dc:creator>Krzysztof Karolczak</dc:creator>
				<category><![CDATA[Instalacja]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony 1.0]]></category>
		<category><![CDATA[Symfony 1.1]]></category>
		<category><![CDATA[Symfony 1.2]]></category>
		<category><![CDATA[vhost]]></category>

		<guid isPermaLink="false">http://www.poetryofprogramming.com/?p=25</guid>
		<description><![CDATA[Radość z uruchomienia pierwszego projektu w Symfony bardzo często rozwiewana jest następującym komunikatem wyświetlanym na stronie:
Congratulations! You have successfully created your symfony project.
Project setup successful
This project uses the symfony libraries. If you see no image in this page, you may need to configure your web server so that it gains access to the symfony_data/web/sf/ directory.
Prawidłowa [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><span class="MsgBodyText">Radość z uruchomienia pierwszego projektu w Symfony bardzo często rozwiewana jest następującym komunikatem wyświetlanym na stronie:</span></p>
<p style="padding-left: 30px;"><em>Congratulations! You have successfully created your symfony project.</em></p>
<p style="padding-left: 30px;"><em>Project setup successful</em></p>
<p style="padding-left: 30px;"><em>This project uses the symfony libraries. If you see no image in this page, you may need to configure your web server so that it gains access to the symfony_data/web/sf/ directory.</em></p>
<p style="text-align: justify;">Prawidłowa konfiguracja serwera www wydaje się najbardziej problematyczną częścią instalacji tego frameworka. Całe szczęście nie jest ona tak trudna jak może się wydawać. Ten krótki przewodnik opisuje dwie metody pozwalające szybko i sprawnie ustawić Apacha tak by polubił Symfony <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .<span id="more-25"></span></p>
<p style="text-align: justify;">Zakładam że posiadacie poprawnie zainstalowaną Symfony (jeśli nie <strong><a href="http://www.poetryofprogramming.com/pl/symfony/install-symfony-framework-xp-vista-wamp/" target="_blank">opis instalacji znajduje się tu</a></strong>). Ja osobiście pracuje na serwerze www zainstalowanego z paczki <strong><a href="http://www.wampserver.com/en/" target="_blank">WAMP</a> </strong>(Apache+MySQL+PHP) i taką instalację odzwierciedlają ścieżki, którymi posługuję się w przykładach.</p>
<p><strong>Sposób 1 &#8211; ustawianie virtual hosta</strong></p>
<p><strong></strong></p>
<p style="text-align: justify;">Stworzenie dla każdego swojego projektu w Symfony wirtualnego hosta wydaje się najlepszym sposobem ich zarządzania w fazie tworzenia.</p>
<p style="text-align: justify;">Zatem do dzieła &#8211; najpierw potrzebujemy znaleźć katalog zawierający pliki konfiguracyjne Apacha (u mnie będzie to <em>C:\wamp\bin\apache\apache2.2.6\conf</em>) i otworzyć <em>httpd-vhosts.conf</em> (który jest w podkatalogu <em>extra</em> &#8211; <em>C:\wamp\bin\apache\apache2.2.6\conf\extra</em>). W nim należy usunąć lub zakomentować (dodając &#8216;#&#8217; na początku linijki) wszystkie linie co do których nie mamy pewności co robią <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  &#8211; jeśli nie my je napisaliśmy to są to pewnie tylko przykłady konfiguracji <em>vhostów</em>).</p>
<p class="note" style="text-align: justify;">W Symfony 1.2 (1.1 może też?) przykładowy plik z konfiguracją <em>vhosta</em> jest tworzony dla każdego projektu który wygenerujesz. Można go znaleźć pod <em>config/vhost.sample</em> &#8211; i oczywiście może być on wykorzystany zamiast kodu który znajduje się w przykładzie poniżej.</p>
<p style="text-align: justify;">Zatem na końcu naszego pliku dodajemy następujące linijki (oczywiście to tylko jeden z wielu sposobów konfiguracji &#8211; można znaleźć masę innych przykładów ustawień <em>vhostów</em> &#8211; wszystke są dobre, jeśli tylko działają, prawda? <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ):</p>
<p style="padding-left: 30px;"><em>NameVirtualHost *:80</em></p>
<p style="padding-left: 30px;"><em>Listen 127.0.0.2:80</em></p>
<p style="padding-left: 30px;"><em>&lt;VirtualHost 127.0.0.2:80&gt;</em></p>
<p style="padding-left: 60px;"><em>ServerName your_application_name</em><em><br />
 DocumentRoot &#8220;c:\wamp\www\your_project\web&#8221;<br />
 </em><em>DirectoryIndex index.php<br />
 </em></p>
<p style="padding-left: 60px;"><em>&lt;Directory &#8220;c:\wamp\www\</em><em>your_project\</em><em>web&#8221;&gt;</em></p>
<p style="padding-left: 90px;"><em>AllowOverride All<br />
 Allow from All</em></p>
<p style="padding-left: 60px;"><em>&lt;/Directory&gt;</em></p>
<p style="padding-left: 60px;"><em>Alias /sf &#8220;c:\wamp\bin\php\php5.2.5\PEAR\data\symfony\web\sf&#8221;</em></p>
<p style="padding-left: 60px;"><em>&lt;Directory &#8220;c:\wamp\bin\php\php5.2.5\PEAR\data\symfony\web\sf&#8221;&gt;</em></p>
<p style="padding-left: 90px;"><em>AllowOverride All</em><br />
 <em>Allow from All</em></p>
<p style="padding-left: 60px;"><em>&lt;/Directory&gt;</em></p>
<p style="padding-left: 30px;"><em>&lt;/VirtualHost&gt;</em></p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p style="text-align: justify;">Oczywiście w linijkach <em>&#8221; Alias /sf &#8220;c:\wamp\bin\php\php5.2.5\PEAR\data\symfony\web\sf&#8221;</em> &#8221; i<em> &#8221; </em><em>&lt;Directory &#8220;c:\wamp\bin\php\php5.2.5\PEAR\data\symfony\web\sf&#8221;&gt;</em><em> &#8221; </em>należy zastąpić ścieżki poprawną ścieżką do katalogu symfony data. Analogicznie w linijkach <em>&#8221; </em><em>DocumentRoot &#8220;c:\wamp\www\your_project\web&#8221;</em><em> &#8221; </em>oraz<em> </em><em>&#8221; &lt;Directory &#8220;c:\wamp\www\your_project\web&#8221;&gt; &#8221; </em>należy umieścić ścieżkę do katalogu <em>web</em> swojego projektu.</p>
<p style="text-align: justify;">Powinniśmy też określić własną nazwę wirtualnego hosta umieszczając ją zamiast <em>your_server_name</em> w linijce <em>&#8216;ServerName your_server_name&#8217;</em><em>.</em></p>
<p style="text-align: justify;">Teraz musimy upewnić się, że w pliku <em>httpd.conf</em><em> </em>(główny plik konfiguracyjny Apacha, który u mnie znajduje się w katalogu   <em>C:\wamp\bin\apache\apache2.2.6\conf) </em>linijka &#8216;<em>Include conf/extra/httpd-vhosts.conf</em>&#8216; nie jest zakomentowana (nie ma &#8216;#&#8217; przed nią).</p>
<p style="text-align: justify;">Pozostaje nam już tylko zadeklarować własną domenę lokalnie przez dodanie linijki &#8216;<em>127.0.0.2 </em><em>your_server_name&#8217;</em> (oczywiście zamiast <em>your_server_name</em> wpisz wcześniej zdefiniowaną nazwę wirtualnego hosta) ma końcu pliku <em>host</em> (<em>C:\WINDOWS\system32\drivers\etc</em>) . Linijka &#8216;<em>127.0.0.1 localhost</em>&#8216; powinna być pierwszą linijką pliku <em>host.</em> A BTW &#8211; jego edycja może wymagać uprawnień administratora.</p>
<p style="text-align: justify;">Teraz &#8211; po zresetowaniu Apacha &#8211; jeśli wpiszemy w przeglądarce http://<em>your_server_name</em>/ nasza strona powitalna Symfony powinna zawierać wszystkie obrazki.</p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p><strong>Sposób 2 &#8211; zamrażanie projektu</strong></p>
<p style="text-align: justify;">Możemy otrzymać gotową do wdrożenia paczkę z naszym projektem przez użycie komendy &#8216;<em>freeze</em>&#8216; &#8211; kopiuje ona wszystkie pliki Symfony do naszego projektu, również te &#8220;brakujące&#8221; z katalogu <em>web/sf</em>. Wystarczy w katalogu projektu wykonać polecenie:</p>
<p style="padding-left: 30px;"><em>symfony freeze [c:/sciezka/do/katalogu/symfony/data]</em></p>
<p style="text-align: justify;"><em>Freeze</em> zmienia także niektóre scieżki określone w konfiguracji, więc nasz projekt teraz będzie odwoływał się do bibliotek Symfony umieszczonych w naszym projekcie a nie tych globalnych. Oczywistym minusem tego rozwiązania jest konieczność zrobienia <em>unfreeze</em> (polecenie przeciwne do <em>freeze</em>) i ponownego <em>freeze</em> dla wszystkich swoich projektów po uaktualnieniu Symfony. Mogą się pojawić również problemy ze ścieżkami jeśli nasz projekt nie będzie znajdował się głównym katalogu naszego serwerwa WWW.</p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p><strong>Sposób 3 &#8211; ten głupi <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </strong></p>
<p style="text-align: justify;">Jeśli żadna z powyższych metod nie działa dla Ciebie &#8211; zawsze można spróbować skopiować zawartość katalogu <em>ścieżka_do_symfony_data/web/sf/ </em>do  <em>twój_projekt/web/</em> (zatem w moim wypadku byłoby to przeniesienie plików z katalogu <em>C:\wamp\bin\php\php5.2.5\PEAR\data\symfony\web\sf </em>do <em>C:\wamp\www\twoj_projekt\web</em>). Nie jest to oczywiście najczystsze rozwiązanie &#8211; jednym z miusów jest to, że po updacie Symfony może się okazać, że będziemy musieli przekopiować ten folder ręcznie do wszystkich swoich projektów i pojawią się zapewne problemy ze ścieżkami &#8211; przy korzystaniu z zasobów pluginów lub przy bezwględnym adresowaniu zasobów (choć jeśli zawsze będziemy korzystać z helperów symfony do generowania ścieżek nie powinno to być żadnym problemem).</p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p><!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/symfony/setting-the-web-server-to-gain-access-to-symfony_datawebsf-directory/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Rozwiązanie problemu z &#8220;Maximum execution time exceeded&#8221; w PHP</title>
		<link>http://www.poetryofprogramming.com/pl/php/php-maximum-execution-time-exceeded-error-workaround/</link>
		<comments>http://www.poetryofprogramming.com/pl/php/php-maximum-execution-time-exceeded-error-workaround/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 13:01:03 +0000</pubDate>
		<dc:creator>Krzysztof Karolczak</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.poetryofprogramming.com/uncategorized/php-maximum-execution-time-exceeded-error-workaround/</guid>
		<description><![CDATA[Komunikat krytycznego wyjątku PHP Maximum execution time of 30 seconds exceeded pojawiający się, gdy czas wykonania naszej aplikacji przekroczy 30 sekund, może być bardzo uciążliwy przy odpalaniu &#8220;cięższych&#8221; skryptów na serwerze, np. przy obróbce dużej ilości danych. Błąd ten jest również częstym gościem na ekranach tych, którzy używają serwerów Apacha zainstalowanych na systemach Windowsowych  [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Komunikat krytycznego wyjątku PHP <em>Maximum execution time of 30 seconds exceeded </em>pojawiający się, gdy czas wykonania naszej aplikacji przekroczy 30 sekund, może być bardzo uciążliwy przy odpalaniu &#8220;cięższych&#8221; skryptów na serwerze, np. przy obróbce dużej ilości danych. Błąd ten jest również częstym gościem na ekranach tych, którzy używają serwerów Apacha zainstalowanych na systemach Windowsowych <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  (choćby i przy testowaniu projektów Symfony na domowym PC). Jednakże istnieje kilka szybkich i łatwych sposobów by zaradzić tej niedogodności <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> !<span id="more-12"></span></p>
<p align="justify"><strong>Rozwiązanie 1 &#8211; Gdy mamy dostęp do plików konfiguracyjnych PHP. </strong></p>
<p align="justify">Jeśli możemy wyedytować pliki konfiguracyjne PHP to problem sprowadza się jedynie do zmiany jednej linijki w PHP.ini. Plik ten zanjduje się zazwyczaj w głównym katalogu PHP (np. w moje instalacji PHP WAMP jest on w <em>C:\wamp\bin\php\php5.2.5)</em>, wystarczy go otworzyć i odnaleźć linijkę:</p>
<blockquote><p>max_execution_time = 30</p></blockquote>
<p align="justify">Zmiana domyślnych 30 sekund na powiedzmy 120 powinna rozwiązać problem dla większości skryptów (normalnych skryptów <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Jedyne co nam pozostało to restart serwera www i jesteśmy w domku.</p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p><strong>Rozwiązanie 2 &#8211; Na maszynie zdalnej.</strong></p>
<p align="justify">Jest taka ładna funkcja PHP, która zwie się <span class="methodname"><em><strong><strong>set_time_limit ( </strong></strong>int $sec<strong><strong> )</strong></strong></em>, każde jej wywołanie ustawia licznik timeoutu na żądaną wartość (w sekundach) co oznacza że skrypt będzie mógł działać od teraz przez <em>$sec </em>sekund. Wywołanie <em><strong>set_time_limit(0) </strong></em>znosi ograniczenie czasu wykonania aplikacji.</span></p>
<p align="justify">Niestety funkcja ta nie będzie działać, jeśli PHP na serwerze działa w <em>trybie bezpiecznym</em> (<em>safe mode)</em>. Więcej szczegółów można znaleźć w <a href="http://php.net/set_time_limit" target="_blank">podręczniku PHP</a>.</p>
<p><strong> Timeout i serwery WWW <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p align="justify">Warto wspomnieć iż serwery www również mają określony maksymalny dopuszczalny czas wykonania zapytania, np. dla Apacha domyślna wartość wynosi 300 sekund. 6 minut to więcej niż będzie nam potrzebne w 99,99% przypadków (czy w obecnych czasach wytrzymalibyście czekanie 5 minut aż się otworzy jakaś strona? <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ), ale istnieje oczywiście możliwość zmiany tych ustawień. Wystarczy odszukać linijkę zaczynającą sie od słowa <em>Timeout</em> w pliku <em>httpd-default.conf </em>który znajduje się razem z innym plikami konfiguracyjnymi Apacha (np. u mnie jest to <em>C:\wamp\bin\apache\apache2.2.6\conf\extra</em>).</p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/php/php-maximum-execution-time-exceeded-error-workaround/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Symfoclipse &#8211; Środowisko Programistyczne dla Symfony na Eclipsa</title>
		<link>http://www.poetryofprogramming.com/pl/symfony/symfoclipse-symfony-development-tools-for-eclipse/</link>
		<comments>http://www.poetryofprogramming.com/pl/symfony/symfoclipse-symfony-development-tools-for-eclipse/#comments</comments>
		<pubDate>Mon, 05 May 2008 18:56:11 +0000</pubDate>
		<dc:creator>Krzysztof Karolczak</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[PDT]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony 1.0]]></category>

		<guid isPermaLink="false">http://www.poetryofprogramming.com/symfony/symfoclipse-symfony-development-tools-for-eclipse/</guid>
		<description><![CDATA[Symfoclipse to optymalne środowisko programistyczne dla Symfony Framework bazujące na dobrze znanym i lubianym Eclipse. Łatwość instalacji i użytkowania czyni z niego zdecydowanie najwygodniejsze narzędzie dla tych którzy zaczynają pisać pierwsze projekty w Symfony.
Plug-in ten dodaje dodatkowy widok do Eclipsa (tzw. Symfony view), który rozszerza normalną perspektywę PHP w PDT (PHP Development Tools), umożliwia nam [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://noy.cc/symfoclipse/" target="_blank"><strong>Symfoclipse</strong></a> to optymalne środowisko programistyczne dla Symfony Framework bazujące na dobrze znanym i lubianym Eclipse. Łatwość instalacji i użytkowania czyni z niego zdecydowanie najwygodniejsze narzędzie dla tych którzy zaczynają pisać pierwsze projekty w Symfony.</p>
<p align="justify">Plug-in ten dodaje dodatkowy widok do Eclipsa (tzw. <em>Symfony view</em>), który rozszerza normalną perspektywę PHP w PDT (PHP Development Tools), umożliwia nam szybki dostęp do wszystkich frameworkowych akcji oraz jest wyposażony w edytor YAML przydatny w edycji plików konfiguracyjnych Symfony (no i dodaje super ikonkę &#8217;s&#8217; obok projektów Symfony <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).<span id="more-8"></span></p>
<p class="note" align="justify"><strong>Czym jest Eclipse? </strong>To duży open-sourcowy projekt rozwijany przez prężną społeczność programistów z całego świata i zmierzający do utworzenia &#8220;<em>platformy programistycznej składającej się z elastycznych frameworków i narzędzi do budowania, wdrażania i zarządzania oprogramowaniem na wszystkich etapach życia projektu</em>&#8221; [tł. aut. z oficjalnej strony projektu]. Eclipse cieszy się duża popularnością szczególnie wśród osób piszących w Javie, ale dostępne są takaże rozbudowane IDE dla C/C++, PHP&#8230; i wielu innych.</p>
<p class="important" align="center"><strong>Symfoclipse zdaje się działać poprawnie tylko z Symfony 1.0.X. </strong><br />
 Nadal można go używać z 1.1 lub póżniejszymi ale skorzystamy właściwie tylko z edytora YML.</p>
<p><strong>0. Zdecydowanie przyda się działające Symfony <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></p>
<p>( <a title="Przewodnik instalacyjny Symfony Framework" href="http://www.poetryofprogramming.com/pl/symfony/install-symfony-framework-xp-vista-wamp/"><strong>Przewodnik instalacyjny Symfony Framework</strong></a>. )</p>
<p align="justify"><strong>1a. Pakiet wszystko w jednym (All-In-One Pack = Eclipse + PDT) &#8211; dla tych którzy nie mają zainstalowanego Eclipsa.</strong></p>
<p align="justify">Symfoclipse potrzebuje Eclipsa z zainstalowanym plug-inem PDT. Najłatwiejszym sposobem instalacji całości jest pobranie paczki All-In-One (polecam ściągnięcie Release Build z<strong> <a title="PDT Download Page" href="http://download.eclipse.org/tools/pdt/downloads/" target="_blank">PDT download</a></strong> | <a title="PDT Eclipse Home" href="http://www.eclipse.org/pdt/" target="_blank"><strong>Strona domowa PDT</strong></a> ). Proces instalacyjny jest bezproblemowy &#8211; wystarczy rozpakować zipa. Będzie nam również potrzebna Java SE 5.0+ (zapewne i tak ją macie &#8211; ale może warto pobrać <strong><a href="http://java.sun.com/javase/downloads/index.jsp" target="_blank">nowszą wersję</a> </strong>?).</p>
<p align="justify">Przyzwyczajenie się do pracy w Eclipse może zająć trochę czasu, ale zdecydowanie warto. Nauke ułatwi fakt, iż zostało napisanych wiele przydatnych poradników i manuali dla tego środowiska.</p>
<p><strong>1b. Instalacja PDT &#8211; dla osób z zainstalowanym Eclipsem.</strong></p>
<p align="justify">Jeśli masz działającego Eclipsa możesz zainstalować PDT przy pomocy <em>update manager</em>. Należy przejść do <em>Help <img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" alt="" /> Software Updates <img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" alt="" /> Find and Install</em>. Wybrać opcję &#8220;<em>Search For New 	Feature to Install</em>&#8220;, dodać nową stronę (&#8221;<em>New Remote Site&#8230;&#8221;</em>) z linkiem 	&#8220;<em>http://download.eclipse.org/tools/pdt/updates/</em>&#8221; i kliknąć <em> Next </em>aby rozpocząć ściąganie. W wypadku jakichkolwiek problemów warto zajrzeć do <a href="http://wiki.eclipse.org/IRC_FAQ#How_do_I_install_a_project_with_multiple_dependencies.3F" target="_blank">Eclipse Wiki</a>.</p>
<p><strong>2. Ściągnięcie i zainstalowanie Symfoclipse.</strong></p>
<p align="justify">Proces instalacyjny jest taki sam jak dla większości pluginów Eclipse i wykorzystuje <em>update managera</em>. Należy przejść do <em>Help <img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" alt="" /> Software Updates <img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" alt="" /> Find and Install</em>. Wybrać &#8220;<em>Search For New 	Feature to Install</em>&#8220;, dodać nową stronę &#8220;<em>http://noy.cc/symfoclipse/</em>&#8221; i wybrać <em>Next </em>aby Eclipse zaczął pobierać Symfoclipsa. Po zakończeniu ściągania należy ponownie uruchomić program &#8211; i <em>voila</em>! <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="center"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<h4>Funkcje Symfoclipsa</h4>
<p><strong>Symfony View</strong></p>
<p align="justify">Jest to zmodyfikowany widok <em>PHP Exlporer</em> i może zostać uruchomiony przez wybranie <em>Symfony View</em> w <em>Show View</em><em> </em>(<em>Window </em><em><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" alt="" /></em><em> Show View </em><em><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" alt="" /></em><em> Other</em>). Umożliwa on dostęp do poleceń CLI (wiersz poleceń &#8211; <em>Command Line Interface</em>) frameworka poprzez kliknięcie prawym przyciskiem myszki na katalogi Symfony w listingu projektu.</p>
<p align="justify">Zatem przyszedł czas by utworzyć przykładową aplikację. Po stworzeniu zwykłego projektu PHP (<em>File <img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" alt="" /> New </em><em><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" alt="" /> PHP Project</em>) należy kliknąć jego ikonkę prawym przyciskiem myszki i wybrać &#8220;<em>Init Project</em>&#8221; z samego dołu menu kontekstowego. Rezultat jest dokładnie taki sam jak wpisanie w wierszu poleceń <em>symfony init-project</em>. I jak pewnie zauważyliście wszystkie komunikaty Symfony pojawiają się w konsoli Eclipse (domyślnie na dole obszaru roboczego).</p>
<p align="justify">Po inicjalizacji projektu można go kliknąć ponownie prawym przyciskiem myszki ( na ikonce pojawiła się już super literka &#8216;<em>s</em>&#8216; <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) &#8211; powinniście teraz zobaczyć więcej funkcji Symfony Framework ładnie wylistowanych w menu.</p>
<p><strong>Edytor YAML </strong></p>
<p align="justify">Z Symfoclipse otrzymujemy także edytor YAML, który mimo swej prostoty ma jedną niezwykle ważną funkcję &#8211; wbudowany auto-walidator składni, który okazuje się niezwykle przydatny przy edycji plików konfiguracyjnych Symfony ( które są na ogól siedliskiem życia literówek i błędów wszelkiej maści <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
<p align="justify">Edytor otwiera automatycznie pliki z rozszerzeniem <em>.yml</em> i <em>.yaml</em> z naszych projektów. Jeśli zainstniałaby potrzeba otworzenia pliku o innym rozszerzeniu wystarczy na nim kliknąć prawym klawiszem myszki i wybrać <em>Open with </em><em><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" alt="" /></em><em> Symfoclipse YAML Editor</em></p>
<p align="center"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p><!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/symfony/symfoclipse-symfony-development-tools-for-eclipse/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Tabela konwersji dla px, pt, em i % w CSS</title>
		<link>http://www.poetryofprogramming.com/pl/css/conversion-table-for-px-pt-em-and-in-css/</link>
		<comments>http://www.poetryofprogramming.com/pl/css/conversion-table-for-px-pt-em-and-in-css/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 20:50:02 +0000</pubDate>
		<dc:creator>Krzysztof Karolczak</dc:creator>
				<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.poetryofprogramming.com/css/conversion-table-for-px-pt-em-and-in-css/</guid>
		<description><![CDATA[Szukasz odpowiedzi ile px odpowiada ilu pt? Czy tworząc arkusz styli (lub przerabiając inny  ) zdarzyło Ci się kiedyś &#8220;na oko&#8221; zamieniać wartość w pikselach na wartość w punktach? Tak. Mi też  . Dlatego powstała tabela konwersji.
Oczywiście poniższa tabela służy tylko znalezieniu przybliżonych wartości. Wszystko zależy od przeglądarki, jej ustawień oraz użytej czcionki, [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Szukasz odpowiedzi ile px odpowiada ilu pt? Czy tworząc arkusz styli (lub przerabiając inny <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) zdarzyło Ci się kiedyś &#8220;na oko&#8221; zamieniać wartość w pikselach na wartość w punktach? Tak. Mi też <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Dlatego powstała tabela konwersji.<span id="more-7"></span></p>
<p align="justify">Oczywiście poniższa tabela służy tylko znalezieniu przybliżonych wartości. Wszystko zależy od przeglądarki, jej ustawień oraz użytej czcionki, ale w większości przypadków powinno być to wystarczające. Na ogół dobrze sprawdzającym się przelicznikiem px do pt jest mnożnik 0,75 (oczywiście przy normalnym rozmiarze fontów w przeglądarce).</p>
<p align="justify">Punktem odniesienia dla wartości relatywnych w tabeli tj. procenty i emy jest standardowy font-size 16px (relacja 1em = 16px ustawiana jest przez większość przeglądarek gdy nie ma zadeklarowanego rozmiaru czcionki).</p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p><center></p>
<p align="justify">
<table class="MsoNormalTable" style="width: 65%; border-collapse: collapse;" border="0" cellspacing="0" cellpadding="0" width="65%">
<tbody>
<tr>
<td style="background: #cf4200 none repeat scroll 0% 50%; width: 25%;" width="25%"><strong><span style="font-size: 8.5pt; font-family: Verdana; color: white;"> </span></strong><strong><span style="font-size: 8.5pt; font-family: Verdana; color: white;">Punkty</span></strong></td>
<td style="padding: 1.5pt 3.75pt; background: #cf4200 none repeat scroll 0% 50%; width: 25%;" width="25%"><strong><span style="font-size: 8.5pt; font-family: Verdana; color: white;">Piksele</span></strong></td>
<td style="padding: 1.5pt 3.75pt; background: #cf4200 none repeat scroll 0% 50%; width: 25%;" width="25%"><strong><span style="font-size: 8.5pt; font-family: Verdana; color: white;">Emy</span></strong><strong></strong></td>
<td style="padding: 1.5pt 3.75pt; background: #cf4200 none repeat scroll 0% 50%; width: 25%;" width="25%"><strong><span style="font-size: 8.5pt; font-family: Verdana; color: white;">Procenty</span></strong></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">6pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">8px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">0.5em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">50%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">7pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">9px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">0.55em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">55%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">7.5pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">10px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">0.625em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">62.5%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">8pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">11px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">0.7em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">70%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">9pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">12px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">0.75em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">75%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">10pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">13px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">0.8em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">80%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">10.5pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">14px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">0.875em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">87.5%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">11pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">15px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">0.95em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">95%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #548dd4 none repeat scroll 0% 50%; width: 25%;" width="25%"><strong><span style="font-size: 8.5pt; font-family: Verdana; color: white;">12pt</span></strong></td>
<td style="padding: 1.5pt 3.75pt; background: #548dd4 none repeat scroll 0% 50%; width: 25%;" width="25%"><strong><span style="font-size: 8.5pt; font-family: Verdana; color: white;">16px</span></strong></td>
<td style="padding: 1.5pt 3.75pt; background: #548dd4 none repeat scroll 0% 50%; width: 25%;" width="25%"><strong><span style="font-size: 8.5pt; font-family: Verdana; color: white;">1em</span></strong></td>
<td style="padding: 1.5pt 3.75pt; background: #548dd4 none repeat scroll 0% 50%; width: 25%;" width="25%"><strong><span style="font-size: 8.5pt; font-family: Verdana; color: white;">100%</span></strong></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">13pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">17px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.05em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">105%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">13.5pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">18px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.125em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">112.5%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">14pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">19px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.2em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">120%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">14.5pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">20px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.25em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">125%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">15pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">21px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.3em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">130%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">16pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">22px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.4em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">140%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">17pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">23px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.45em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">145%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">18pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">24px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.5em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">150%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">20pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">26px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.6em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">160%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">22pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">29px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">1.8em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">180%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">24pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">32px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">2em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">200%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">26pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">35px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">2.2em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">220%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">27pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">36px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">2.25em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">225%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">28pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">37px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">2.3em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">230%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">29pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">38px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">2.35em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">235%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">30pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">40px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">2.45em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">245%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">32pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">42px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">2.55em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">255%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">34pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">45px</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">2.75em</span></td>
<td style="padding: 1.5pt 3.75pt; background: white none repeat scroll 0% 50%; width: 25%; text-align: left;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">275%</span></td>
</tr>
<tr>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">36pt</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">48px</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">3em</span></td>
<td style="padding: 1.5pt 3.75pt; background: #eeeeee none repeat scroll 0% 50%; width: 25%;" width="25%"><span style="font-size: 8.5pt; font-family: Verdana; color: black;">300%</span></td>
</tr>
</tbody>
</table>
<p></center></p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/css/conversion-table-for-px-pt-em-and-in-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Instalacja Symfony &#8211; Windows XP / Vista + WAMP</title>
		<link>http://www.poetryofprogramming.com/pl/symfony/install-symfony-framework-xp-vista-wamp/</link>
		<comments>http://www.poetryofprogramming.com/pl/symfony/install-symfony-framework-xp-vista-wamp/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 19:02:11 +0000</pubDate>
		<dc:creator>Krzysztof Karolczak</dc:creator>
				<category><![CDATA[Instalacja]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony 1.0]]></category>
		<category><![CDATA[Symfony 1.1]]></category>
		<category><![CDATA[Symfony 1.2]]></category>

		<guid isPermaLink="false">http://www.poetryofprogramming.com/uncategorized/instalacja-symfonii-windows-xp-wamp/</guid>
		<description><![CDATA[Jak szybko i przyjemnie zainstalować Symfony Framework pod Windowsem? 15 minutowy poradnik, aby błyskawicznie rozpocząć zabawę.
Zakładam, że naszym domyślnym środowiskiem jest Windows XP lub Windows Vista i zaczynamy od zera, tzn. nie mamy jeszcze postawionego i skonfigurowanego żadnego serwera  WWW.

Co nam będzie potrzebne?

 WAMP (2.0 w chwili pisania)
i&#8230; to wszystko  

Z WAMPa już [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Jak szybko i przyjemnie zainstalować Symfony Framework pod Windowsem? 15 minutowy poradnik, aby błyskawicznie rozpocząć zabawę.</p>
<p style="text-align: justify;">Zakładam, że naszym domyślnym środowiskiem jest Windows XP lub Windows Vista i zaczynamy od zera, tzn. nie mamy jeszcze postawionego i skonfigurowanego żadnego serwera  WWW.</p>
<p><span id="more-5"></span></p>
<p align="justify"><strong>Co nam będzie potrzebne?</strong></p>
<ul>
<li> <a title="WAMP" href="http://www.wampserver.com/" target="_blank">WAMP</a> (2.0 w chwili pisania)</li>
<li>i&#8230; to wszystko <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p align="justify">Z WAMPa już zainstalujemy PEARa a potem dzięki niemu Symfony, ale po kolei:</p>
<p align="justify"><strong>Część 1 &#8211; Instalacja WAMPa</strong></p>
<p align="justify"><a href="http://www.wampserver.com/" target="_blank">WAMP</a> to samoinstalująca się paczka zawierająca Apacha, MySQLa i PHP 5 (5.2.8+) &#8211; czyli dokładnie to co potrzebujemy (i dodatkowo miły dodatek w postaci PhpMyAdmina oraz SQLitemanagera). Oczywiście nie jest to jedyna taka dostępna dystrybucja, podobnie działa np. <a title="XAMPP" href="http://www.apachefriends.org/en/xampp.html" target="_blank">XAMPP</a> &#8211; wybór należy do Ciebie. Można też instalować wszystkie komponenty ręcznie&#8230; tylko po co? <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="justify">WAMP powinien automatycznie wypakować swoje pliki (załóżmy że np. pod C:\wamp) i uruchomić się bezproblemowo. <em>Voila!</em> &#8211; działający serwer z domyślną konfiguracją już jest <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . To nie zajęło za dużo czasu, prawda?</p>
<p align="justify">Większość elementów można skonfigurować przez menu skrótów dostępnego po kliknięciu na ikonkę WAMPA.  WAMP &#8220;mówi&#8221; także po polsku &#8211; klikając na ikonę w trayu prawym przyciskiem myszy możemy wybrać rodzimy język z listy language.</p>
<p class="note" align="justify">Jeśli Twój WAMP nie chce poprawnie wystartować twierdząc, np. że port 80 jest już wykorzystywany (a nie masz uruchomionego innego serwera WWW) &#8211; przyczyną może być uruchomiony Skype.  Domyślnie w opcjach Skype (Zaawansowane &gt;&gt; Połączenie) zaznaczone jest &#8220;<em>Użyj portów 80 oraz 443 jako alternatywnych dla połączeń przychodzących</em>&#8221; &#8211; wystarczy odznaczyć tą pozycję.</p>
<p align="justify">Aby Symfony poprawnie działał musimy także uruchomić obsługę PHP-XSL oraz Apache URL Rewrite Module (które domyślnie są wyłączone). Najpierw włączymy moduł Rewrite &#8211; klikamy na ikonkę WAMPa i z menu wybieramy <em>Apache &gt;&gt; Moduły Apache</em> i klikamy na <em>rewrite_module</em> (serwer automatycznie się zrestartuje). Teraz czas na XSL &#8211; postępując analogicznie <em>PHP &gt;&gt;</em> <em>Rozszerzenia PHP</em> i wybieramy <em>php_xsl</em>. Jednak istnieje jeszcze jeden plik <em>php.ini</em>, którego WAMP czasem nie zmienia (nie wiedzieć czemu) &#8211; zatem musimy ręcznie otworzyć <em>C:\wamp\bin\php\php5.2.8\php.ini</em> i usunąć średnik z poniższej linii:</p>
<blockquote><p align="justify">;extension=php_xsl.dll</p>
</blockquote>
<p align="justify">Teraz powinniśmy dodać zmienne środowiskowe by mięć dostęp do PHP i MySQL pod konsolą. Klikamy prawym przyciskiem myszy na <em>Mój komputer </em>i wybieramy <em>Właściwości</em>, następnie w zakładce <em>Zaawansowane</em> klikamy przycisk <em>Zmienne środowiskowe</em>. W <em>zmiennych systemowych </em>do zmiennej <strong>PATH</strong> dodajemy na końcu <em><strong>;C:\wamp\bin\php\php5.2.8;C:\wamp\bin\mysql\mysql5.0.45\bin</strong></em> (ścieżki do naszych plików MySQLa i PHP rozdzielone średnikami).</p>
<p align="justify"><strong>Część 2 &#8211; Instalacja PEARa</strong></p>
<p align="justify"><a title="PEAR" href="http://pear.php.net" target="_blank"><strong>PEAR</strong></a> (<em><strong>P</strong>HP <strong>E</strong>xtension and <strong>A</strong>pplication <strong>R</strong>epository</em>) to system dystrybucji rozszerzeń do języka PHP. Instalator dołączony jest domyślnie, więc i ten etap nie zajmuje dużo czasu.</p>
<p align="justify">Wchodzimy do katalogu PHP w WAMPie (np. C:\wamp\bin\php\php5.2.8\) i odpalamy plik <strong>go-pear.bat</strong>. Odpowiadamy na pytania instalatora by przygotować konfigurację &#8211; domyślna powinna być ok.</p>
<p>W katalogu PHP został dla nas utworzony plik <strong>PEAR_ENV.reg</strong>, który dla wygody doda nam automatycznie odpowiednie zmienne środowiskowe PEARa &#8211; należy go kliknąć dwukrotnie by wstawić odpowiednie dane do rejestru.</p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p><strong>Część 3 &#8211; Instalacja Symfony</strong></p>
<p>Otwieramy konsolę i wpisujemy:</p>
<blockquote><p>&gt; pear channel-discover pear.symfony-project.com</p>
</blockquote>
<p>Jeśli wszystko się powiedzie ujrzymy:</p>
<p style="padding-left: 30px;"><em>Adding Channel &#8220;pear.symfony-project.com&#8221; succeeded<br />
 Discovery of channel &#8220;pear.symfony-project.com&#8221; succeeded </em></p>
<p>Przyszedł wreszcie ten upragniony czas by zainstalować Symfony:</p>
<blockquote><p>&gt; pear install symfony/symfony</p>
</blockquote>
<p>Ściągnięcie paczki nie powinno trwać długo (~2 MB), a PEAR w pełni automatyzuje cały proces.</p>
<p>Aby zweryfikować czy Symfony zostało zainstalowane poprawnie wpiszmy:</p>
<p style="padding-left: 30px;"><em>symfony -V</em></p>
<p>Powinniśmy ujrzeć na ekranie informację zawierającą wersję zainstalowanego przed chwilą frameworka.</p>
<p><strong>Część 4 &#8211; Pierwszy projekt w Symfony</strong></p>
<p>Zakładając, że wszystko do tej pory poszło gładko możemy przejść do rzeczy najprzyjemniejszych &#8211; zainicjować nasz  pierwszy projekt:</p>
<blockquote><p>&gt; cd C:\wamp\www<br />
 &gt; mkdir mojprojekt<br />
 &gt; cd mojprojekt<br />
 &gt; symfony init-project mojprojekt<br />
 &gt; symfony init-app testapp</p>
</blockquote>
<p>Dla Symfony 1.2 poprawnym sposobem zainicjowania projektu jest:</p>
<blockquote><p>&gt; symfony generate:project mojprojekt<br />
 &gt; symfony generate:app &#8212;escaping-strategy=on &#8212;csrf-secret=Unique$ecret testapp</p>
</blockquote>
<p>Przy wywolaniu generate:app użyliśmy także dwóch (opcjonalnych) parametrów związanych z bezpieczeństwem:</p>
<ul>
<li><em>&#8211;escaping-strategy</em> &#8211; Włącza <em>output escaping </em>chroniąc nasz projekt przed <a href="http://en.wikipedia.org/wiki/Cross-site_scripting" target="_blank">atakami XSS</a></li>
<li><em>&#8211;csrf-secret</em> &#8211; Generuje tokeny chroniąc nas przed <a href="http://en.wikipedia.org/wiki/CSRF" target="_blank">atakami CSRF</a></li>
</ul>
<p>Tak, Symfony 1.2 chroni nasze projekty przed dwoma najbardziej rozpowszechnionymi atakami w sieci!</p>
<p><strong>Gratulacje!</strong></p>
<p>Efekt swojej pracy możesz zobaczyć pod <em>http://127.0.0.1/mojprojekt/web/</em></p>
<p><strong>I to byłoby na tyle. Życzę wielu udanych projektów z Symfony w przyszłości <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p><strong>Co dalej?</strong></p>
<ul style="text-align: justify;">
<li><a title="Setting the web server to gain access to symfony_data/web/sf/ directory" href="http://www.poetryofprogramming.com/pl/symfony/setting-the-web-server-to-gain-access-to-symfony_datawebsf-directory/" target="_blank">Zapraszam do przeczytania mojego poradnika na temat <strong>poprawnej konfiguracji Apacha dla projektów Symfony.</strong></a></li>
<li><a title="Symfony Framework" href="http://www.symfony-project.org/" target="_blank">Odwiedzenia oficjalnej strony Symfony i dalszego odkrywania tego frameworka dzięki licznym poradnikom i dobrze napisanej dokumentacji (niestety wciąż bez polskiego tłumaczenia). </a></li>
</ul>
<p align="center"><script type="text/javascript"><!--
google_ad_client = "pub-5856107143683355";
google_ad_slot = "0824560404";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/symfony/install-symfony-framework-xp-vista-wamp/feed/</wfw:commentRss>
		<slash:comments>51</slash:comments>
		</item>
	</channel>
</rss>
