Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Nie widzi polecenia propel
Forum PHP.pl > Forum > PHP > Frameworki
Max Damage
Cześć, zainstalowałem sobie symfony i stworzyłem projekt, schemat a teraz chce wygenerować sql ze schematu. Piszę więc:
php symfony propel:build-sql

Po czym wypisuje mi:
There are no tasks defined in the "propel" namespace.

Wyszukałem w sieci, aby zmienić linijkę w ProjectConfiguration.class.php na taką:
$this->enableAllPluginsExcept(array('sfDoctrinePlugin'));

Ale to nie pomaga. Nadal wyświetla to samo.
Korzystam z tego poradnika, mam wersje 1.4.1
wiewiorek
bo czytasz tutorial dla symfony 1.2 exclamation.gif biggrin.gif

  1. php symfony propel:build --sql
  2.  
Max Damage
Fakt, w 1.4 polecenie jest faktycznie nieco inne.
Zresztą teraz zauważyłem że chyba pominąłem polecenie:
php symfony propel:build-schema

Chociaż w sumie już nie wiem, robię to pierwszy raz i trochę się gubię.
Ale to nie zmienia faktu że nadal nie widzi tego polecenia.
wiewiorek
  1. php symfony doctrine:build-schema


Tworzy schemat na podstawie istniejacej bazy, nie nalezy uzywac tego polecenia - przynajmniej w symfony 1.2 z zainstalowanym sfGuardPlugin tworzylo pliki modeli sfGuardPlugin tam gdzie inne modele zamiast w oddzielnym folderze, tzn. po zainstalowaniu sfGuardPlugin byly wygenerowane modele w sfGuardPlugin w oddzielnym folderze, a po zbudowaniu schematu te same pliki byly tworzone w miejsce gdzie inne modele, co bylo bez sensu i potem przy tworzeniu zapytan byly rozne cuda i bledy.

Wydajesz polecenie:
  1. php symfony propel:build --all --no-confirmation


To ci zbuduje modele, formularze itd. - wszystko co trzeba na podstawie stworzonego przez ciebie schematu.


Poza tym polecam Doctrine, w Symfony 2 Propel zostanie najprawdopodobniej calkowicie usuniety.
Max Damage
Dzięki za wyjaśnienie.
Polecenie z propel nadal nie działa, ale dobra może być doctrine, póki co wszystko mi jedno. Wpisałem tak:
php symfony doctrine:build --all --no-confirmation

Wypisuje mi tak:
>> doctrine Dropping "doctrine" database
>> doctrine Creating "all" environment "doctrine" database
>> doctrine generating model classes
>> file+ C:\Documents and Settings\Rafa│...\Temp/doctrine_schema_92146.yml
No yml schema found in C:\Documents and Settings\Rafa│\Ustawienia lokalne\Temp/doctrine_schema_92146.yml

Przy czym plik doctrine_schema_92146.yml powstaje, tyle że jego zawartość to: { }
Kolejne polecenie i:
php symfony doctrine:insert-sql
>> doctrine created tables successfully
You must pass a valid path to a directory containing Doctrine models

Niby frameworki mają ułatwiać pisanie stron, ale ten póki co to jest nieźle zakręcony. Najpierw nie mogłem zainstalować pakietu pear z wampa, potem się chwilowo zaciąłem na zmiennych środowiskowych i ściągnięciu symfony, a teraz jeszcze baza danych. A ja się nie tak dawno dziwiłem że kohana wymaga ode mnie oprócz instalacji, grzebania w htaccess.
wiewiorek
Ale jak to ten plik powstaje ? Gdzie ci on powstaje ?
Powinien byc plik schema.yml.

Insert SQL juz nie wykonuj, bo to polecenie build all ma to w sobie.
Pokaz zawartosc swego pliku schema.yml.
Max Damage
Zawartość pliku schema.yml jest taka jak na stronie http://www.symfony-project.org/jobeet/1_4/Doctrine/en/03
Zawartość wkleiłem do config/doctrine/schema.yml
A plik powstaje w C:\Documents and Settings\Rafał\Ustawienia lokalne\Temp
destroyerr
@Max Damage jeśli możesz to pokaż nam Twój plik: ProjectConfiguration.class.php. Coś jest nie tak, mimo, że wyłączyłeś plugin sfDoctrinePlugin on nadal działa, a nie działa Propel.

@wiewiorek przepraszam, ale mam wrażenie, że wprowadziłeś autora w błąd. Napisałeś mu aby skorzystał z polecenia z przestrzeni Doctrine, a autor zaznaczył, że korzysta z Propela. Nie ma też znaczenia czy tutorial jest dla wersji 1.2 czy 1.4, dla obydwu istnieją te polecenia.
Co do Symfony 2 i Propela, było to powiedziane zanim Propel zaczął być reanimowany. Poza tym w Symfony 2 i tak będzie wykorzystane Doctrine 2, więc wybór teraz ma niewielkie znaczenie na przyszłość.
Max Damage
Faktycznie funkcja disablePlugins wyrzucała mi wyjątek na stronie. Ściągnąłem jeszcze raz symfony, tym razem nie za pomocą pear, a z oficjalnej strony, wersję 1.2. Zrobiłem jeszcze raz wszystko po kolei i zadziałało. Trochę dziwna sprawa, bo mam wrażenie że poza nieco inaczej brzmiącymi poleceniami do konfiguracji wszystko zrobiłem tak samo. Dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.