Nerdblog.pl - Command line dla Kohana 3.x

Command line dla Kohana 3.x

Dodano: 13.07.2011

Podczas testowania jakiegoś projektu zapewne wielokrotnie zdarzało wam się wkurzać, że nie możecie szybko i sprawnie przetestować metod w projekcie. Jakaś nowa libka, algorytm i zaraz kombinowanie, wrzucanie do osobnego pliku lub pisanie testów tylko po to, żeby sprawdzić czy dobrze zrobiliśmy regexp.

A gdyby tak... mieć interfejs CLI do takich zabaw? Taki interaktywny? Hmm?

Mając ten sam problem postanowiłem znaleźć rozwiązanie. Facebookowi goście odwalili kawał dobrej roboty pisząc phpsh - narzędzie do CLI dla PHP z autodopełnianiem (ctags), zwracaniem wyników itd. Świetna sprawa ;)

Jedyne co trzeba zrobić to doprawić go, żeby działał poprawnie z Kohaną. Jak? Bardzo łatwo - cwaniaki wymyślili przełącznik -c (codebase), który pozwala na ustawienie sobie domyślnego środowiska. Ale najpierw zainstalujmy phpsh: pobieramy archiwum w zip lub tar.gz, rozpakowujemy do wolnego katalogu i odpalamy spod roota:

python setup.py build
python setup.py install

Następnie edytujemy plik /etc/phpsh/rc.php i dopisujemy dodatkowego case:

case 'kohana':
  exec("ctags -a -R *"); // automatycznie generuje podpowiadanie składni
  define("SUPPRESS_REQUEST", TRUE); // wyłącza domyślną próbę odpalenia kontrolera
  require("index.php"); // łapie index.php relatywny do naszej ścieżki
  ob_end_clean(); // wyłącza buforowanie - inaczej nic byśmy nie dostali
  break;

Żeby skorzystać z tego cuda wchodzimy pod konsolą do dowolnego katalogu z projektem i odpalamy:

phpsh -c kohana

Voila!

Niestety rzeczywistość nie jest taka piękna i podpowiadanie składni działa co najmniej kiepsko. CTags od którejś wersji stosuje bardzo kiepski parser do PHP i nie da się z tym za bardzo nic zrobić poza patchowaniem programu (od 2009 nie doczekaliśmy się nowszej wersji). Jeśli wymyślę coś genialnego, prawdopodobnie powstanie o tym notka, chwilowo - wracam do pracy :)

8 komentarzy

Coś do PHP napisane w Pythonie, jakbym był złośliwy to bym powiedział, że źle to świadczy o PHP :>

13.07.2011, 17:57

Całe szczęście więc, że nie jesteś złośliwy.

13.07.2011, 17:58


crackcomm

Ja bym po prostu, znowu, zaznaczył, że PHP to język webowy...

14.07.2011, 09:00

Serio? A php-qt, php-gtk..? ;)

14.07.2011, 11:53

@pecet - to jak Catalyst dla Perla.

15.07.2011, 15:10

Podczas testowania jakiegoś projektu zapewne wielokrotnie zdarzało wam się wkurzać, że nie możecie szybko i sprawnie przetestować metod w projekcie.

Nie, używaliśmy do tego jakiegoś frameworka do testów albo w skrajnych wypadkach rails console :> Oh wait...

16.07.2011, 18:35

Przecież jest PHP-Unit...

16.07.2011, 18:39


shfx

@pecet który jest upierdliwy jak komar w nocy... ale jest ;)

19.07.2011, 11:57

Podczas komentowania pamiętaj o zachowaniu zasad interpunkcji i ortografii.

Przed dodaniem swojego komentarza przeczytaj dyskusję znajdującą się powyżej. Być może ktoś już napisał to co chcesz powiedzieć lub zostało to wyjaśnione - zadawanie tych samych pytań lub krytykowanie już wyjaśnionych rzeczy jest w złym smaku i niszczy kulturę dyskusji.

Komentarze mają włączony Markdown