構成可能な PHP アプリケーションを構築する正しい方法 (1)_PHP チュートリアル

WBOY
リリース: 2016-07-15 13:24:05
オリジナル
724 人が閲覧しました

この記事では、構成可能な PHP アプリケーションを作成するいくつかの方法を説明します。この記事では、アプリケーションの理想的な構成ポイントについても検討し、構成可能すぎるアプリケーションと閉鎖的すぎるアプリケーションの間のバランスを模索します。

PHP アプリケーションを他の人や企業が利用できるようにする予定がある場合は、プログラムが構成可能であることを確認する必要があります。少なくとも、データベース内の内容が公開されないように、ユーザーが安全な方法でデータベースのログインとパスワードを設定できるようにします。

この記事では、構成設定を保存し、これらの設定を編集するためのいくつかのテクニックを説明します。さらに、この記事では、どの要素を構成可能にする必要があるか、および構成の過剰または過少のジレンマに陥ることを回避する方法についてのガイダンスも提供します。

設定に INI ファイルを使用する

PHP には設定ファイルのサポートが組み込まれています。これは、データベース接続のタイムアウトやセッションの保存方法などの定数が定義される php.ini ファイルなどの初期化ファイル (INI) メカニズムを通じて実現されます。必要に応じて、この php.ini ファイルでアプリケーションの構成をカスタマイズできます。説明のために、次のコード行を php.ini ファイルに追加しました。

myapptempdir=foo

次に、リスト 1 に示すように、この構成項目を読み取るための小さな PHP スクリプトを作成しました。

リスト 1. ini1.php

<p><?php<br>function get_template_directory()<br>{<br> $v = get_cfg_var( "myapptempdir" );<br> return ( $v == null ) ? "tempdir" : $v;<br>}<br>echo( get_template_directory()."n" );<br>?></p>
ログイン後にコピー

このコードをコマンドラインで実行すると、次の結果が得られます。

このメソッドを簡素化するには、以下に示すように、構成キー名とデフォルト値をパラメーターとして受け取る 2 番目の関数で変数へのアクセスをカプセル化します。
すごい。しかし、標準の INI 関数を使用して myapptempdir 構成項目の値を取得できないのはなぜでしょうか?調べてみたところ、ほとんどの場合、これらの方法ではカスタム構成アイテムを取得できないことがわかりました。ただし、get_cfg_var 関数を使用してアクセスできます。
リスト 2. ini2.php

<p>% php ini1.php<br>foo<br>% </p>
ログイン後にコピー

2 つの理由から、アプリケーションの構成に INI ファイルを使用することはお勧めしません。まず、これにより INI ファイルの読み取りが容易になりますが、INI ファイルを安全に書き込むことはほぼ不可能になります。したがって、これは読み取り専用の構成項目にのみ適しています。次に、php.ini ファイルはサーバー上のすべてのアプリケーションで共有されるため、アプリケーション固有の構成項目をそのファイルに書き込むべきではないと思います。
これは、INI ファイルにアクセスする方法の良い概要です。したがって、別のメカニズムを使用したい場合、またはこの INI を保存して変換したい場合は、ファイルを別の場所に配置すれば、多くの関数を変更するという面倒な作業を行う必要はありません。
INI ファイルについて知っておくべきことは何ですか?最も重要なことは、以下に示すように、構成アイテムを追加するためにインクルード パスをリセットする方法です。

リスト 3. ini3.php

<p>function get_ini_value( $n, $dv )<br>{<br> $c = get_cfg_var( $n );<br> return ( $c == null ) ? $dv : $c;<br>}</p><p>function get_template_directory()<br>{<br> return get_ini_value( "myapptempdir", "tempdir" );<br>} </p>
ログイン後にコピー

1
この場合、ローカルの mylib ディレクトリをインクルード パスに追加したので、そのディレクトリから PHP ファイルを要求できるようになります。 require ステートメントにパスを追加せずに。

http://www.bkjia.com/PHPjc/446814.html
www.bkjia.com

tru​​e

技術記事この記事では、構成可能な PHP アプリケーションを作成するいくつかの方法を説明します。この記事では、アプリケーションの理想的な構成ポイントについても調査し、構成可能すぎるアプリケーションと閉鎖的すぎるアプリケーションの間の紙一重の境界線を見つけます...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート