ホームページ >バックエンド開発 >PHPチュートリアル >構成可能な PHP アプリケーションを構築する正しい方法_PHP チュートリアル
この記事では、構成可能な PHP アプリケーションを作成するいくつかの方法を説明します。この記事では、アプリケーションの理想的な構成ポイントについても検討し、アプリケーションが構成可能すぎることと閉じられすぎることの間のバランスを模索します。
PHP アプリケーションを他の人や企業が利用できるようにする場合は、アプリケーションが構成可能であることを確認する必要があります。少なくとも、データベース内の内容が公開されないように、ユーザーが安全な方法でデータベースのログインとパスワードを設定できるようにします。
この記事では、構成設定を保存し、これらの設定を編集するためのいくつかのテクニックを説明します。さらに、この記事では、どの要素を構成可能にする必要があるか、および構成の過剰または過少のジレンマに陥ることを回避する方法についてのガイダンスも提供します。
設定にはINIファイルを使用します
PHP には構成ファイルのサポートが組み込まれています。これは、データベース接続のタイムアウトやセッションの保存方法などの定数が定義される php.ini ファイルなどの初期化ファイル (INI) メカニズムを通じて実現されます。必要に応じて、この php.ini ファイルでアプリケーションの構成をカスタマイズできます。説明のために、次のコード行を php.ini ファイルに追加しました。
myapptempdir=foo
次に、リスト 1 に示すように、この構成項目を読み取るための小さな PHP スクリプトを作成しました。
リスト 1.ini1.php
関数 get_template_directory()
{
$v = get_cfg_var( "myapptempdir" );
return ( $v == null ) : $v;
}
echo( get_template_directory()."n" );
?>
このコードをコマンドラインで実行すると、次の結果が得られます:
% php ini1.php
ふー
%
素晴らしい。しかし、標準の INI 関数を使用して myapptempdir 構成項目の値を取得できないのはなぜでしょうか?調べてみたところ、ほとんどの場合、これらの方法ではカスタム構成アイテムを取得できないことがわかりました。ただし、get_cfg_var 関数を使用してアクセスできます。
この方法を簡素化するには、次に示すように、構成キー名とデフォルト値をパラメーターとして受け取る 2 番目の関数で変数へのアクセスをカプセル化します。
リスト 2.ini2.php
関数 get_ini_value( $n, $dv )
{
$c = get_cfg_var( $n );
return ( $c == null ) $dv : $c;
}
関数 get_template_directory()
{
return get_ini_value( "myapptempdir", "tempdir" );
}
これは INI ファイルにアクセスする方法の概要です。そのため、別のメカニズムを使用したり、INI ファイルを別の場所に保存したい場合でも、多くの機能を変更するという面倒な作業を行う必要はありません。
アプリケーションの構成に INI ファイルを使用することはお勧めしません。理由は 2 つあります。まず、これにより INI ファイルの読み取りが容易になりますが、INI ファイルを安全に書き込むことはほぼ不可能になります。したがって、これは読み取り専用の構成項目にのみ適しています。次に、php.ini ファイルはサーバー上のすべてのアプリケーションで共有されるため、アプリケーション固有の構成項目をそのファイルに書き込むべきではないと思います。
INI ファイルについて知っておくべきことは何ですか?最も重要なことは、以下に示すように、構成アイテムを追加するためにインクルード パスをリセットする方法です。
リスト 3.ini3.php
echo( ini_get("include_path")."n" );
ini_set("パスを含める",
ini_get("include_path").":./mylib" );
echo( ini_get("include_path")."n" );
?>
この例では、ローカルの mylib ディレクトリをインクルード パスに追加したため、require ステートメントにパスを追加せずに、そのディレクトリから PHP ファイルを要求できます。
PHP での設定
構成エントリを INI ファイルに保存する一般的な代替方法は、単純な PHP スクリプトを使用してデータを永続化することです。以下に例を示します。
リスト 4. config.php
#一時ディレクトリの場所を指定します
#
$TEMPLATE_DIRECTORY = "tempdir";
?>
この定数を使用したコードは次のとおりです。