Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]CRUD
Forum PHP.pl > Forum > PHP > Frameworki
sebusiek
Witam!
Jestem bardzo początkującym użytkownikiem Symfony oraz raczkuje w programowaniu obiektowym
Korzystam w tej chwili z paru stron dla przedszkolaków typu "napisz to a wyjdzie tamto"
Przeglądam w tej chwili Dokumentacje na "trac-symfony...." mój pierwszy project.

Problem mam taki.
Założyłem projekt aplikacje stworzyłem bazę i tabele
i przy poleceniu "php symfony.php propel-generate-crud frontend post Post" pojawia mi się błąd
Fatal error: Cannot redeclare class databasemap in c:\php\propel\runtime\classes\propel\map\DatabaseMap.php on line 47
Proszę o pomoc co z tym zrobić

PS Co ciekawe polecenie działa na sf_sandbox.
Ale przy przeglądaniu strony http://localhost/sf_sandbox/web/frontend_dev.php/post wywala tyle błędów że się w oczach mieni
Czekam na pomoc
Exek
symfony cc i powiedz czy dalej masz błędy. Poza tym możliwe, że schema.yml masz walnięte.

Z której wersji sf korzystasz?
sebusiek
tak dalej mam błędy
Symfony wersja 1.1.1

"schema.yml"

propel:
weblog_post:
_attributes: { phpName: Post }
id:
title: varchar(255)
excerpt: longvarchar
body: longvarchar
created_at:
weblog_comment:
_attributes: { phpName: Comment }
id:
post_id:
author: varchar(255)
email: varchar(255)
body: longvarchar
created_at:

PS z błędami wyświetlanymi z sf_sandbox już sobie poradziełem nie mógł się połączyć z bazą danych [email="user@localhost"]user@localhost[/email] itd; mimo wpisania prawidłowych danych. Problem był w pliku databases.yml
Standartowo sf_sandbox miał słowo kluczowe database i dalej wiadomo. Zmieniłem na dsn: i poszło

W dalszym ciągu nie wiem dlaczego w czystym projekcie Symfony nie działa mi "CRUD" a sandboxie działa może to coś z konfiguracją Symfony questionmark.gifquestionmark.gifquestionmark.gif
Exek
schema.yml zawiera poprawne spacje? wklejaj następnym razem w tag {code}.

Hmm... na pewno przeprowadziłeś poprawną instalację symfony? Bo coś mi się wydaje, że skopiowałeś sam biblioteki do projektu symfony. Robiłeś jakieś symfony freeze, albo coś?

podaj zawartość /config/config.php
sebusiek
Chyba w schema.yml jest wszystko ok. Bo chodziły komendy symfony-propel-build-model ....build-sql ....insert-sql tylko
propel-generate-crud itd... nie poszła

To jest listing config.php z aplikacji
<?php

// symfony directories
$sf_symfony_lib_dir = 'C:\php\pear/symfony';
$sf_symfony_data_dir = 'C:\php\pear\data/symfony';

a to z sf_sandbox

<?php

// symfony directories
$sf_symfony_lib_dir = dirname(__FILE__).'/../lib/symfony';
$sf_symfony_data_dir = dirname(__FILE__).'/../data/symfony';


Jeśli chodzi o instalację przeprowadziłem od nowa począwszy od serwera Apache, php, Mysql'a
Pear'a zrobiłem jakieś go-pear.bat a później dołączyłem kanały symfony i zrobiłem instalkę pear install symfony/symfony

Ale to było wczoraj bo dzisiaj zacząłem się bawić tym pear'em bo też pomyślałem ze coś z tą instalacją może być nie tak.
Niestety tak pewnie zagmatwałem że teraz mało co chodzi.
Ja wogóle coś mało rozumiem z tej instalacji i co tak właściwie jest potrzebne do tego Symfony.
Jakiś Propel, jakiś Creole, phing. Może jest jakaś jedna instalka dla przedszkolaków typu "setup" ale ja takiej nie znalazłem
Dzięki za odpowiedzi i czekam dalej na pomysły
Exek
http://www.symfony.pl/dokumentacja/uruchamianie_symfony

