获得" Class' ConnectionManager'找不到" CakePHP 2.4.7出错

时间:2014-04-20 16:48:46

标签: php cakephp

在全新安装cakePHP 2.4.7并配置database.php文件后出现以下错误

Error: Class 'ConnectionManager' not found  
File: /home/wwwlnydt/public_html/sandbox/cakephptest/app/View/Pages/home.ctp
Line: 97

这是我的database.php文件:

<?php
/**
 *
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * 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
 * @package       app.Config
 * @since         CakePHP(tm) v 0.2.9
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
 */

/**
 * Database configuration class.
 *
 * You can specify multiple configurations for production, development and testing.
 *
 * datasource => The name of a supported datasource; valid options are as follows:
 *  Database/Mysql - MySQL 4 & 5,
 *  Database/Sqlite - SQLite (PHP5 only),
 *  Database/Postgres - PostgreSQL 7 and higher,
 *  Database/Sqlserver - Microsoft SQL Server 2005 and higher
 *
 * You can add custom database datasources (or override existing datasources) by adding the
 * appropriate file to app/Model/Datasource/Database. Datasources should be named 'MyDatasource.php',
 *
 *
 * persistent => true / false
 * Determines whether or not the database should use a persistent connection
 *
 * host =>
 * the host you connect to the database. To add a socket or port number, use 'port' => #
 *
 * prefix =>
 * Uses the given prefix for all the tables in this database. This setting can be overridden
 * on a per-table basis with the Model::$tablePrefix property.
 *
 * schema =>
 * For Postgres/Sqlserver specifies which schema you would like to use the tables in.
 * Postgres defaults to 'public'. For Sqlserver, it defaults to empty and use
 * the connected user's default schema (typically 'dbo').
 *
 * encoding =>
 * For MySQL, Postgres specifies the character encoding to use when connecting to the
 * database. Uses database default not specified.
 *
 * unix_socket =>
 * For MySQL to connect via socket specify the `unix_socket` parameter instead of `host` and `port`
 *
 * settings =>
 * Array of key/value pairs, on connection it executes SET statements for each pair
 * For MySQL : http://dev.mysql.com/doc/refman/5.6/en/set-statement.html
 * For Postgres : http://www.postgresql.org/docs/9.2/static/sql-set.html
 * For Sql Server : http://msdn.microsoft.com/en-us/library/ms190356.aspx
 */

    class DATABASE_CONFIG {

        public $default = array(
            'datasource' => 'Database/Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'login' => 'wwwlnydt_testdb',
            'password' => '*******',
            'database' => 'wwwlnydt_testcakephp',
            'prefix' => '',
            //'encoding' => 'utf8',
        );

        public $test = array(
            'datasource' => 'Database/Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'login' => 'user',
            'password' => 'password',
            'database' => 'test_database_name',
            'prefix' => '',
            //'encoding' => 'utf8',
        );
    }

这是home.ctp文件:

<?php
/**
 *
 *
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.View.Pages
 * @since         CakePHP(tm) v 0.10.0.1076
 */

if (!Configure::read('debug')):
    throw new NotFoundException();
endif;

App::uses('Debugger', 'Utility');
?>
<h2><?php echo __d('cake_dev', 'Release Notes for CakePHP %s.', Configure::version()); ?></h2>
<p>
    <a href="http://cakephp.org/changelogs/<?php echo Configure::version(); ?>"><?php echo __d('cake_dev', 'Read the changelog'); ?> </a>
</p>
<?php
if (Configure::read('debug') > 0):
    Debugger::checkSecurityKeys();
endif;
?>
<?php
if (file_exists(WWW_ROOT . 'css' . DS . 'cake.generic.css')):
?>
<p id="url-rewriting-warning" style="background-color:#e32; color:#fff;">
    <?php echo __d('cake_dev', 'URL rewriting is not properly configured on your server.'); ?>
    1) <a target="_blank" href="http://book.cakephp.org/2.0/en/installation/url-rewriting.html" style="color:#fff;">Help me configure it</a>
    2) <a target="_blank" href="http://book.cakephp.org/2.0/en/development/configuration.html#cakephp-core-configuration" style="color:#fff;">I don't / can't use URL rewriting</a>
