<?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>&#60;?blog &#187; PHP CodeSniffer</title>
	<atom:link href="http://blog.visionsoftware.pl/tag/php-codesniffer/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.visionsoftware.pl</link>
	<description>...nie tylko o programowaniu</description>
	<lastBuildDate>Sun, 23 Mar 2014 19:23:43 +0000</lastBuildDate>
	<language>pl-PL</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Standardy kodowania z PHP_CodeSniffer</title>
		<link>http://blog.visionsoftware.pl/programowanie-php/standardy-kodowania-z-php_codesniffer.html</link>
		<comments>http://blog.visionsoftware.pl/programowanie-php/standardy-kodowania-z-php_codesniffer.html#comments</comments>
		<pubDate>Thu, 28 Jul 2011 20:13:44 +0000</pubDate>
		<dc:creator><![CDATA[Marcin Fliszta]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[PHP CodeSniffer]]></category>
		<category><![CDATA[standardy kodowania]]></category>

		<guid isPermaLink="false">http://blog.visionsoftware.pl/?p=308</guid>
		<description><![CDATA[Pisząc kod w jakimkolwiek języku programowania, dobrze jest stosować określone standardy: jednakowe formatowanie, nazewnictwo zmiennych oraz funkcji, rodzaj komentarzy, sposób dokumentowania i wiele innych. Wybranie jednego schematu szczególnie przydaje się w grupie programistów, dzięki czemu łatwiej nam wspólnie pracować nad kodem. W dbaniu o trzymanie się standardu może nam pomóc PHP_CodeSniffer. Jest to bardzo przydatne narzędzie, które wskaże nam odstępstwa od standardu w naszym kodzie, podobnie jak walidator. Możemy wybrać jeden z kilku dostępnych schematów [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Pisząc kod w jakimkolwiek języku programowania, dobrze jest stosować określone standardy: jednakowe formatowanie, nazewnictwo zmiennych oraz funkcji, rodzaj komentarzy, sposób dokumentowania i wiele innych. Wybranie jednego schematu szczególnie przydaje się w grupie programistów, dzięki czemu łatwiej nam wspólnie pracować nad kodem. W dbaniu o trzymanie się standardu może nam pomóc PHP_CodeSniffer.<span id="more-308"></span></p>
<p>Jest to bardzo przydatne narzędzie, które wskaże nam odstępstwa od standardu w naszym kodzie, podobnie jak walidator. Możemy wybrać jeden z kilku dostępnych schematów (PEAR, Zend, PHPCS, Squiz, MySource) lub stworzyć własny. Oczywiście PHP_CodeSniffer nie pomoże nam w przypadku normalnych błędów programistycznych.</p>
<p>Przykładowe wywołania PHP_CodeSniffer można zobaczyć na poniższym filmiku:</p>
<p><iframe width="540" height="435" src="http://www.youtube.com/embed/Q1tKU5w771s" frameborder="0" allowfullscreen></iframe></p>
<h3>Instalacja</h3>
<p>PHP_CodeSniffer możemy bardzo prosto zainstalować przy użyciu PEAR, korzystając z polecenia:</p>
<pre class="brush: plain; light: true; title: ; notranslate">pear install PHP_CodeSniffer</pre>
<p>Możemy także pobrać narzędzie ze strony projektu i zainstalować je sami. Należy wtedy pamiętać, aby phpcs było dostępne z każdego miejsca (dopisane do ścieżki systemowej), a katalog z bibliotekami PHP był dopisany do include_path.</p>
<h3>Przykłady użycia</h3>
<p>Narzędzie posiada dość duże możliwości konfiguracyjne. W zależności od przekazywanych parametrów możemy zmieniać standardy kodowania, rodzaj wynikowego raportu, pomijać sprawdzanie wybranych plików lub katalogów, eksportować dane do wybranego formatu itd. Poniżej przedstawię tylko wybrane przykłady użycia PHP_CodeSniffer, po bardziej szczegółowe informacje na temat konfiguracji odsyłam do <a href="http://pear.php.net/package/PHP_CodeSniffer/docs">dokumentacji</a>.</p>
<p>Najprostszym sposobem wywołania jest podanie ścieżki do katalogu (lub pojedynczego pliku), który chcemy sprawdzić pod kątem spełniania standardów kodowania:</p>
<pre class="brush: plain; light: true; title: ; notranslate">phpcs /path/to/php/sources</pre>
<p>Jak już wcześniej pisałem, PHP_CodeSniffer obsługuje kilka różnych standardów. Możemy je zmieniać, podając parametr standard w wywołaniu. Jeśli zostanie on pominięty (jak w pierwszym przykładzie), wykorzystany zostanie domyślny, określony w konfiguracji. Jeśli chcemy sprawdzić nasz projekt, a znajdują się w nim zewnętrzne biblioteki, możemy je pominąć używając parametru <code>ignore</code>:</p>
<pre class="brush: plain; light: true; title: ; notranslate">phpcs --standard=ZEND --ignore=directory  path/to/php/sources</pre>
<p>W przypadku, gdy chcemy otrzymać jedynie podsumowania zgodności naszych kodów z obowiązującymi standardami, możemy skorzystać z parametru <code>report=summary</code>. Dzięki temu wyświetlona zostanie tylko liczba błędów oraz ostrzeżeń w naszym projekcie.</p>
<pre class="brush: plain; light: true; title: ; notranslate">phpcs --standard=PEAR --report=summary /path/to/php/sources</pre>
<p>Wyniki naszych raportów możemy także eksportować do różnych formatów, np. XML lub CSV:</p>
<pre class="brush: plain; light: true; title: ; notranslate">
phpcs --report=checkstyle /path/to/code
phpcs --report=csv /path/to/code
</pre>
<h3>Integracja z Eclipse</h3>
<p>Wszyscy, którzy chcą korzystać z zalet PHP_CodeSniffer i używają Eclipse, mogą go łatwo zintegrować z programem. Dzięki temu w trakcie pisania kodu wszystkie nasze odstępstwa od standardu będą oznaczane na bieżąco.</p>
<p>W tym celu musimy na początek zainstalować zestaw narzędzi PHP Tool Integration. Aby to zrobić, należy z menu Eclipse wybrać Help -> Install new software&#8230; i dodać nowe źródło: http://www.phpsrc.org/eclipse/pti/. Po akceptacji licencji i zainstalowaniu dodatków, musimy zrestartować Eclipse.</p>
<p>Następnie należy skonfigurować odpowiednio wtyczkę. Trzeba w tym celu z menu wybrać Window > Preferences i rozwinąć Grupę PHP > PHP Tools > PHP CodeSniffer. W okienku CodeSniffer Standards musimy wybrać domyślny standard i podać lokalizację pliku ruleset.xml z jego definicją (np. &#8230;\CodeSniffer\Standards\Zend).</p>
<p><img src="http://blog.visionsoftware.pl/wp-content/uploads/2011/07/eclipse_php_code_sniffer.gif" alt="Eclipse i PHP CodeSniffer" title="Eclipse i PHP CodeSniffer" width="570" height="320" class="alignnone size-full wp-image-311" /></p>
<p>Jeśli chcemy automatycznie dopasować nasze pliki PHP do określonego standardu, przydatna będzie rozszerzenie <a href="http://en.sourceforge.jp/projects/pdt-tools/releases/">FormatterPrototype</a>. Wystarczy je pobrać i skopiować do katalogu dropins w Eclipse. Następnie z menu możemy wybrać  Window > Preferences i rozwinąć grupę PHP > CodeStyle > Formatter. Dzięki wtyczce opcje zostały rozbudowane o szczegółowe ustawienia formatowania kodu PHP, które możemy dopasować wedle swojego uznania. Od tego momentu podczas programowania będziemy mogli skorzystać z kombinacji klawiszy CTRL + SHIFT + F, a nasz kod zostanie automatycznie sformatowany według naszych ustawień.</p>
<p><img src="http://blog.visionsoftware.pl/wp-content/uploads/2011/07/eclipse_formatter_prototype.gif" alt="Eclipse Formatter Prototype" title="Eclipse Formatter Prototype" width="580" height="410" class="alignnone size-full wp-image-312" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visionsoftware.pl/programowanie-php/standardy-kodowania-z-php_codesniffer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
