2013-11-02 10 views
5

Próbuję od kilku dni, aby skonfigurować i używać Propela 2.0. wersja PHP jest 5.4.4-14 + deb7u5Nie można użyć Propela 2 (klasa nie znaleziona)

Co mam zrobić:

0) Świeże lampa z folderu "test" w katalogu/var/www

1) Composer.json z

{ 
    "require": { 
     "propel/propel": "2.0.*@dev" 
    } 
} 

(również próbował z alfa wskazany na stronie głównej, ale bez powodzenia, do pobrania, ale nie mogę użyć)

2) Jest pobrać wszystkie niezbędne pliki.

3) Mogę uruchomić "vendor/bin/propel" i wyjść po pewnym zielonym tekście.

4) utworzyć schema.xml z kluczy obcych wskazanych w http://propelorm.org/documentation/02-buildtime.html

5) skonfigurować buildtime.cconfiguration

6) można utworzyć sql:build a model: Budowa (I znaleźć bookstore.sql w wygenerowanym sql i klasy w klasach generowanych)

7) NIE MOŻNA wstawiać sql. Uruchomiam sql:insert, brak błędu na ekranie, ale brak wstawienia w bazie danych (połączenie/hasło jest w porządku, podwójnie zaznaczone).

8) Załaduję SQL w bazie danych.

9) utworzyć index.php z tym:

<?php 
// setup the autoloading 
require_once 'vendor/autoload.php'; 
use Propel\Runtime\Propel; 
use Propel\Runtime\Connection\ConnectionManagerSingle; 
$serviceContainer = Propel::getServiceContainer(); 
$serviceContainer->setAdapterClass('bookstore', 'mysql'); 
$manager = new ConnectionManagerSingle(); 
$manager->setConfiguration(array (
    'dsn'  => 'mysql:host=localhost;dbname=my_db_name', 
    'user'  => 'my_db_user', 
    'password' => 's3cr3t', 
)); 
$serviceContainer->setConnectionManager('bookstore', $manager); 

echo 'All ok, for now...'; 

$author = new Author(); 
$author->setFirstName('Jane'); 
$author->setLastName('Austen'); 
$author->save(); 

/* /end of php file */ 

Echo zostanie wydrukowany normalnie, ale następny rząd wyjście skrypt z błędem 500 i Apache zalogować czytam „Class autor nie znaleziono”.

Czy jest jakaś inna konfiguracja do ustawienia poza wskazaniem w przewodniku?

+0

Myślę, że może być brak inicjalizacji Propel. Zobacz sekcję od linku pod warunkiem, że wspomina 'require_once '/ generated-conf/config.php''. – halfer

+0

Och, dziękuję ... Ale porzuciłem pomysł używania napędu i zamieniłem go na frameworka z jego zintegrowanym orm .... Ale dziękuję bardzo! – sineverba

+0

@halfer Nie rozumiem ... – sineverba

Odpowiedz

6

Rozwiązałem podobną sytuację, dodając ją do pliku composer.json, a następnie ponownie instalując.

"autoload": { 
     "classmap": ["generated-classes/"] 
} 
1

Miałem również ten błąd. Najwyraźniej problem polegał na tym, że konfiguracja autoloadowania i wykonanie polecenia php composer.phar dump-autoload naprawiła to.

php composer.phar dump-autoload

0

Jeśli chcesz, aby rozwiązać ten problem, należy połączyć jerrygarcuih tych i awnsers Abaobi Orajiaku użytkownika. Dziękuję wam.

Dodaj folder modele do composer.json

"autoload": { 
     "classmap": ["generated-classes/"] 
} 

Następnie uruchom kompozytora zrzutu autoload '.

Wszystkie wygenerowane klasy powinny należeć do tej samej przestrzeni nazw.

1

Miałem podobny problem. Rozwiązałem go, włączając dokładną ścieżkę do map klas.

"autoload": { 
    "classmap": [ 
     "path/to/generated-classes/", 
     "path/to/generated-classes/Base/", 
     "path/to/generated-classes/Map/" 
    ] 
} 
+0

Czy istnieje sposób rozwiązania tego problemu za pomocą PSR-4? –

Powiązane problemy