Doctrine: problem z command line tool na Windows

Posted by

Ostatnio, gdy uznałem za potrzebne dodanie Doctrine 2 do jednego z projektu, napotkałem na problem z wywołaniem poleceń Doctrine z konsoli. Poniżej opis i rozwiązanie problemu.

Problem dotyczy tylko Windows-a – przynajmniej w moim przypadku i aplikacji, która nie jest oparta na Symfony. Dokumentacja Doctrine 2 podaje(tutaj), że wszystkie dostępne polecenia dostaniemy wpisując:


php vendor/bin/doctrine


Jak się jednak okazuje nie jest to do końca prawda, przynajmniej na windows-ie. Próba wywołania tego polecenia spotka się z taką odpowiedzią:


# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
# Cygwin paths start with /cygdrive/ which will break windows PHP,
# so we need to translate the dir path to windows format. However
# we could be using cygwin PHP which does not require this, so we
# test if the path to PHP starts with /cygdrive/ rather than /usr/bin
if [[ $(which php) == /cygdrive/* ]]; then
dir=$(cygpath -m "$dir");
fi
fi</p>
<p>dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/doctrine" "$@"


To nie jest odpowiedź jaką oczekiwaliśmy. Okazuje się, że musimy użyć innego polecenia:


php vendor/doctrine/orm/bin/doctrine.php


W efekcie czego otrzymamy listę dostępnych poleceń Doctrine’a.

To tyle! Jak widać rozwiązanie problemu jest szybkie i łatwe – to po prostu inna komenda.

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *