<?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"
	>

<channel>
	<title>Poetry of Programming</title>
	<atom:link href="http://www.poetryofprogramming.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.poetryofprogramming.com</link>
	<description>Bo kod jest sztuką ;)</description>
	<pubDate>Wed, 03 Sep 2008 20:25:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>pl</language>
			<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>Fri, 08 Aug 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[vhost]]></category>

		<category><![CDATA[Symfony]]></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><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>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 ;).<span id="more-25"></span></p>
<p>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 - ustawianie virtual hosta<br />
</strong></p>
<p>Stworzenie dla każdego swojego projektu w Symfony wirtualnego hosta wydaje się najlepszym sposobem ich zarządzania w fazie tworzenia.</p>
<p>Zatem do dzieła - 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> - <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' /> (jeśli nie my je napisaliśmy to są to pewnie tylko przykłady konfiguracji vhostów). I najważniejsze - na końcu naszego pliku dodajemy następujące linijki:</p>
<p><em>NameVirtualHost *:80</em></p>
<p><em>&lt;VirtualHost *:80&gt;<br />
</em><em>ServerName twoja_nazwa<br />
DocumentRoot &#8220;c:/wamp/www/twoj_projekt/web&#8221;</em><em><br />
DirectoryIndex index.php<br />
Alias /sf c:/wamp/bin/php/php5.2.5/PEAR/data/symfony/web/sf</em></p>
<p><em>&lt;Directory &#8220;c:/wamp/www/</em><em>twoj_projekt</em><em>/web&#8221;&gt;<br />
</em><em>Options Indexes FollowSymlinks ExecCGI<br />
AllowOverride All<br />
Order allow,deny<br />
Allow from All<br />
&lt;/Directory&gt;</em></p>
<p><em>&lt;Directory &#8220;c:/wamp/bin/php/php5.2.5/PEAR/data/symfony/web/sf&#8221;&gt;</em><em><br />
Allow from All<br />
&lt;/Directory&gt;</em></p>
<p><em>&lt;/VirtualHost&gt;</em></p>
<p style="text-align: center;"></p>
<p>Oczywiście w linijkach <em>&#8216;Alias /sf c:/wamp/bin/php/php5.2.5/PEAR/data/symfony/web/sf&#8217;</em> i<em> &lt;Directory &#8220;c:/wamp/bin/php/php5.2.5/PEAR/data/symfony/web/sf&#8221;&gt; </em>należy zastąpić ścieżki poprawną ścieżką do symfony data. Analogicznie w linijkach <em>DocumentRoot &#8220;c:/wamp/www/twoj_projekt/web&#8221; </em>oraz<em> </em><em>&lt;Directory &#8220;c:/wamp/www/twoj_projektt/web&#8221;&gt; </em>należy umieścić ścieżkę do katalogu <em>web</em> swojego projektu. Możemy też określi własną nazwę wirtualnego hosta umieszczając ją zamiast <em>twoja_nazwa</em> w linijce <em>&#8216;ServerName your_server_name&#8217;.</em></p>
<p>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>Teraz - po zresetowaniu Apacha - jeśli wpiszemy w przeglądarce http://localhost/ nasza strona powitalna Symfony powinna zawierać wszystkie obrazki.</p>
<p>Ale może być jeszcze lepiej ;). Możemy zadeklarować lokalnie własną &#8220;domenę&#8221; przez dodanie linijki &#8216;<em>127.0.0.1 twoja_nazwa</em>&#8216; do pliku <em>host</em> (<em>C:\WINDOWS\system32\drivers\etc\</em>) . Teraz wpisanie URLa http://twoja_nazwa/ zabierze nas bezpośrednio do strony naszego projektu. Jedyna rzecz o której należy pamiętać to to, że linijka &#8216;<em>127.0.0.1 localhost</em>&#8216; powinna być pierwszą linijką pliku <em>host.</em> A BTW - jego edycja może wymagać uprawnień administratora.</p>
<p style="text-align: center;"></p>
<p><strong>Sposób 2 - ten głupi <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></p>
<p>Jeśli powyższa metoda nie działa - zawsze można spróbować skopiować zawartość <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\your_project\web</em> directory). Nie jest to oczywiście najczystsze rozwiązanie - 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, mogą wystąpić też problemy z <em>zamrażaniem</em> projektów (polecenie <em>symfony freeze</em> kopiuje wszystkie biblioteki Symfony do naszego projektu i przygotowuje go do wrzucenia na serwer produkcyjny). Ale lepsze to niż nic, prawda? <img src='http://www.poetryofprogramming.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: center;"></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>
		</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 :)!<span id="more-12"></span></p>
