构建可配置PHP应用程序的正确方式_PHP教程
本文举例说明了创建可配置 PHP 应用程序的几种方法。文中也探讨了应用程序中理想的配置点,并在应用程序过分可配置和过分封闭之间寻求一个平衡点。
假如计划让其他人或公司可以使用您的 PHP 应用程序,需要确保该程序是可配置的。至少,要答应用户以一种安全的方式设置数据库登录及密码,从而使其中的材料不会对外公开。
本文展示了几种用于存储配置设置及编辑这些设置的技术。另外,文中也为哪些元素需要设为可配置以及如何避免陷入配置过度或者配置不足的困境提供了指导。
使用 INI 文件进行配置
PHP 内建了对配置文件的支持。这是通过 php.ini 文件这样的初始化文件(INI)机制实现的,在 php.ini 文件中定义了数据库连接超时或会话如何存储等常量。假如愿意的话,可以在这个 php.ini 文件中为应用程序定制配置。为了说明,我将下列代码行添加到 php.ini 文件中。
myapptempdir=foo
然后,我编写了一个小 PHP 脚本来读取这个配置项,如清单 1 所示。
清单 1. ini1.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
function get_ini_value( $n, $dv )
{
$c = get_cfg_var( $n );
return ( $c == null ) ? $dv : $c;
}
function get_template_directory()
{
return get_ini_value( "myapptempdir", "tempdir" );
}
这是对如何访问 INI 文件的一个很好的概括,所以,假如要使用一个不同的机制或将这个 INI 文件存储到其他位置,就不需要为更改大量的函数而大费周折。
我不推荐使用 INI 文件作为应用程序的配置,这有两个理由。首先,虽然这样做较轻易读取 INI 文件,但却几乎不可能安全地写 INI 文件。所以这样做只适合于只读配置项。第二,php.ini 文件在服务器的所有应用程序上共享,所以我认为特定于应用程序的配置项不应该写在该文件中。
需要对 INI 文件了解什么呢?最重要的是如何重置 include 路径来添加配置项,如下所示。
清单 3. ini3.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
# Specify the location of the temporary directory
#
$TEMPLATE_DIRECTORY = "tempdir";
?>
使用该常量的代码如下所示。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
