【问题标题】:Laravel cannot find class of a packageLaravel 找不到包的类
【发布时间】:2014-06-18 15:56:49
【问题描述】:

您好,我为我正在处理的 Laravel 项目创建了一个新包,我对包和 laravel 本身的概念不熟悉,但这是我想出的代码,

/workbench/cycs/proofhq/src/Cycs/Proofhq/ProofhqServiceProvider.php

public function boot()
{
    $this->package('cycs/proofhq');
}

/**
 * Register the service provider.
 *
 * @return void
 */
public function register()
{
    $this->app->booting(function()
    {
        $loader = \Illuminate\Foundation\AliasLoader::getInstance();
        $loader->alias('Cycs', 'Cycs\Proofhq\Facades\Supyo');
    });

    $this->app['proofhq'] = $this->app->share(function($app)
    {
        return new Proofhq;
    });
}

/workbench/cycs/proofhq/src/Cycs/Proofhq/Proofhq.php

<?php namespace Cycs\Proofhq;

class Proofhq {

    public static function greeting() {
        return "What's up dawg!";
    }
}

/workbench/cycs/proofhq/src/Cycs/Proofhq/Facades/Proofhq.php

<?php namespace Cycs\Proofhq\Facades;

use Illuminate\Support\Facades\Facade;

class Proofhq extends Facade {

    /**
    * Get the registered name of the component.
    *
    * @return string
    */

    protected static function getFacadeAccessor() {
        return 'proofhq';
    }

}

我已经将包添加到app/config/app.php和providers数组中,然后尝试通过简单的get来访问包函数,

Route::get('/test', function(){
  echo proofhq::greeting();
});

但我收到以下错误,

找不到类“proofhq”

我不知道为什么,我已经完全按照示例进行了操作,并且该课程存在。

谁能帮我解释一下?

【问题讨论】:

  • 你试过 echo Proofhq::greeting() 代替全小写吗?
  • 这是两者的结合,需要composer dump-autoload
  • 请您自己回答您的问题,以便其他人看到答案。

标签: php oop laravel-4 packages


【解决方案1】:

composer dump-autoload 并将路由中的类名第一个字母更改为大写似乎可以解决问题!

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2023-01-19
    • 2015-03-21
    相关资源
    最近更新 更多