0

50 ページあるとしましょう。そのうちの約 30 ページについて説明を書きたいとします。

説明は、各ページに約 2 段落になります。

説明をMySQLデータベースに保存し、各ページでクエリを実行して対応する説明があるかどうかを確認すると、サーバーにとってより効率的ですか、またはそれらをPHPファイルの配列に保存して、要素は存在しますか?

追加情報: 配列ファイルを手動で編集するか、phpMyAdmin を介して db エントリを編集しますが、どちらも同じ時間がかかります。また、それらを編集するのは私だけなので、クイック編集ファイルを作成することについて心配する必要はありません。

4

3 に答える 3

1

次のようにします。

それらを別のファイルの配列にdata.php次の形式で保存します。

<?php
return array(
  // here be data
);

呼び出し元スクリプトでは、次のように使用します。

$data = require 'data.php';

必要に応じて、サイト全体で $data 変数を使用します。配列を分割して、「言語」や「記事のカテゴリ」などの特定の基準に基づいて複数のファイルを使用することもできます。

このようにすると、いつでも Web インターフェースを備えたエディターをプラグインして、その配列を編集し、 に戻すことができますfile_put_contents('data.php', '<?php return '. var_export($data));。ここで、はフォーム$dataを処理した後にその値を取得しPOSTます。たとえば、 の古い値から生成されたものです$data

本当にエレガントで、高速で、保守可能です!

おまけとして、これらのシリアライゼーション、デシリアライゼーションなどに関するヘルパー関数を作成してください。これにより、気が変わった場合 (サイトが拡大し、そのような配列が何百個もある場合)、データベースを使用するためにそれらの関数を再実装するだけで済みます。コードベースの残りの部分に触れることはありません。

コードの再利用性と保守性がピークに!また、必要に応じて将来的に改善する可能性を失うことなく、すぐに稼働させることができます。

于 2012-08-12T17:47:19.847 に答える
0

これらの説明を頻繁に変更しない場合は、配列に格納できます。ただし、すべてを1つのPHPファイルに保存するのではなく、別々のファイルに保存することをお勧めします。

しかし、サーバーはそのような小さな行を簡単に処理できます。だからあなたにとって簡単なことをしてください。

たぶん、あなたはそれらをデータベースに保存して、ものを追加/編集し、それをキャッシュしてページから読み取ることができます。

于 2012-08-12T17:39:17.823 に答える
-1

情報をDBに保存します。よりゆっくりですが、よりエレガントです。配列でそれをしたい場合:

Class Page
{
    // global configuration
    private static $config = null;

    // individuel configuration
    public $title, $content;

    // constructor
    function __construct($page) {
        // get the configuration
        $config = self::getConfig();

        // cheack weather the page exists
        if(!isset($config[$page]))
            die('unknown page "'.$page.'"');

        // set some stuff
        $this->title = $config[$page]['title'];
        $this->content = $config[$page]['content'];
    }

    // get the configuration
    private function getConfig() {
        if(self::$config === null)
            self::$config = include(dirname(__FILE__) . '/config.php');
        return self::$config;
    }
}

構成:

return Array(
    'home' => Array(
        'title' => 'Welcome!',
        'content' => 'Welcome to my site!' /* maybe include some html for complxe stuff */
    )
);

例:

$myPage = new Page('home');
echo $myPage->content;
于 2012-08-12T20:39:48.620 に答える