2017-03-01 84 views
0

在我的heroku中,我使用postgre插件作为我的数据库;在我的cakephp 3应用程序中,我更改了文件app.php并配置了与heroku postgre数据库的连接。我的CakePHP的应用程序都运行良好在本地主机上,但是Heroku的服务器上,页面显示在heroku上找不到Cakephp类'DebugBarFilter'

Class'DebugKit\Routing\Filter\DebugBarFilter' not found 
Error in: ROOT/plugins/DebugKit/config/bootstrap.php, line 21 

如果我修改app.php的文件env('DEBUG', true)env('DEBUG', false)显示内部错误服务器页面。

我想我是否也需要在Heroku中安装mysql?因为插件DebugKit默认使用它?或者无论如何,我可以卸载/跳过DebugKit,以便它不会显示错误?因为我并不需要在我的服务器上安装DebugKit插件。下面是我的bootstrap.php文件:

<?php 
/** 
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 
* 
* Licensed under The MIT License 
* For full copyright and license information, please see the LICENSE.txt 
* Redistributions of files must retain the above copyright notice. 
* 
* @copyright  Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 
* @link   http://cakephp.org CakePHP(tm) Project 
* @license  http://www.opensource.org/licenses/mit-license.php MIT License 
*/ 
use Cake\Core\Configure; 
use Cake\Core\Plugin; 
use Cake\Datasource\ConnectionManager; 
use Cake\Event\EventManager; 
use Cake\Log\Log; 
use Cake\Routing\DispatcherFactory; 
use DebugKit\Routing\Filter\DebugBarFilter; 
$debugBar = new DebugBarFilter(EventManager::instance(), (array)Configure::read('DebugKit')); 
if (!$debugBar->isEnabled() || php_sapi_name() === 'cli' || php_sapi_name() === 'phpdbg') { 
    return; 
} 
$hasDebugKitConfig = ConnectionManager::config('debug_kit'); 
if (!$hasDebugKitConfig && !in_array('sqlite', PDO::getAvailableDrivers())) { 
    $msg = 'DebugKit not enabled. You need to either install pdo_sqlite, ' . 
     'or define the "debug_kit" connection name.'; 
    Log::warning($msg); 
    return; 
} 
if (!$hasDebugKitConfig) { 
    ConnectionManager::config('debug_kit', [ 
     'className' => 'Cake\Database\Connection', 
     'driver' => 'Cake\Database\Driver\Sqlite', 
     'database' => TMP . 'debug_kit.sqlite', 
     'encoding' => 'utf8', 
     'cacheMetadata' => true, 
     'quoteIdentifiers' => false, 
    ]); 
} 
if (Plugin::routes('DebugKit') === false) { 
    require __DIR__ . DS . 'routes.php'; 
} 
// Setup toolbar 
$debugBar->setup(); 
DispatcherFactory::add($debugBar); 

回答

0

找到了解决办法,注释掉以下行此文件中

Plugin::load('DebugKit', ['bootstrap' => true]); 
0

你也可以使用

Plugin::loadAll(); 

要加载的所有插件