<p align="justify"><strong>Rozwiązanie 1 - 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 ;)). Jedyne co nam pozostało to restart serwera www i jesteśmy w domku.</p>
<p style="text-align: center;"></p>
<p><strong>Rozwiązanie 2 - 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;"></p>
<p><!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/php/php-maximum-execution-time-exceeded-error-workaround/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symfoclipse - Ś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>

		<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>
<p 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 Symdony (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 href="http://www.poetryofprogramming.com/pl/symfony/install-symfony-framework-xp-vista-wamp/" title="Przewodnik instalacyjny Symfony Framework"><strong>Przewodnik instalacyjny Symfony Framework</strong></a>. )</p>
<p align="justify"><strong>1a. Pakiet wszystko w jednym (All-In-One Pack = Eclipse + PDT) - 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 href="http://download.eclipse.org/tools/pdt/downloads/" title="PDT Download Page" target="_blank">PDT download</a></strong> | <a href="http://www.eclipse.org/pdt/" title="PDT Eclipse Home" target="_blank"><strong>Strona domowa PDT</strong></a> ). Proces instalacyjny jest bezproblemowy - wystarczy rozpakować zipa. Będzie nam również potrzebna Java SE 5.0+ (zapewne i tak ją macie - 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 - 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" /> 	Software Updates <img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" /> 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" /> 	Software Updates <img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" /> 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 - 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"></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" /></em><em> Show View </em><em><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" /></em><em> Other</em>). Umożliwa on dostęp do poleceń CLI (wiersz poleceń - <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" /> New </em><em><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/arrow.gif" /> 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' /> ) - 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ę - 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" /></em><em> Symfoclipse YAML Editor</em></p>
<p align="center"></p>
<p><!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/symfony/symfoclipse-symfony-development-tools-for-eclipse/feed/</wfw:commentRss>
		</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, ale w [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">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.<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;"></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;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/css/conversion-table-for-px-pt-em-and-in-css/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Instalacja Symfony - 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]]></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 align="justify">Jak szybko i przyjemnie zainstalować Symfony Framework pod Windowsem? 15 minutowy poradnik, aby błyskawicznie rozpocząć zabawę.</p>
<p 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/">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 - Instalacja WAMPa</strong></p>
<p align="justify"><a href="http://www.wampserver.com/">WAMP</a> to samoinstalująca się paczka zawierająca Apacha, MySQLa i PHP 5 - czyli dokładnie to co potrzebujemy (i dodatkowo miły dodatek w postaci Phpmyadmina oraz SQLitemanager). 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">XAMPP</a> - 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 wypakować swoje pliki (załóżmy że np. pod C:\wamp) i uruchomić się bezproblemowo. <em>Voila!</em> - działający serwer z domyślną konfiguracją już jest :-). 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 - 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) - 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; - 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 - 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 - 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 nie zmienia (nie wiedzieć czemu) - zatem musimy ręcznie otworzyć <em>C:\wamp\bin\php\php5.2.5\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.5;C:\wamp\bin\mysql\mysql5.0.45\bin</strong></em> (ścieżki do plików MySQLa i PHP rozdzielone średnikami).</p>
<p align="justify"><strong>Część 2 - Instalacja PEARa</strong></p>
<p align="justify"><a title="PEAR" href="http://pear.php.net"><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"><a title="PHP" href="http://pl.wikipedia.org/wiki/PHP"></a> Wchodzimy do katalogu PHP w WAMPie (np. C:\wamp\bin\php\php5.2.5\) i odpalamy plik <strong>go-pear.bat</strong>. Odpowiadamy na pytania instalatora by przygotować konfigurację - domyślna powinna być ok, zatem możemy postępować tak:</p>
<ul>
<li>[Enter] (wartość domyślna) - jeśli chcemy zainstalować PEARa w całym systemie.</li>
<li>[Enter] - jeśli nie chcemy zmieniać układu katalogów.</li>
<li>Y - wyrażamy zgodę na modyfikację <strong>php.ini</strong> (dodaje PEARa do <em>include_path</em>).</li>
<li>I [Enter] dwa razy zakończyć instalację.</li>
</ul>
<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 - należy go kliknąć dwukrotnie by wstawić odpowiednie dane do rejestru.</p>
<p>Warto również skopiować plik <strong>pear.bat</strong> z katalogu PHP do C:\Windows\System32\ dzięki czemu będziemy mieli do niego dostęp z konsoli w każdym miejscu (przy czym należy pamiętać, że po uaktualnieniu PEARa należy go ponownie skopiować ręcznie).</p>
<p style="text-align: center;"></p>
<p><strong>Część 3 - 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><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><strong>Część 4 - 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 - 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><strong>Gratulacje!</strong> Efekt pracy Symfony 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 align="center"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.poetryofprogramming.com/pl/symfony/install-symfony-framework-xp-vista-wamp/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
