Silex - łączenie z bazą danych

0

Cześć,
Nie wiem czy ten post powinien się tutaj znajdować, ale chodzi mi głównie o bazę danych, a raczej połączenie się PHP z tą bazą danych.
Dość trywialny problem - mianowicie mając taki kawałek kodu:

https://ghostbin.com/paste/358fs

Nie zostaje połączony z bazą danych. Przyczyny nie znam. Serwer -> XAMPP, działać - działa, Baza danych: MySQL - z kilkoma tabelami.
Teraz kiedy robię var_dump'a -> w odpowiedzi NIC nie dostaję - co oznacza że nie jestem połączony z bazą danych. W kodzie chyba jest wszystko w porządku. Mógłby ktoś pomóc?

Dzięki

1

Jeżeli budujesz Service Provider w Twoim przypadku DataProvider Twoja klasa powinna być implementacją ServiceProviderInterface.
Zanim użyjesz swojej klasy musisz"wstrzyknąć" w konstruktorze instancje Silex\Provider\DoctrineServiceProvider bez tego $this->db będzie zawsze NULL.

Zerknij tutaj:
http://silex.sensiolabs.org/doc/2.0/services.html
http://silex.sensiolabs.org/doc/2.0/providers.html

0

No dodałem taką linijkę kodu:

 use Silex\Provider\DoctrineServiceProvider;

Nie mam pojęcia - czy o to dokładnie Ci chodziło. Niestety z PHP jestem noga. Dopiero się tego uczę - dlatego za bardzo nie rozumiem o co dokładniej chodzi.
Po wykonaniu tej linijki - dalej zwracany jest pusty obiekt przy var_dump'ie.

Na stronach które podałeś - mam bardzo podobnie. Jeszcze wgłębię się w to co jest tam napisane.

Dziękuję za pomoc oraz za wyjaśnienie!

0

Odświeżam temat.
Czy mógłby ktoś mi pomóc z "wstrzyknięciem" do konstruktora danej zależności? Mowa tutaj o poście Vendro :-)

1

http://silex.sensiolabs.org/doc/2.0/providers/doctrine.html

Możesz zrobić to tak:

 $dataProvider = new DataProvider($app['db']);
0

Dodałem tą linijkę kodu - kod teraz wygląda w ten sposób:

https://ghostbin.com/paste/ucpw8

Natomiast dalej var_dump -> wskazuje na null. Już sam nie wiem co jest źle. Linijkę do której wkleiłem ten kod to linijka 20. Ponadto kiedy pomyślałem o wklejeniu tego kodu przed:

 $app->register(new Silex\Provider\DoctrineServiceProvider(),

Dostałem w var_dump'ie odpowiedź taką:

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Identifier "db" is not defined.' in C:\xampp\htdocs\Bazy_danych\vendor\pimple\pimple\lib\Pimple.php:78 Stack trace: #0 C:\xampp\htdocs\Bazy_danych\web\api.php(9): Pimple->offsetGet('db') #1 {main} thrown in C:\xampp\htdocs\Bazy_danych\vendor\pimple\pimple\lib\Pimple.php on line 78
0

Dobra już wszystko działa. Temat do zamknięcia. DZIĘKUJĘ ZA POMOC!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.