Zaliczyłem już większość przedmiotów i coraz wyraźniej widzę, że chyba w sesji będę mógł w końcu odpocząć. Zostały jednak jeszcze dwa projekty do zrobienia, co zajmuje całkiem sporo czasu. Najgorsze jest to, że te projekty nie są specjalnie trudne, po prostu nie mogę się zmusić, żeby popracować dłużej i bardziej produktywnie. W każdym razie cały czas “dłubię” we frameworku Symfony, więc niech nie zdziwi Was kilka kolejnych wpisów na ten sam temat - na pewno kiedyś Wam się przydadzą. ;] Dzisiaj także ze względu na ograniczony czas porada będzie krótka i prosta. Ale już w lutym obiecuję być bardziej produktywny [oczywiście jeśli będę przy komputerze] i dokończyć te wpisy, które cierpliwie czekają jako szkice. Ale do dzieła:

Problem.

Struktura katalogów wygląda następująco: framework zainstalowany jest w drzewie /lib/vendor projektu, a do katalogu głównego zostały skopiowane pliki symfony i symfony.bat z drzewa /lib/vendor/symfony/data/bin, żeby było łatwiej wywołać polecenia obsługi. Zechciałem sobie nieco bardziej ułatwić życie zmieniając nazwę skryptu:
mv symfony.bat sf.bat
jednak docelowy dostęp przez [kropka] [slash] [S] [Tab] nie działał, ze względu na obecność pliku symfony. Zmieniłem więc nazwę głównego skryptu:
mv symfony _symfony
i przerobiłem skrypt batch:

[...]
if "%SCRIPT_DIR%" == "" (
 %PHP_COMMAND% "symfony" %*
) else (
 %PHP_COMMAND% "%SCRIPT_DIR%\symfony" %*
)
[...]

aby wywoływał ten główny ze zmienioną nazwą:

[...]
if "%SCRIPT_DIR%" == "" (
 %PHP_COMMAND% "_symfony" %*
<pre>) else (
 %PHP_COMMAND% "%SCRIPT_DIR%\_symfony" %*
)
[...]

I tutaj pojawił się problem. Polecenie:

./sf.bat generate:module frontend [nazwa]
spowodowało wyświetlenie komunikatu o dosyć ciekawej treści:
You must be in a symfony project directory.
co muszę przyznać, trochę mnie zdziwiło. ;] Naprawienie tego błędu [którego przyczyny pewnie już się co najmniej domyślacie] nie było zbyt trudne:

Rozwiązanie.

Aby błąd nie występował, wymagany jest w głównym katalogu projektu plik o nazwie “symfony”. Jest to jedyne wymaganie, pasuje nawet taki utworzony przez:
touch symfony
i wszystko będzie działało jak poprzednio. Najwyraźniej informacja o tym, czy w danym katalogu znajduje się projekt Symfony, jest opierana na obecności jednego pliku, co moim zdaniem jest mocno średnim rozwiązaniem, ale na razie jestem na tyle zadowolony z jego [tego frameworka] działania, że powstrzymam się od głębszej krytyki. Dodatkowo mogę teraz dalej wywoływać mój “skrócony” skrypt batch poprzez [kropka] [slash] [S] [Tab], ze względu na to, że stworzony plik nie jest wykonywalny, ergo nie zostanie wzięty pod uwagę przy dopełnianiu składni.

Mam nadzieję, że przydadzą Wam się tego typu informacje, bo jak wiadomo, programiści nie potykają się o wielkie problemy, ale zwykle o takie małe “szczególiki”, które potrafią skutecznie uprzykrzyć pracę. ;] Do zobaczenia w kolejnym wpisie!