ホームページ php教程 php手册 构建可配置PHP应用程序的正确方式

构建可配置PHP应用程序的正确方式

May 25, 2016 pm 04:53 PM
アプリ 構築する 構成

本文举例说明了创建可配置 PHP 应用程序的几种方法。文中也探讨了应用程序中理想的配置点,并在应用程序过分可配置和过分封闭之间寻求一个平衡点。

假如计划让其他人或公司可以使用您的 PHP 应用程序,需要确保该程序是可配置的。至少,要答应用户以一种安全的方式设置数据库登录及密码,从而使其中的材料不会对外公开。

本文展示了几种用于存储配置设置及编辑这些设置的技术。另外,文中也为哪些元素需要设为可配置以及如何避免陷入配置过度或者配置不足的困境提供了指导。

使用 INI 文件进行配置

PHP 内建了对配置文件的支持。这是通过 php.ini 文件这样的初始化文件(INI)机制实现的,在 php.ini 文件中定义了数据库连接超时或会话如何存储等常量。假如愿意的话,可以在这个 php.ini 文件中为应用程序定制配置。为了说明,我将下列代码行添加到 php.ini 文件中。

myapptempdir=foo

然后,我编写了一个小 PHP 脚本来读取这个配置项,如清单 1 所示。

清单 1. ini1.php

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

当在命令行中运行这段代码时,得到如下结果:

% php ini1.php 
foo 
%
ログイン後にコピー

太棒了。但为什么不能用标准的 INI 函数来获取 myapptempdir 配置项的值呢?我研究了一下,发现在大多数情况下,定制配置项不能使用这些方法来获取。然而,使用 get_cfg_var 函数却是可以访问的。

为使这个方法更加简单,将对变量的访问封装在第二个函数中,该函数使用配置键名及一个缺省值作为参数,如下所示。

清单 2. ini2.php

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

这是对如何访问 INI 文件的一个很好的概括,所以,假如要使用一个不同的机制或将这个 INI 文件存储到其他位置,就不需要为更改大量的函数而大费周折。

我不推荐使用 INI 文件作为应用程序的配置,这有两个理由。首先,虽然这样做较轻易读取 INI 文件,但却几乎不可能安全地写 INI 文件。所以这样做只适合于只读配置项。第二,php.ini 文件在服务器的所有应用程序上共享,所以我认为特定于应用程序的配置项不应该写在该文件中。

需要对 INI 文件了解什么呢?最重要的是如何重置 include 路径来添加配置项,如下所示。

清单 3. ini3.php

<?php
echo (ini_get("include_path") . "n");
ini_set("include_path", ini_get("include_path") . ":./mylib");
echo (ini_get("include_path") . "n");
?>
ログイン後にコピー

在本例中,我将我的本地 mylib 目录添加到了 include 路径中,所以能够从该目录中 require PHP 文件,而不需要将该路径添加到 require 语句中。

PHP 中的配置

通常对于在 INI 文件中存储配置条目的一个替代办法是使用一个简单的 PHP 脚本来保持数据。如下是一个样例。

清单 4. config.php

<?php
// Specify the location of the temporary directory
//
$TEMPLATE_DIRECTORY = "tempdir";
?>
ログイン後にコピー

使用该常量的代码如上所示。


               
               

文章网址:

随意转载^^但请附上教程地址。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11 でフォト アプリへの変更を保存できないエラー Windows 11 でフォト アプリへの変更を保存できないエラー Mar 04, 2024 am 09:34 AM

Windows 11 で画像編集にフォト アプリを使用中に「変更を保存できません」エラーが発生した場合、この記事では解決策を紹介します。変更を保存できません。保存中にエラーが発生しました。後でもう一度試してください。この問題は通常、不正なアクセス許可設定、ファイルの破損、またはシステム障害が原因で発生します。そこで、この問題を解決し、Windows 11 デバイスで Microsoft フォト アプリを引き続きシームレスに使用できるようにするために、綿密な調査を行って最も効果的なトラブルシューティング手順をいくつかまとめました。 Windows 11で写真アプリへの変更を保存できないエラーを修正する 多くのユーザーがさまざまなフォーラムでMicrosoftフォトアプリのエラーについて話し合っています

Windows 11 で MS ペイントが正しく動作しない Windows 11 で MS ペイントが正しく動作しない Mar 09, 2024 am 09:52 AM

Microsoft ペイントは Windows 11/10 では動作しませんか?これは一般的な問題のようで、それを修正するための優れた解決策がいくつかあります。 MSPaint を使用しようとすると、機能しない、または開かないというユーザーからの苦情が寄せられています。アプリのスクロールバーが機能しない、貼り付けアイコンが表示されない、クラッシュなどが発生します。幸いなことに、Microsoft ペイント アプリに関する問題の解決に役立つ、最も効果的なトラブルシューティング方法をいくつか集めました。 Microsoft ペイントが動作しないのはなぜですか? MSPaint が Windows 11/10 PC で動作しない理由としては、次のようなことが考えられます。 セキュリティ識別子が破損しています。ハングアップしたシステム