</p>
<?php
endif;
?>
<p>
<?php
    if (version_compare(PHP_VERSION, '5.2.8', '>=')):
        echo '<span class="notice success">';
            echo __d('cake_dev', 'Your version of PHP is 5.2.8 or higher.');
        echo '</span>';
    else:
        echo '<span class="notice">';
            echo __d('cake_dev', 'Your version of PHP is too low. You need PHP 5.2.8 or higher to use CakePHP.');
        echo '</span>';
    endif;
?>
</p>
<p>
    <?php
        if (is_writable(TMP)):
            echo '<span class="notice success">';
                echo __d('cake_dev', 'Your tmp directory is writable.');
            echo '</span>';
        else:
            echo '<span class="notice">';
                echo __d('cake_dev', 'Your tmp directory is NOT writable.');
            echo '</span>';
        endif;
    ?>
</p>
<p>
    <?php
        $settings = Cache::settings();
        if (!empty($settings)):
            echo '<span class="notice success">';
                echo __d('cake_dev', 'The %s is being used for core caching. To change the config edit %s', '<em>'. $settings['engine'] . 'Engine</em>', 'APP/Config/core.php');
            echo '</span>';
        else:
            echo '<span class="notice">';
                echo __d('cake_dev', 'Your cache is NOT working. Please check the settings in %s', 'APP/Config/core.php');
            echo '</span>';
        endif;
    ?>
</p>
<p>
    <?php
        $filePresent = null;
        if (file_exists(APP . 'Config' . DS . 'database.php')):
            echo '<span class="notice success">';
                echo __d('cake_dev', 'Your database configuration file is present.');
                $filePresent = true;
            echo '</span>';
        else:
            echo '<span class="notice">';
                echo __d('cake_dev', 'Your database configuration file is NOT present.');
                echo '<br/>';
                echo __d('cake_dev', 'Rename %s to %s', 'APP/Config/database.php.default', 'APP/Config/database.php');
            echo '</span>';
        endif;
    ?>
</p>
<?php
if (isset($filePresent)):
    App::uses('ConnectionManager', 'Model');
    try {
        $connected = ConnectionManager::getDataSource('default');
    } catch (Exception $connectionError) {
        $connected = false;
        $errorMsg = $connectionError->getMessage();
        if (method_exists($connectionError, 'getAttributes')):
            $attributes = $connectionError->getAttributes();
            if (isset($errorMsg['message'])):
                $errorMsg .= '<br />' . $attributes['message'];
            endif;
        endif;
    }
?>
<p>
    <?php
        if ($connected && $connected->isConnected()):
            echo '<span class="notice success">';
                echo __d('cake_dev', 'CakePHP is able to connect to the database.');
            echo '</span>';
        else:
            echo '<span class="notice">';
                echo __d('cake_dev', 'CakePHP is NOT able to connect to the database.');
                echo '<br /><br />';
                echo $errorMsg;
            echo '</span>';
        endif;
    ?>
</p>
<?php endif; ?>
<?php
    App::uses('Validation', 'Utility');
    if (!Validation::alphaNumeric('cakephp')):
        echo '<p><span class="notice">';
            echo __d('cake_dev', 'PCRE has not been compiled with Unicode support.');
            echo '<br/>';
            echo __d('cake_dev', 'Recompile PCRE with Unicode support by adding <code>--enable-unicode-properties</code> when configuring');
        echo '</span></p>';
    endif;
?>

<p>
    <?php
        if (CakePlugin::loaded('DebugKit')):
            echo '<span class="notice success">';
                echo __d('cake_dev', 'DebugKit plugin is present');
            echo '</span>';
        else:
            echo '<span class="notice">';
                echo __d('cake_dev', 'DebugKit is not installed. It will help you inspect and debug different aspects of your application.');
                echo '<br/>';
                echo __d('cake_dev', 'You can install it from %s', $this->Html->link('GitHub', 'https://github.com/cakephp/debug_kit'));
            echo '</span>';
        endif;
    ?>
</p>

<h3><?php echo __d('cake_dev', 'Editing this Page'); ?></h3>
<p>
<?php
echo __d('cake_dev', 'To change the content of this page, edit: %s.<br />
To change its layout, edit: %s.<br />
You can also add some CSS styles for your pages at: %s.',
    'APP/View/Pages/home.ctp', 'APP/View/Layouts/default.ctp', 'APP/webroot/css');
?>
</p>

<h3><?php echo __d('cake_dev', 'Getting Started'); ?></h3>
<p>
    <?php
        echo $this->Html->link(
            sprintf('<strong>%s</strong> %s', __d('cake_dev', 'New'), __d('cake_dev', 'CakePHP 2.0 Docs')),
            'http://book.cakephp.org/2.0/en/',
            array('target' => '_blank', 'escape' => false)
        );
    ?>
