Goedemiddag,
Ik probeer een wrapper te maken om de SimplePie library in Laravel. Eigenlijk heel simpel maar om wat voor reden dan ook wil het niet werken. Het lijkt erop dat de Library niet geladen wordt of de serviceprovider niet doet wat hij moet doen.
De Intellisense (phpstorm) laat de class zien omdat hij wel via composer ingeladen is.
Nu ben ik letterlijk al dagen bezig om een oplossing te zoeken en ik kom hier niet doorheen. Hopelijk kan er iemand hier mij de juiste richting op sturen.
P.s. ik weet dat er bestaande packages zijn voor SimplePie en Laravel. Alleen het doel is om zelf te leren om packages te ontwikkelen.
Alvast bedankt voor de hulp!
Error:
Provider:
package composer:
Ik probeer een wrapper te maken om de SimplePie library in Laravel. Eigenlijk heel simpel maar om wat voor reden dan ook wil het niet werken. Het lijkt erop dat de Library niet geladen wordt of de serviceprovider niet doet wat hij moet doen.
De Intellisense (phpstorm) laat de class zien omdat hij wel via composer ingeladen is.
Nu ben ik letterlijk al dagen bezig om een oplossing te zoeken en ik kom hier niet doorheen. Hopelijk kan er iemand hier mij de juiste richting op sturen.
P.s. ik weet dat er bestaande packages zijn voor SimplePie en Laravel. Alleen het doel is om zelf te leren om packages te ontwikkelen.
Alvast bedankt voor de hulp!
Error:
PHP:
1
| Argument 1 passed to Vpower\Feedwrapper\Eatfeed::__construct() must be an instance of SimplePie, none given, called in /Applications/AMPPS/www/theming/app/Http/Controllers/HomeController.php on line 21 and defined |
Provider:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| <?php namespace Vpower\Feedwrapper; use Vpower\Feedwrapper\Eatfeed; use SimplePie; use Illuminate\Support\ServiceProvider; class FeedwrapperServiceProvider extends ServiceProvider { protected $defer = false; /** * Bootstrap the application services. * * @return void */ public function boot() { //require_once('../vendor/autoload.php'); } /** * Register the application services. * * @return void */ public function register() { $this->app['simplepie'] = $this->app->share(function($app){ return new SimplePie(); }); $this->app->bind(Eatfeed::class, function($app){ return new Eatfead($app['simplepie']); }); } |
package composer:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| { "name": "vpower/feedwrapper", "description": "Reading feeds with the simplepie library", "authors": [ { "name": "xx", "email": "xx@xx.nl" } ], "minimum-stability": "dev", "require": { "illuminate/support": "~5", "simplepie/simplepie": "^1.4" }, "autoload": { "psr-4": { "Vpower\\Feedwrapper\\": "src" } } } |
PHP:
1
2
3
4
5
6
| Normal composer: ``` "psr-4": { "App\\": "app/", "Vpower\\Feedwrapper\\": "packages/Vpower/Feedwrapper/src" } |
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| namespace Vpower\Feedwrapper; use SimplePie; class Eatfeed { protected $_instance; public function __construct(\SimplePie $pie){ print_r($pie); } public function readFeed(){ echo 'got here'; } } |