login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Symfony2] Gebruiken maken van reeds bestaande PHP code (library)

Offline Martijn2008 - 04/05/2013 13:03
Avatar van Martijn2008PHP beginner Hallo allemaal,

Ik wil de Google API gebruiken in mijn Symfony2 project. Ik heb de volgende library gevonden.

Mijn vraag is, hoe zorg ik ervoor dat ik deze library in mijn Symfony2 project kan gebruiken?
Daarbij vraag ik me af, hoe blijft de code up-to-date? Kan ik composer daarvoor gebruiken?

Alvast bedankt!

Martijn

8 antwoorden

Gesponsorde links
Offline WouterJ - 04/05/2013 13:25
Avatar van WouterJ HTML gevorderde Je kan elke PHP class gewoon in Symfony2 gebruiken.

Vaak kun je voor bekende PHP libraries wel een bundle vinden. Deze zorgen dan voor wat extra dingen, bijv. bijbehorende services en Twig extensies.

Laten we eerst eens kijken of er een bundle bestaat. Want als er een bundle bestaat hoeven we ons geen zorgen te maken over het inladen van de library, aangezien de bundle dat al doet.
Een simpele zoekopdracht op knpbundles levert ons aardig wat bundles op: http://knpbundles.com/search?q=google+maps
Nu heeft knpbundles een punten systeem waardoor je makkelijk kan zien welke bundle goed is. Na wat kijken springt deze eruit: http://knpbundles.com/egeloen/IvoryGoogleMapBundle Helaas zien we dat die niet geschrikt is voor ons, omdat het over een andere google maps api gaat.
Dan zien we: http://knpbundles.com/antimattr/GoogleBundle Ook veel punten en dit lijkt wel te doen wat we willen => Documentatie lezen (!) en installeren dus!
Bedankt door: Martijn2008
Offline Martijn2008 - 04/05/2013 13:34
Avatar van Martijn2008 PHP beginner De bundle die je adviseert ziet er inderdaad cool uit, echter wil ik events kunnen plaatsen in de Google Calendar, daarvoor bied die bundle helaas geen ondersteuning.
Offline WouterJ - 04/05/2013 16:12 (laatste wijziging 04/05/2013 16:13)
Avatar van WouterJ HTML gevorderde Nou, dan ga je weer opzoek naar een bundle die dat ook support of misschien wel alleen support en dan meerdere bundles inladen voor meerdere api's
Offline Martijn2008 - 04/05/2013 19:49
Avatar van Martijn2008 PHP beginner Great, voor de Google Calendar heb ik helaas geen API bundles gevonden.
In je vorige post schreef je dat ik iedere PHP library in mijn project kan gebruiken? Hoe zit dat? Gewoon de klasse in de vendor directory plaatsen, en dan?
Offline WouterJ - 04/05/2013 21:59
Avatar van WouterJ HTML gevorderde En dan gewoon gebruiken
Bedankt door: Martijn2008
Offline Martijn2008 - 04/05/2013 23:43
Avatar van Martijn2008 PHP beginner Ok, kun je uitleggen hoe het zit met de voorbeeldcode onder punt 3. Hoe verwerk ik dat in mijn project?
Bijvoorbeeld die require_once() en het Session object? Dat snap ik namelijk niet. Thanx!
Offline WouterJ - 05/05/2013 09:15
Avatar van WouterJ HTML gevorderde Wat wil je eigenlijk precies gebruiken?

Kijk op packagist.org naar een package die dat bevat of kijk op knpbundles.com naar een bundle die dat implementeert. Vervolgens laad je dat in via composer en kun je de klasse gewoon gebruiken (dus zonder require_once).
Bedankt door: Martijn2008
Offline Martijn2008 - 06/05/2013 00:33 (laatste wijziging 08/05/2013 21:47)
Avatar van Martijn2008 PHP beginner Nice, coolle site die packagist.org. Thanx for sharing!

Ik heb nu dezelfde library gevonden die ik al had maar nu ook voor composer, echter wil het niet lukken om deze werkend te krijgen in symfony2. De voorbeeld code lijkt niet te werken.

Dit is de voorbeeldcode

  1. <?php
  2. include 'vendor/autoload.php';
  3.  
  4. $client = new \GoogleApi\Client();
  5. $service = new \GoogleApi\Books\Service($client);
  6.  
  7. $optParams = array('filter' => 'free-ebooks');
  8. $results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);
  9.  
  10. foreach ($results['items'] as $item) {
  11. print($item['volumeInfo']['title'] . '<br>');
  12. }


Ik neem aan dat ik autoload.php niet hoef uit te voeren in mijn controller, dat doet het Symfony Framework al. Na het uitvoeren van de code krijg ik constant de melding dat een klasse niet kan worden gevonden. Een duidelijke melding, maar hoe werkt dit als ik een bundle gebruik die niet voor Symfony2 is geschreven? Waar geef ik bijvoorbeeld de API keys op?
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.194s