首页 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 Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Windows 11中无法保存更改照片应用程序错误 Windows 11中无法保存更改照片应用程序错误 Mar 04, 2024 am 09:34 AM

如果您在Windows11中使用照片应用程序进行图像编辑时遇到无法保存更改的错误,本文将为您提供解决方案。无法保存更改。保存时出错。请稍后再试.通常会出现这种问题的原因包括权限设置不正确、文件损坏或系统故障。因此,我们经过深入研究,整理出一些最有效的故障排除步骤,以帮助您解决此问题,并确保您可以继续在Windows11设备上无缝使用MicrosoftPhotos应用程序。修复Windows11中无法保存更改照片应用程序的错误许多用户在不同的论坛上一直在谈论MicrosoftPhotos应用程序错

MS Paint在Windows 11中无法正常工作 MS Paint在Windows 11中无法正常工作 Mar 09, 2024 am 09:52 AM

MicrosoftPaint在Windows11/10中不起作用吗?嗯,这似乎是一个常见的问题,我们有一些很好的解决方案来解决这个问题。用户一直抱怨说,当试图使用MSPaint时,无法工作或打开。应用程序中的滚动条不起作用,粘贴图标没有显示,崩溃,等等。幸运的是,我们收集了一些最有效的故障排除方法来帮助您解决MicrosoftPaint应用程序的问题。为什么MicrosoftPaint不起作用?MSPaint无法在Windows11/10PC上运行的一些可能原因如下:安全标识符已损坏。挂起的系统

如何将Apple Vision Pro连接到PC 如何将Apple Vision Pro连接到PC Apr 08, 2024 pm 09:01 PM

AppleVisionPro头戴式设备本身与电脑不兼容,因此您必须将其配置为连接到Windows电脑。自推出以来,AppleVisionPro一直备受追捧,拥有其尖端功能和广泛的可操作性,很容易理解原因。虽然您可以对其进行一些调整以适应PC,并且其功能在很大程度上取决于AppleOS,因此其功能将受到限制。如何将AppleVisionPro连接到我的电脑?1.验证系统要求你需要最新版本的Windows11(不支持自定义电脑和Surface设备)支持64位2GHZ或更快的快速处理器高性能GPU,最

Linux系统中GDM的工作原理及配置方法 Linux系统中GDM的工作原理及配置方法 Mar 01, 2024 pm 06:36 PM

标题:Linux系统中GDM的工作原理及配置方法在Linux操作系统中,GDM(GNOMEDisplayManager)是一种常见的显示管理器,用于控制图形用户界面(GUI)登录和用户会话管理。本文将介绍GDM的工作原理和配置方法,以及提供具体的代码示例。一、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

本文将指导您如何将照片从PhotosLegacy迁移至Windows11中的新Photos应用程序。微软在Windows11中引入了经过改进的Photos应用程序,为用户提供了更简洁且功能更丰富的体验。新的Photos应用程序在对照片进行分类方面与过去的PhotosLegacy应用程序有所不同。它会将照片像其他Windows文件一样整理到文件夹中,而不是创建专辑。然而,仍在使用PhotosLegacy应用程序的用户可以轻松将他们的照片迁移至MicrosoftPhotos的新版本中。什么是Phot

了解Linux Bashrc:功能、配置与使用方法 了解Linux Bashrc:功能、配置与使用方法 Mar 20, 2024 pm 03:30 PM

了解LinuxBashrc:功能、配置与使用方法在Linux系统中,Bashrc(BourneAgainShellruncommands)是一个非常重要的配置文件,其中包含了系统启动时自动运行的各种命令和设置。Bashrc文件通常位于用户的家目录下,是一个隐藏文件,它的作用是为用户自定义设置Bashshell的环境。一、Bashrc的功能设置环境

为什么会出现0xc0000142错误码 为什么会出现0xc0000142错误码 Feb 25, 2024 am 11:15 AM

0xc0000142是指Windows系统中的错误代码,它通常与程序或应用程序无法正常启动或运行的问题相关。当用户尝试打开某个程序时,系统会显示错误信息"0xc0000142",并且该程序无法继续运行。那么,为什么会出现0xc0000142错误呢?造成这种错误代码的原因有很多种,下面是一些常见的原因和解决方法。配置文件损坏:某些程序的配置文件可能被损坏,导致

See all articles