2013-03-25 122 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