Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

sEnte

[Resolvido] Erro usando Slim Framework

Mensagens Recomendadas

sEnte    0
sEnte

Estou a tentar criar um sistema de compras usando a Framework Slim, no entanto estou aqui com uns problemas...

Slim Application Error
The application could not run because of the following error:
Details
Type: DI\NotFoundException
Message: No entry or class found for 'Cart\Support\Storage\SessionStorage'
File: /var/www/html/cart/vendor/php-di/php-di/src/DI/Container.php
Line: 119
Trace
#0 /var/www/html/cart/app/container.php(39): DI\Container->get('Cart\\Support\\St...')
#1 [internal function]: DI\Definition\Source\DefinitionFile->{closure}(Object(DI\Container))
#2 /var/www/html/cart/vendor/php-di/invoker/src/Invoker.php(82): call_user_func_array(Object(Closure), Array)
#3 /var/www/html/cart/vendor/php-di/php-di/src/DI/Definition/Resolver/FactoryResolver.php(66): Invoker\Invoker->call(Object(Closure), Array)
#4 /var/www/html/cart/vendor/php-di/php-di/src/DI/Definition/Resolver/ResolverDispatcher.php(58): DI\Definition\Resolver\FactoryResolver->resolve(Object(DI\Definition\FactoryDefinition), Array)
#5 /var/www/html/cart/vendor/php-di/php-di/src/DI/Container.php(285): DI\Definition\Resolver\ResolverDispatcher->resolve(Object(DI\Definition\FactoryDefinition), Array)
#6 /var/www/html/cart/vendor/php-di/php-di/src/DI/Container.php(122): DI\Container->resolveDefinition(Object(DI\Definition\FactoryDefinition))
#7 /var/www/html/cart/app/container.php(28): DI\Container->get('Cart\\Basket\\Bas...')
#8 [internal function]: DI\Definition\Source\DefinitionFile->{closure}(Object(DI\Container))
#9 /var/www/html/cart/vendor/php-di/invoker/src/Invoker.php(82): call_user_func_array(Object(Closure), Array)
#10 /var/www/html/cart/vendor/php-di/php-di/src/DI/Definition/Resolver/FactoryResolver.php(66): Invoker\Invoker->call(Object(Closure), Array)
#11 /var/www/html/cart/vendor/php-di/php-di/src/DI/Definition/Resolver/ResolverDispatcher.php(58): DI\Definition\Resolver\FactoryResolver->resolve(Object(DI\Definition\FactoryDefinition), Array)
#12 /var/www/html/cart/vendor/php-di/php-di/src/DI/Container.php(285): DI\Definition\Resolver\ResolverDispatcher->resolve(Object(DI\Definition\FactoryDefinition), Array)
#13 /var/www/html/cart/vendor/php-di/php-di/src/DI/Container.php(122): DI\Container->resolveDefinition(Object(DI\Definition\FactoryDefinition))
#14 /var/www/html/cart/vendor/php-di/invoker/src/ParameterResolver/Container/TypeHintContainerResolver.php(45): DI\Container->get('Slim\\Views\\Twig')
#15 /var/www/html/cart/vendor/php-di/invoker/src/ParameterResolver/ResolverChain.php(38): Invoker\ParameterResolver\Container\TypeHintContainerResolver->getParameters(Object(ReflectionMethod), Array, Array)
#16 /var/www/html/cart/vendor/php-di/invoker/src/Invoker.php(65): Invoker\ParameterResolver\ResolverChain->getParameters(Object(ReflectionMethod), Array, Array)
#17 /var/www/html/cart/vendor/php-di/slim-bridge/src/ControllerInvoker.php(47): Invoker\Invoker->call(Array, Array)
#18 /var/www/html/cart/vendor/slim/slim/Slim/Route.php(325): DI\Bridge\Slim\ControllerInvoker->__invoke(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#19 /var/www/html/cart/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(116): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#20 /var/www/html/cart/vendor/slim/slim/Slim/Route.php(297): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#21 /var/www/html/cart/vendor/slim/slim/Slim/App.php(443): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response))
#22 /var/www/html/cart/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(116): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#23 /var/www/html/cart/vendor/slim/slim/Slim/App.php(337): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#24 /var/www/html/cart/vendor/slim/slim/Slim/App.php(298): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response))
#25 /var/www/html/cart/public/index.php(5): Slim\App->run()
#26 {main}

este é o meu container.php

<?php
 use function DI\get;
 use Slim\Views\Twig;
 use Cart\Basket\Basket;
 use Cart\Models\Product;
 use Slim\Views\TwigExtension;
 use Interop\Container\ContainerInterface;
 use Cart\Support\Storage\SessionStorage;
 use Cart\Support\Storage\Contracts\StorageInterface;
 return [
'router' => get(Slim\Router::class),
StorageInterface::class => function (ContainerInterface $c) {
  return new SessionStorage('cart');
},
Twig::class => function (ContainerInterface $c) {
  $twig = new Twig(__DIR__ . '/../resources/views', [
	'cache' => false
  ]);
  $twig->addExtension(new TwigExtension(
	$c->get('router'),
	$c->get('request')->getUri()
  ));
  $twig->getEnvironment()->addGlobal('basket', $c->get(Basket::class));
  return $twig;
},
Product::class => function (ContainerInterface $c) {
  return new Product;
},
Basket::class => function (ContainerInterface $c) {
  return new Basket(
	$c->get(SessionStorage::class),
	$c->get(Product::class)
  );
}

 ];
?>

começou-me a dar erro depois de adicionar Basket::class ao container... :s


"If It Ain't Broke, Break it and build something Cooler!" Unknown

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sEnte    0
sEnte

Está resolvido!

Afinal o erro veio de outro lado. Voltei a escrever o código e tenho um ficheiro StorageInterface onde tenho


Interface StorageInterface {

public function get();

... }[code]

tinha [code=PHP] public function get() {} [code] para além de erros de escrita noutros ficheiros e não só... :s

Editado por sEnte

"If It Ain't Broke, Break it and build something Cooler!" Unknown

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.