能力会如何使用autoload.php笨自动加载数据库,但要检查是否存在连接
我已经有了,当然自动加载......这是容易的部分,我自动加载数据库。
但也允许我检查数据库是否已连接,如果没有,显示一个特定的页面,如“我们很抱歉,但我们的数据库目前无法使用”。
它必须是某种自定义钩子,我将不得不作出?
能力会如何使用autoload.php笨自动加载数据库,但要检查是否存在连接
我已经有了,当然自动加载......这是容易的部分,我自动加载数据库。
但也允许我检查数据库是否已连接,如果没有,显示一个特定的页面,如“我们很抱歉,但我们的数据库目前无法使用”。
它必须是某种自定义钩子,我将不得不作出?
您可以在application/errors/error_db.php
中编辑错误模板以使用您的自定义消息。也许使用ENVIRONMENT
常数,做这样的事情:
<?php if (ENVIRONMENT === 'production'): ?>
<p>We are sorry but our database is currently unavailable.</p>
<?php else: ?>
<!-- default template with actual database error messages -->
<?php endif; ?>
否则,我想你可以用一个钩子。如果你正在自动加载数据库类并想拦截错误,那么它必须至少为pre_controller
,或者在完成连接检查之后,您可以在MY_Controller
类的__construct()
中加载数据库类。如果您愿意,您甚至可以在index.php
的第一行中正确执行。
但是:我认为你要找的可能是语言文件。看看:system/language/english/db_lang.php
。
如果您在同一个地方你自己的文件,但在/application
,而不是/system
,你可以重写适当的语言线(S):
// $lang['db_unable_to_connect'] = 'Unable to connect to your database server using the provided settings.';
$lang['db_unable_to_connect'] = 'We are sorry but our database is currently unavailable.';
...和公正的编辑CSS和/或标记在错误模板中。再次,您可以利用ENVIRONMENT
常数在开发模式中显示有用的错误,并在生产中显示用户友好的错误。
当然,如果您无法连接到您的数据库 - 这是一个需要立即关注的重大问题。
不是因为它没有连接在某些点上,我只是这样做,所以我可以学习(我正在制作的网站不会公开) – unlucky4ever 2012-04-16 04:48:33
如果它不能连接到数据库,它会抛出错误,并不会继续。你以某种方式需要重写该错误消息。 – Broncha 2012-04-16 03:10:26