popatrzyłem się na Twoją ścieżkę z pierwszego posta:
c:\php\propel\runtime\classes\propel\map\DatabaseMap.php

Coś dziwne, to się pojawia w projekcie symfony?
Czy przypadkiem nie instalowałeś sam Propela, Creole, etc.?
Symfony po instalacji z pear zawiera wszystkie potrzebne biblioteki, nie musisz sam nic kombinowac.

Popatrz się dokładnie co pokazuje symfony propel-build-model, bo pod windowsem nie ma kolorków w konsoli i błędów za bardzo nie widać.
sebusiek
Rzeczywiście taka linijka "...c:\php\propel\runtime\classes\propel\map\DatabaseMap.php..."
była, bezwzględne odwołanie do katalogu a nie takie np:jak w tym pliku config.php z sandboxa.

I cytuję :Czy przypadkiem nie instalowałeś sam Propela, Creole, etc.?
Jakbyś zgadł. Korzystałem ze strony www.gajdaw.pl myśląc że te biblioteki instaluje się osobno.

Jeśli chodzi o błędy przy propel-buil-model to teraz już nic nie "łazi" bo wczoraj bawiłem się z tym całym pear'em i wszystko się schrzaniło, więc teraz wypada mi zainstalować wszystko od początku ale dla pewności:

Instaluję php z normalnej instalki i żadnego propela i creola nie dodaję czy tak?questionmark.gif
a później robię go-pear.bat i doczepiam kanał symfony i instaluję i nic więcej?questionmark.gif

Dzięki czekam na odpowiedź.
Exek
Dokładnie tak, jakbyś miał jeszcze jakieś problemy to pisz.
sebusiek
A więc zainstalowałem wszystko jeszcze raz korzystając z WAMP'a później pear'a i symfony z kanału
I teraz mam taki błąd przy poleceniu " symfony propel-generate-crud frontend post Post":


Fatal error: Class 'PostForm' not found in D:\wamp\bin\php\php5.2.6\PEAR\symfony\generator\sfAdminGenerator.class.php on line 722

Co ciekawe ten sam błąd pojawia się na komputerze z UBUNTU (oczywiście ścieżki bezwzględne są inne ale to wiadomo plik php ten sam i linia ta sama) Może nie dałem jakiejś komendy albo coś innego ...ale postępuję zgodnie z instruktarzem na stronie

Mamy już więc jakąś regularność.

Czekam na odpowiedź.
Exek
symfony propel-build-model
i
symfony cc

bo chyba o tym zapomniałeś winksmiley.jpg
sebusiek
Zapomniałem ale dalej kicha...
Zauważyłem jednak pewien błąd przy build-model mianowicie

[propel-om] Could not perform XLST transformation. Make sure PHP has been compiled/configured to support XSLT.


ale rozszerzenie w php.ini extension=...xsl.dll mam włączone

może tu jest jakiś myk?questionmark.gif?

Hej Exec jesteś tam masz jakieś pomysły dalej a może ktoś inny się zainteresuje bo chciałbym coś zrobić z tym Symfony a dalej piszę strukturalnie.
Dzięki czekam na jakąś wiadomość
roofy_1
Witaj!!!
sprawdź czy masz na pewno w php-ie włączoną bibliotekę xsl a jeśli nie to porównaj wersje php i ściągnij do właściwej odopiednią *.dll-kę

Pozdr,
sebusiek
Zaktualizowałem php na ubuntu już nie pojawia się błąd związany z biblioteką XSLT ale
ten błąd:
Fatal error: Class 'PostForm' not found in /usr/share/php/symfony/generator/sfAdminGenerator.class.php on line 722
dalej jest. Stworzyłem nowy projekt od początku i dalej to samo. Pokaże może mój schema.xml

