0

我正在尝试扩展位于 kohana\modules\database\classes\Kohana\Database 中的 Kohana_Database_PDO

为此,我在 kohana\application\classes\database 的 PDO.php 文件中创建了一个文件

我正在使用的代码是

<?php defined('SYSPATH') OR die('No direct script access.');
/**
 * PDO database connection.
 *
 * @package    Application
 * @category   Drivers
 */
class Application_Database_PDO extends Kohana_Database_PDO {} // End Database_PDO

我得到错误:


ErrorException [致命错误]:找不到类 'Database_PDO' MODPATH\database\classes\Kohana\Database.php [78]

// Set the driver class name
    $driver = 'Database_'.ucfirst($config['type']);
    // Create the database connection instance
    $driver = new $driver($name, $config); <- highlighted line

    // Store the database instance
    Database::$instances[$name] = $driver;
}
  1. {PHP 内部调用} » Kohana_Core::shutdown_handler()

谢谢你的帮助 :)

4

1 回答 1

2

如果此代码:

<?php defined('SYSPATH') OR die('No direct script access.');
/**
 * PDO database connection.
 *
 * @package    Application
 * @category   Drivers
 */
class Application_Database_PDO extends Kohana_Database_PDO {} // End Database_PDO

是驻留在 APPPATH/classes/Database 中的 PDO.php 文件中的代码,那么难怪它不起作用。

您的文件应如下所示:

<?php defined('SYSPATH') or die('No direct script access.');
/**
 * PDO database connection.
 *
 * @package    Application
 * @category   Drivers
 */
class Database_PDO extends Kohana_Database_PDO {...

否则,如果您需要它是 Application_... 那么您必须像这样执行您的文件夹结构:APPPATH/classes/Application/Database/PDO.php

默认情况下,Kohana 将 Classname_用作指针,并将每个字符串部分用作目录,除了最后一个是文件名

于 2013-03-22T11:57:57.320 回答