1

autoload.phpを使用してデータベースを自動ロードするにはどうすればよいですか?

もちろん、私はすでに自動読み込みを取得しています...それは簡単な部分です。

ただし、データベースが接続されているかどうかを確認し、接続されていない場合は、「申し訳ありませんが、データベースは現在利用できません」などの特定のページを表示することもできます。

それは私が作らなければならないある種のカスタムフックでなければならないでしょうか?

4

1 に答える 1

1

でエラーテンプレートを編集して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のデータベースクラスをロードする必要があります。必要に応じて、最初の行でそれを実行することもできます。__construct()MY_Controllerindex.php

ただし、探しているものは言語ファイルにあると思います。見てみましょう:
system/language/english/db_lang.php
同じ場所に独自のファイルを作成する場合、/application代わりに/system、適切な言語行を書き直すことができます。

// $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定数を利用して、開発モードで有用なエラーを表示したり、本番環境でユーザーフレンドリーなエラーを表示したりできます。

もちろん、データベースに接続できない場合、それは早急な対応が必要な大きな問題です。

于 2012-04-16T04:42:52.793 に答える