<?xml version="1.0" encoding="UTF-8"?>
<database name="propel" defaultIdMethod="native" noxsd="true">
<table name="weblog_post" phpName="Post">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" />
<column name="title" type="varchar" size="255" />
<column name="excerpt" type="longvarchar" />
<column name="body" type="longvarchar" />
<column name="created_at" type="timestamp" />
</table>

<table name="weblog_comment" phpName="Comment">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" />
<column name="post_id" type="integer" required="true" />
<foreign-key foreignTable="weblog_post">
<reference local="post_id" foreign="id"/>
</foreign-key>
<column name="author" type="varchar" size="255" />
<column name="email" type="varchar" size="255" />
<column name="body" type="longvarchar" />
<column name="created_at" type="timestamp" />
</table>
</database>

Model buduje się prawidłowo, tworzy polecenia sql prawidłowo zapisuje do bazy tabele prawidłowo
a tym CRUD'em dalej nic. Ręce opadają

Czekam dalej na pomysły
destroyerr
Moim zdaniem błąd, który otrzymujesz jest bardzo sugestywny ale jeśli masz problem to postaram się pomóc.
Czy użyłeś polecenia
Kod
symfony propel:build-all
czy każde polecenie osobno? Jeśli osobno to wykonaj jeszcze polecenie
Kod
symfony propel:build-forms


Staraj się na przyszłość pliki yaml wrzucać w znacznik code, w obecnej postaci są wyjątkowo nieczytelne.
sebusiek
Sugestywny może tak a nawet na pewno dla Tych co się znają
no jakaś tam klasa nie jest zdefiniowana w jakimś tam pliku w danej linii, tylko że w żadnych tutorialach nie jest opisane co trzeba zrobić jak nie wyjdzie. Tym bardziej że postępuję linijka w linijkę po kroczku za tymi przykładami ze strony trac.symfony...itd.
Np: jak dodać taką klasę i dlaczego. Takich poleceń jak "symfony propel:build-form " nikt nigdzie nie sugerował

W każdym razie jestem o parę kroków do przodu coś tam zaskoczyło tylko teraz wyrzuca ten sam błąd kiedy odwołuję się do strony:
http://localhost/sfdemo/web/frontend_dev.php/post i chcę edytować rekord bądź tworzyć nowy "create"

Fatal error: Class 'PostForm' not found in D:\wamp\www\sfdemo\apps\frontend\modules\post\actions\actions.class.php on line 20

jest tylko inna linijka.

Przeglądałem ten plik actions.class i rzeczywiście jest odwołanie do tej metody czy tam klasy ale to ja mam ją stworzyć? czy jak sugeruje tutorial te metody są gotowe "a priori", a jeżeli są to może w jakichś modułech których nie widać z poziomu tego pliku (ja chyba dostanę oczopląsu).

Czekam i dzięki za zainteresowanie
destroyerr
No więc jest to opisane, tylko Ty korzystasz z wersji 1.1 a tutorial pewnie do wersji 1. Tutaj masz dla wersji 1.1 http://trac.symfony-project.org/browser/do...rst-project.txt
Oczywiście, możesz od razu zrobić build-all i będziesz miał formularze.

Nie wiem czy po zbudowaniu formularzy wyczyściłeś cache. Jeśli tak i nadal nie działa to jest to strzelanie w ciemno, ale zacznij od sprawdzenia czy w ogóle masz tą klase w lib/form.
sebusiek
Rzeczywiście zapomniałem o "symfony cc". Na razie wszystko chodzi
Już podziękowałem za posta.

Widać że moje problemy są wynikiem niedouczenia obiektówki i symfony

Zacznę zawracać głowy mądrzejszym po przeczytaniu dokumentacji

Dziękuje bardzo
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.