Проблема: я пытаюсь загрузить фреймворк L4 для использования некоторых файлов (рабочие процессы php-resque в app/workers
), но рабочие, похоже, не могут найти класс DB
в строке, которая использовала DB::table('tablename')...
. composer dumpautoload
не помогает.
Не загружал ли я классы начальной загрузки 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"
}
1 ответ
Вы можете попробовать:
1) Загрузите файл автозагрузки Composer, расположенный в 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]
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
$app->run()
, затем$app-shutdown()
$app
, возвращаемый директивойrequire_once
, возвращает экземплярIlluminate\Foundation\Application
.run
(~ строка 446) отвечает за отправку запроса в массив маршрутизатора. После дальнейшего изучения оказалось, что вы можете простоrequire_once '<path to>/vendor/autoload.php'; // load the composer autoload
require_once '<path to>/bootstrap/start.php';
// Test the DB Instance
$dbInstance = new DB;
var_dump ($dbInstance);
, чтобы загрузить его без начальной загрузки всего фреймворка.