2013-03-25 94 views
0

问题:我试图引导对于某些文件(在app/workers PHP-resque工人)L4框架使用,但工人不似乎能够找到一个类DB行使用DB::table('tablename')...composer dumpautoload没有帮助。Laravel 4找不到类DB

我使用的引导程序没有加载DB类吗?它似乎已经加载了工人班。

失败L4自举

<?php 

// Bootstrap the laravel environment for our resque workers. 
require __DIR__.'/bootstrap/autoload.php'; 

错误

PHP Fatal error: Class 'DB' not found in /var/www/dev/app/libraries/test.php on line 50 

composer.json

{ 
    "require": { 
     "laravel/framework": "4.0.*", 
     "chrisboulton/php-resque": "@stable" 
    }, 
    "autoload": { 
     "classmap": [ 
      "app/commands", 
      "app/controllers", 
      "app/models", 
      "app/database/migrations", 
      "app/database/seeds", 
      "app/tests/TestCase.php", 
      "app/libraries", 
      "app/workers" 
     ] 
    }, 
    "scripts": { 
     "post-update-cmd": "php artisan optimize" 
    }, 
    "minimum-stability": "dev" 
} 

回答

0

你可以TR y以:

1)根据作曲家自动加载的文件,位于vendor/autoload.php(你实际上是调用laravel之一)

2)复制在public/index.php文件中的电话等test.php文件,具体如下:

require __DIR__.'/../bootstrap/autoload.php'; 
$app = require_once __DIR__.'/../bootstrap/start.php'; 
$app->run(); 
$app->shutdown(); 

编辑:经过进一步检查,你可以尝试用裸铅丹做到这一点:

<?php 
require '../vendor/autoload.php'; 
use Illuminate\Support\Facades\DB as DB; 
// Test the DB Instance 
$dbInstance = new DB; 
var_dump ($dbInstance); 

将输出

object(Illuminate\Support\Facades\DB)[2] 
+1

你能解释这样做'$ APP->的run()''然后$应用关机()' – Nyxynyx 2013-03-25 17:43:18

+0

基本上由'require_once'指令返回的'$ app'对象的目的,返回'Illuminate \ Foundation \ Application'的一个实例。 – 2013-03-25 18:29:39

+0

抱歉,评论得到了被截断的,我写: ..... omissis .... 如果你看一下这个类(/供应商/ laravel /框架/ src目录/照亮/基金/应用程序里面。 php),你会看到'run'方法(〜行446)负责将请求发送到路由器阵列。 经过进一步检查,最终你可以简单地 'require_once“ /vendor/autoload.php”; //加载作曲家autoload' 'require_once ' /bootstrap/start.php';'' //测试DB Instance' '$ dbinstance具备=新DB;'' 的var_dump($ dbinstance具备);' 到在没有引导整个框架的情况下加载它。 – 2013-03-25 18:44:10