</p>
<p>
    <?php
        echo $this->Html->link(
            __d('cake_dev', 'The 15 min Blog Tutorial'),
            'http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/blog.html',
            array('target' => '_blank', 'escape' => false)
        );
    ?>
</p>

<h3><?php echo __d('cake_dev', 'Official Plugins'); ?></h3>
<p>
<ul>
    <li>
        <?php echo $this->Html->link('DebugKit', 'https://github.com/cakephp/debug_kit') ?>:
        <?php echo __d('cake_dev', 'provides a debugging toolbar and enhanced debugging tools for CakePHP applications.'); ?>
    </li>
    <li>
        <?php echo $this->Html->link('Localized', 'https://github.com/cakephp/localized') ?>:
        <?php echo __d('cake_dev', 'contains various localized validation classes and translations for specific countries'); ?>
    </li>
</ul>
</p>

<h3><?php echo __d('cake_dev', 'More about CakePHP'); ?></h3>
<p>
<?php echo __d('cake_dev', 'CakePHP is a rapid development framework for PHP which uses commonly known design patterns like Active Record, Association Data Mapping, Front Controller and MVC.'); ?>
</p>
<p>
<?php echo __d('cake_dev', 'Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.'); ?>
</p>

<ul>
    <li><a href="http://cakephp.org">CakePHP</a>
    <ul><li><?php echo __d('cake_dev', 'The Rapid Development Framework'); ?></li></ul></li>
    <li><a href="http://book.cakephp.org"><?php echo __d('cake_dev', 'CakePHP Documentation'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'Your Rapid Development Cookbook'); ?></li></ul></li>
    <li><a href="http://api.cakephp.org"><?php echo __d('cake_dev', 'CakePHP API'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'Quick API Reference'); ?></li></ul></li>
    <li><a href="http://bakery.cakephp.org"><?php echo __d('cake_dev', 'The Bakery'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'Everything CakePHP'); ?></li></ul></li>
    <li><a href="http://plugins.cakephp.org"><?php echo __d('cake_dev', 'CakePHP Plugins'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'A comprehensive list of all CakePHP plugins created by the community'); ?></li></ul></li>
    <li><a href="http://community.cakephp.org"><?php echo __d('cake_dev', 'CakePHP Community Center'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'Everything related to the CakePHP community in one place'); ?></li></ul></li>
    <li><a href="https://groups.google.com/group/cake-php"><?php echo __d('cake_dev', 'CakePHP Google Group'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'Community mailing list'); ?></li></ul></li>
    <li><a href="irc://irc.freenode.net/cakephp">irc.freenode.net #cakephp</a>
    <ul><li><?php echo __d('cake_dev', 'Live chat about CakePHP'); ?></li></ul></li>
    <li><a href="https://github.com/cakephp/"><?php echo __d('cake_dev', 'CakePHP Code'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'Find the CakePHP code on GitHub and contribute to the framework'); ?></li></ul></li>
    <li><a href="https://github.com/cakephp/cakephp/issues"><?php echo __d('cake_dev', 'CakePHP Issues'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'CakePHP Issues'); ?></li></ul></li>
    <li><a href="https://github.com/cakephp/cakephp/wiki#roadmaps"><?php echo __d('cake_dev', 'CakePHP Roadmaps'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'CakePHP Roadmaps'); ?></li></ul></li>
    <li><a href="http://training.cakephp.org"><?php echo __d('cake_dev', 'Training'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'Join a live session and get skilled with the framework'); ?></li></ul></li>
    <li><a href="http://cakefest.org"><?php echo __d('cake_dev', 'CakeFest'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'Don\'t miss our annual CakePHP conference'); ?></li></ul></li>
    <li><a href="http://cakefoundation.org"><?php echo __d('cake_dev', 'Cake Software Foundation'); ?> </a>
    <ul><li><?php echo __d('cake_dev', 'Promoting development related to CakePHP'); ?></li></ul></li>
</ul>

第97行:

connected = ConnectionManager::getDataSource('default');

你能告诉我可能有什么问题吗?

1 个答案:

答案 0 :(得分:1)

删除所有CakePHP内容并再次上传整个框架并且它可以正常工作。当我收到此错误时,文件没有完全上传。