为了账号安全,请及时绑定邮箱和手机立即绑定

为什么找不到“Class 'DI\Bridge\Slim\App'”?PHP

为什么找不到“Class 'DI\Bridge\Slim\App'”?PHP

翻翻过去那场雪 2022-11-12 09:56:45
我正在尝试为我的网站创建购物车,我遵循以下教程:https ://www.youtube.com/watch?v=tRh467FX12U&list=PLfdtiltiRHWH9JN1NBpJRFUhN96KBfPmd&index=2在教程中,他使用了来自 GitHub 的 3 个不同的导入,这是如何使用 composer 在终端中安装它们的:rosscurrie = ~用户的名字@Ross-Air = Macbook 名称MobileMastersNew = 包含所有网站文件的文件夹的名称composer = 全局安装要求 <...> = 从 GitHub 导入rosscurrie@Rosss-Air MobileMastersNew % 作曲家需要苗条/苗条:^4.0rosscurrie@Rosss-Air MobileMastersNew % 作曲家需要 slim/twig-view:^3.0rosscurrie@Rosss-Air MobileMastersNew % 作曲家需要 php-di/slim-bridgerosscurrie@Rosss-Air MobileMastersNew % 作曲家需要照明/数据库我对 Laravel 的经验有限,但并不完全陌生。当我尝试加载 index.php 页面时,会出现以下错误:Fatal error: Uncaught Error: Class 'DI\Bridge\Slim\App' not found in /Users/rosscurrie/Sites/MobileMastersNew/app/App.php:8 Stack trace: #0 /Users/rosscurrie/Sites/MobileMastersNew/vendor/composer/ClassLoader.php(444): include() #1 /Users/rosscurrie/Sites/MobileMastersNew/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/Users/rosscurr...') #2 [internal function]: Composer\Autoload\ClassLoader->loadClass('Cart\\App') #3 /Users/rosscurrie/Sites/MobileMastersNew/bootstrap/app.php(9): spl_autoload_call('Cart\\App') #4 /Users/rosscurrie/Sites/MobileMastersNew/public/index.php(3): require('/Users/rosscurr...') #5 {main} thrown in /Users/rosscurrie/Sites/MobileMastersNew/app/App.php on line 8我的文件夹目录如下:
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超4个赞

您应该在自动加载后使用 use 语句:


<?php


namespace Cart;


use DI\ContainerBuilder;

use DI\Bridge\Slim\App as DIBridge;


class App extends DIBridge

{

    protected function configureContainer(ContainerBuilder $builder)

    {

        $builder->addDefinitions([

           'settings.displayErrorDetails' => true,

        ]);


        //

    }

}

并更改此文件:


session_start();


require __DIR__ . '/../vendor/autoload.php';

use Cart\App;


$app  = new App;


查看完整回答
反对 回复 2022-11-12
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

您的 composer.json 需要看起来几乎与教程中的一模一样。我有同样的问题。要要求旧版本,您只需执行composer remove slim/slimthen之类的操作composer require slim/slim ^3.0。


特别是,您的 php-di 需要低于 v1.1。我的 composer.json:


{

    {

    "require": {

        "slim/slim": "^3.0",

        "slim/twig-view": "^2.1",

        "illuminate/database": "^5.2",

        "php-di/slim-bridge": "v1.0.2"

    },

    "autoload": {

        "psr-4": {

            "Cart\\": "app/"

        }

    }

}


查看完整回答
反对 回复 2022-11-12
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

您使用的是错误的命名空间use DI\Bridge\Slim\App as DIBridge;。包中不再有App类。DI

反而

使用以下代码use DI\Bridge\Slim\Bridge as DIBridge;


查看完整回答
反对 回复 2022-11-12
  • 3 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号