Apple Vision ProをPCに接続する方法 Apple Vision ProをPCに接続する方法 Apr 08, 2024 pm 09:01 PM

Apple Vision Pro ヘッドセットはコンピュータとネイティブ互換性がないため、Windows コンピュータに接続するように設定する必要があります。 Apple Vision Pro は発売以来、最先端の機能と充実した操作性を備えた大ヒット商品です。その理由は簡単にわかります。ただし、お使いの PC に合わせて調整することはできますが、その機能は AppleOS に大きく依存しているため、機能は制限されます。 AppleVisionPro をコンピュータに接続するにはどうすればよいですか? 1. システム要件を確認します 最新バージョンの Windows 11 が必要です (カスタム PC および Surface デバイスはサポートされていません) 64 ビット 2GHZ 以上の高速プロセッサをサポート 高性能 GPU、最大

LinuxシステムにおけるGDMの動作原理と設定方法 LinuxシステムにおけるGDMの動作原理と設定方法 Mar 01, 2024 pm 06:36 PM

タイトル: Linux システムにおける GDM の動作原理と構成方法 Linux オペレーティング システムでは、GDM (GNOMEDisplayManager) は、グラフィカル ユーザー インターフェイス (GUI) ログインとユーザー セッション管理を制御するために使用される一般的なディスプレイ マネージャーです。この記事では、GDM の動作原理と構成方法を紹介し、具体的なコード例を示します。 1. GDM の動作原理 GDM は GNOME デスクトップ環境のディスプレイ マネージャーであり、X サーバーの起動とログイン インターフェイスの提供を担当します。

ShazamアプリがiPhoneで動作しない:修正 ShazamアプリがiPhoneで動作しない:修正 Jun 08, 2024 pm 12:36 PM

iPhone の Shazam アプリに問題がありますか? Shazam は、曲を聞いて曲を見つけるのに役立ちます。ただし、Shazam が正常に動作しない場合、または曲が認識されない場合は、手動でトラブルシューティングを行う必要があります。 Shazam アプリの修復にはそれほど時間はかかりません。したがって、これ以上時間を無駄にすることなく、以下の手順に従って Shazam アプリの問題を解決してください。解決策 1 – 太字テキスト機能を無効にする iPhone の太字テキストが、Shazam が正しく動作しない原因である可能性があります。ステップ 1 – これは iPhone の設定からのみ実行できます。それで、開けてください。ステップ 2 – 次に、そこにある「ディスプレイと明るさ」設定を開きます。ステップ 3 – 「太字テキスト」が有効になっている場合

Windows 11 の古いフォトから新しいフォト アプリに写真を移動する Windows 11 の古いフォトから新しいフォト アプリに写真を移動する Mar 10, 2024 am 09:37 AM

この記事では、Windows 11 のフォト レガシーから新しいフォト アプリに写真を移行する方法について説明します。 Microsoft は、改良されたフォト アプリを Windows 11 に導入し、よりシンプルで機能豊富なエクスペリエンスをユーザーに提供しました。新しい写真アプリは、以前の PhotosLegacy アプリとは異なる方法で写真を並べ替えます。アルバムを作成するのではなく、他の Windows ファイルと同様に写真をフォルダーに整理します。ただし、フォト レガシー アプリをまだ使用しているユーザーは、写真を新しいバージョンの Microsoft フォトに簡単に移行できます。写真とは

Linux Bashrc の機能、構成、使用法を理解する Linux Bashrc の機能、構成、使用法を理解する Mar 20, 2024 pm 03:30 PM

Linux Bashrc について: 機能、構成、および使用法 Linux システムでは、Bashrc (BourneAgainShellrunco​​mmands) は非常に重要な構成ファイルであり、システムの起動時に自動的に実行されるさまざまなコマンドと設定が含まれています。 Bashrc ファイルは通常、ユーザーのホーム ディレクトリにある隠しファイルであり、その機能はユーザーの Bashshell 環境をカスタマイズすることです。 1. Bashrc関数の設定環境

0xc0000142 エラー コードが表示されるのはなぜですか? 0xc0000142 エラー コードが表示されるのはなぜですか? Feb 25, 2024 am 11:15 AM

0xc0000142 は Windows システムのエラー コードを指し、通常はプログラムやアプリケーションが起動または実行されないという問題に関連しています。ユーザーがプログラムを開こうとすると、システムはエラー メッセージ「0xc0000142」を表示し、プログラムは実行を続行できません。では、なぜ 0xc0000142 エラーが発生するのでしょうか?このエラー コードにはさまざまな理由が考えられますが、ここでは一般的な原因と解決策をいくつか紹介します。構成ファイルの破損: 一部のプログラムの構成ファイルが破損している可能性があります。

See all articles